Статистика
Всего в нашей базе более 4 327 663 вопросов и 6 445 976 ответов!

СРОЧНО!Пишу прогу с процедурами, которая считает количество "особых "элементов матрицы, но в конце проги не работает writeln, в чём может быть проблема?

10-11 класс

Вот задача.
Заданная целочисленная матрица размером NXM. Определить k-количество "особых" элементов матрицы, считая элемент "особым", если в его строке слева от него находятся элементы, меньшие его, а справа - большие.
Вот мой код.И если уж у меня все плохо,то предложите свой код программы.
program samost;
const n=5;
m=5;
type tmatr = array[1..n, 1..m] of integer;
var a:tmatr;
i,j,k:integer;
procedure PrintMatrix(var g:tmatr);
begin
var i,j,k:integer;
for i:=1 to n do
begin
for j:=1 to n do
write(g[i,j]:4);
writeln
end;
end;
procedure MakeMatrix;
begin
var i,j,k:integer;
randomize;
for i:=1 to n do
for j:=1 to n do
begin
a[i,j]:=random(10)-5;
end;
end;
begin
MakeMatrix;
writeln('matrica A: ');
PrintMatrix(a);

k:=0;
for i:=1 to n do
for j:=1 to m do
begin
if (a[i,j]<a[i+1,j])and(a[i,j]>a[i-1,j]) then inc(k)
end;
writeln('kolichestvo elementov = ',k);
end.

Sasuke109 12 апр. 2013 г., 1:43:51 (11 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
Dimabelozor03
12 апр. 2013 г., 4:34:45 (11 лет назад)

program samost;

const
  n = 5;
  m = 5;

type
  tmatr = array[1..n, 1..m] of integer;

procedure PrintMatrix(g: tmatr);
var
  i, j: integer;
begin
  for i := 1 to n do
  begin
    for j := 1 to n do Write(g[i, j]:4);
    Writeln
  end
end;

procedure MakeMatrix(var a: tmatr);
var
  i, j: integer;
begin
  Randomize;
  for i := 1 to n do
    for j := 1 to n do a[i, j] := random(10) - 5;
end;

var
  a: tmatr;
  i, j, k: integer;

begin
  MakeMatrix(a);
  Writeln('matrica A: ');
  PrintMatrix(a);
  k := 0;
  for i := 1 to n do
    for j := 2 to m-1 do
      if (a[i, j] < a[i, j+1]) and (a[i, j] > a[i, j-1]) then inc(k);
  Writeln('kolichestvo elementov = ', k);
end.

Тестовое решение:

matrica A:
   4   4   0  -2  -3
   1  -4   4  -5   0
   2   4  -2   1  -2
  -4  -5  -4  -2   4
   1   0   0  -3   2
kolichestvo elementov = 2



+ 0 -
гениусепт
12 апр. 2013 г., 6:20:27 (11 лет назад)

program samost;
const n=5; 
m=5; 
type tmatr = array[1..n, 1..m] of integer;
var a:tmatr; 
i,j,k:integer; 
procedure PrintMatrix(var g:tmatr);
begin 
var i,j:integer; 
for i:=1 to n do 
begin 
for j:=1 to n do 
write(g[i,j]:4); 
writeln 
end;
end; 
procedure MakeMatrix;
begin 
var i,j,k:integer; 
randomize; 
for i:=1 to n do 
for j:=1 to n do 
begin 
a[i,j]:=random(10)-5; 
end;
end; 
begin 
MakeMatrix; 
writeln('matrica A: '); 
PrintMatrix(a); 
k:=0; 
for i:=1 to n do 
for j:=2 to m-1 do 
begin 

if (a[i,j]>a[i,j-1])and(a[i,j]<a[i,j+1]) then 
begin
k:=k+1; ;
writeln(i,j);
end;
end; 
writeln('kolichestvo elementov = ',k);
end.

+ 0 -
Denis91144543
12 апр. 2013 г., 8:07:40 (11 лет назад)

Как я и говорил writeln не работает и пишет что "К" нигде не используется

+ 0 -
Perizat99
12 апр. 2013 г., 10:03:29 (11 лет назад)

т.е. первый и последний элементы в строке особыми быть не могут по определению (нет соседа справа или слева)?

+ 0 -
Оксанка74
12 апр. 2013 г., 10:44:26 (11 лет назад)

получается что да

+ 0 -
Javohir8008
12 апр. 2013 г., 13:07:14 (11 лет назад)

да,тоже хотел заметить,то есть j:=2,а не 1,чтобы не рассматривать 1 элемент,и m:=m-1

+ 0 -
Zolotaryova10
12 апр. 2013 г., 14:08:32 (11 лет назад)

Было много ошибок, поисправлял.

Ответить

Читайте также

Помогите в с++ билдер. В строке, состоящей из групп нулей и единиц, подсчитать количество символов в самой длинной группе.(напишите код в консоли)...

вот пример который считает количество едениц в строках с нечётным количеством символов
//---------------------------------------------------------------------------

#include
#include
#include
#include
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
int n,s, i, nst,p,k, len,t=0;
char a[81];
puts(" Input string ");
gets(a);
len = strlen(a);
s=0;
n=0;
a[len+1]='\0';
a[len]=' ';
for(i=0; i<=len; i++)
{
if(a[i]!=' ')
{
n++;
if(a[i]=='1')
t++;
}
else
{
if(n%2!=0)s+=t;
n=0;
t=0;
}
}
printf("\nkoli4ectvo 1= %d", s);
puts("\nPress any key to close ... ");
getch();
return 0;
}
//---------------------------------------------------------------------------

Задание: составить программу решения задачи.

Указания к выполнению: самостоятельно выполнить все этапы решения
задачи. Ввод и вывод матрицы оформить в виде процедур. При
необходимости выделить в задаче вспомогательные алгоритмы и оформить
их в виде подпрограмм.паскаль

Дана матрица, определить количество «особых» элементов. Элемент
считается «особым», если он больше суммы остальных элементов строки.
.

Написать программу на Pascal ABC.Дан целочисленный массив размера N. Вычислить сумму и количество положительных элементов,

произведение и количество отрицательных элементов, произведение элементов до
первого отрицательного. Отсортировать массив по возрастанию.

Помогите, пожалуйста, решить задачи.

1. В один из жарких летних дней Петя и его друг Вася решили купить арбуз. Они выбрали самый большой и самый спелый, на их взгляд. После недолгой процедуры взвешивания весы показали w килограмм. Поспешно прибежав домой, изнемогая от жажды, ребята начали делить приобретенную ягоду, однако перед ними встала нелегкая задача. Петя и Вася являются большими поклонниками четных чисел, поэтому хотят поделить арбуз так, чтобы доля каждого весила именно четное число килограмм, при этом не обязательно, чтобы доли были равными по величине. Ребята очень сильно устали и хотят скорее приступить к трапезе, поэтому Вы должны подсказать им, удастся ли поделить арбуз, учитывая их пожелание. Разумеется, каждому должен достаться кусок положительного веса.
Входные данные
В первой и единственной строке входных данных записано целое число w (1 ≤ w ≤ 100) — вес купленного ребятами арбуза.
Выходные данные
Выведите YES, если ребята смогут поделить арбуз на две части, каждая из которых весит четное число килограмм, и NO в противном случае.
Примечание
Например, ребята могут поделить арбуз на две части размерами 2 и 6 килограммов соответственно (другой вариант — две части 4 и 4 килограмма).

2. На клетчатой плоскости заданы координаты K зданий. Требуется построить кольцевую дорогу вокруг зданий минимальной длины в виде прямоугольника, со сторонами, параллельными линиям сетки.
Входные данные
Во входном файле, на первой строке, находится число K( ). На следующих K строках находятся пары чисел и – координаты зданий
( ).
Выходные данные
Выведите в выходной файл координаты левого нижнего и правого верхнего углов прямоугольника.

3. Хакер Иван является сотрудником крупной антивирусной компании. Один из вирусов исследованием, которого он занимается, был специально создан для атаки на программы биржевой торговли.
Для того что бы победить зловред Ване необходимо разработать алгоритм, который бы вычислил минимальное количество операций необходимых для того что бы пара чисел (a, b) стала "k -красивой". Пара чисел (a, b) называется "k-красивой" если хотя бы одно из чисел парны не меньше заданного целого числа k. При этом, операции, проводимые с парой чисел (a, b) могут быть только такие:
1. Пара (a, b) может быть преобразована в (a+b, b);
2. Пара (a, b) может быть преобразована в (a, b+a).
Помогите Ване победить.
Входные данные
Единственная строка входных данных содержит три целых числа a, b и k ( - 1018 ≤ x, y, m ≤ 1018).
Выходные данные
Выведите минимальное количество операций или число -1, если сделать заданную пару "k-красивой" невозможно.

4. Инженер-программист Надежда занимается разработкой компилятора для нового сверх секретного языка программирования. Для того чтобы закончить разработку одного из модулей ей остается решить задачу следующего содержания:
Во входных данных Надя получает строку содержащую в себе цифры и скобки одного вида: '(' и ')'. Наде необходимо написать программу, которая для любых входных данных определяет является ли содержащаяся в них скобочная последовательность правильной, и в случае правильности скобочной последовательности возвращает количество встречающихся в ней скобок, если же последовательность неправильная, то выводится число -1.
Скобочная последовательность называется правильной, если:
1. Пустая строка — правильная скобочная последовательность;
2. Правильная скобочная последовательность, взятая в скобки одного типа — правильная скобочная последовательность;
3. Правильная скобочная последовательность, к которой приписана слева или справа правильная скобочная последовательность — тоже правильная скобочная последовательность.
Помогите Наде в разработке компилятора для нового сверх секретного языка программирования.
Входные данные
Единственная строка конечной длины содержит цифры и скобки, длина строки не больше 1024 символов.
Выходные данные
Выведите количество скобок если скобочная последовательность правильная или число -1 если нет.

5. Маленький Вася научился считать сумму цифр для любого числа. Для любого числа, он считал сумму его цифр, затем тоже самое он делал с полученным в результате числом и так далее. Определите сколько раз Васе необходимо посчитать сумму, чтобы она стала цифрой.
Входные данные
Одна непустая строка с числом (0 Выходные данные
Одна строка, с числом.



Вы находитесь на странице вопроса "СРОЧНО!Пишу прогу с процедурами, которая считает количество "особых "элементов матрицы, но в конце проги не работает writeln, в чём может быть проблема?", категории "информатика". Данный вопрос относится к разделу "10-11" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.