Страница 1 из 1

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

Добавлено: 03 авг 2013, 20:55
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.

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

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

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

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

Благодарствую! Бигин энд поставил,всё пришло в норму

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

Добавлено: 09 авг 2013, 19:42
nesteslavik
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;