Задача с массивами

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
GanG
Сообщения: 5
Зарегистрирован: 03 авг 2013, 20:52

03 авг 2013, 20:55

Написать программу, в которой:
1. Определить матрицу 3х5;
2. Вывести ее на экран;
3. Определить величину максимального элемента данной матрицы и вывести на экран его значение и его позицию в матрице


Всё вроде работает,но не правильно указывает позицию выбранного элемента. подскажите, вчём проблема? Зараннее спасибо!

program Project1;
const n=3; m=5;
var table:array [1..n,1..m] of integer;
i,j:integer; max:integer; x,y:integer;

begin
randomize;
for i:=1 to n do
for j:=1 to m do
Table[i,j]:=random(100);
for i:=1 to n do
begin
for j:=1 to m do
write(table[i,j]:3) ;
writeln;
end;
max:=table[1,1] ;
x:=1; y:=1;
for i:=1 to n do
for j:=1 to m do
begin
if max<table[i,j] then max:=table[i,j] ;
x:=i; y:=j;
end;
Writeln('Максимальный элемент: ', max:3, 'его позиция: ', x,y:3) ;
readln
end.
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

03 авг 2013, 21:27

Проблема в строках
if max<table[i,j] then max:=table[i,j] ;
x:=i; y:=j;
Последняя строка выполняется всегда, независимо от условия. Следует использовать begin/end.
Кстати, заполнять матрицу и искать максимум можно внутри одного цикла
It's a long way to the top if you wanna rock'n'roll
GanG
Сообщения: 5
Зарегистрирован: 03 авг 2013, 20:52

03 авг 2013, 21:32

somewhere писал(а):Проблема в строках
if max<table[i,j] then max:=table[i,j] ;
x:=i; y:=j;
Последняя строка выполняется всегда, независимо от условия. Следует использовать begin/end.
Кстати, заполнять матрицу и искать максимум можно внутри одного цикла

Благодарствую! Бигин энд поставил,всё пришло в норму
nesteslavik
Сообщения: 1
Зарегистрирован: 09 авг 2013, 19:28

09 авг 2013, 19:42

GanG писал(а):Написать программу, в которой:
1. Определить матрицу 3х5;
2. Вывести ее на экран;
3. Определить величину максимального элемента данной матрицы и вывести на экран его значение и его позицию в матрице


Всё вроде работает,но не правильно указывает позицию выбранного элемента. подскажите, вчём проблема? Зараннее спасибо!

program Project1;
const n=3; m=5;
var table:array [1..n,1..m] of integer;
i,j:integer; max:integer; x,y:integer;

begin
randomize;
for i:=1 to n do
for j:=1 to m do
Table[i,j]:=random(100);
for i:=1 to n do
begin
for j:=1 to m do
write(table[i,j]:3) ;
writeln;
end;
max:=table[1,1] ;
x:=1; y:=1;
for i:=1 to n do
for j:=1 to m do
begin
if max<table[i,j] then max:=table[i,j] ;
x:=i; y:=j;
end;
Writeln('Максимальный элемент: ', max:3, 'его позиция: ', x,y:3) ;
readln
end.

замени строчку :if max<table[i,j] then max:=table[i,j] ; x:=i; y:=j;
на: if max<table[i,j] then
begin
max:=table[i,j] ;
x:=i; y:=j;
end;
Ответить