Читайте также: |
|
1. Создание двумерного массива с помощью функции случайных чисел с одновременным выводом на экран.
2. Задать первоначальное значение для наибольшего элемента, в качестве такого значения можно взять значение любого элемента массива. Чаще всего в качестве наибольшего элемента принимают элемент первой строки первого столбца, т.е. a[1, 1].
3. Далее организуются два цикла, с помощью которых перебираются последовательно элементы массива и сравниваются с первоначально принятым за наибольший.
Если элемент массива больше максимального, тогда надо присвоить максимальному значение этого элемента, а переменным- счетчикам присваиваются значения номеров строки и столбца этого нового максимального элемента.
Циклы заканчиваются.
4. На экран выводится максимальный элемент, номер строки и номер столбца, в которых он находится.
Составим процедуру определения наибольшего элемента двумерного массива.
Procedure maximum_two(n, m:integer; var max, k, p: integer);
Var
i, j: integer;
Begin
max:= a[1, 1];
for i:= 1 to n do
for j:= 1 to m do
if a[i, j] > max then
Begin
max:= a[i, j];
k:= i;
p:= j
End
End;
Программа
Program Problem2;
Const
n = 5; m = 6;
Type
t = array [1..m,1..n] of integer;
Var
a: t;
k, p, max: integer;
{----------------------------------------------------------------------------------------}
Procedure create_two(n, m: integer; var a: t);
Var
i, j: integer;
Begin
writeln('Заданный двумерный массив целых чисел');
randomize;
for i:= 1 to n do
Begin
for j:= 1 to m do
Begin
a[i, j]:= random(201) - 100;
write(a[i, j]:6, ' ')
end;
writeln
End
end;
{----------------------------------------------------------------------------------------}
Procedure maximum_two(n, m:integer; var max, k, p: integer);
Var
i, j: integer;
Begin
max:= a[1, 1];
for i:= 1 to n do
for j:= 1 to m do
if a[i, j] > max then
Begin
max:= a[i, j];
k:= i;
p:= j
End
end;
{----------------------------------------------------------------------------------------}
Begin
create_two(n, m, a);
maximum_two(n, m, max, k, p);
writeln('Наибольший элемент массива ', max);
writeln('Находится в ', k, '-й строке ', p, '-ом столбце')
end.
Пример 3. В двумерном массиве найдите наибольшие элементы каждой строки.
Вот здесь уже необходим одномерный массив по количеству строк массива. Каждый его элемент, в конечном итоге, даст нам значение максимального элемента каждой строки.
В цикле, который организован по числу строк, в наших программах это цикл по i, надо элементам одномерного массива присваивать первоначальные значения первых элементов строк, а затем брать элементы строки, начиная со второго и сравнивать с выбранным в качестве наибольшего.
Если элемент строки больше выбранного наибольшего, тогда присваивать максимальному элементу значение этого элемента, оказавшегося больше максимального.
После завершения работы циклов, одномерный массив, в котором накопились наибольшие элементы строк вывести на экран.
Вот в этой программе удобно описать массив так (подумайте почему?):
Const
n = 4; m = 5;
Type
s = array [1..m] of integer;
t = array [1..n] of s;
Var
a: t;
b: s;
Составим процедуру определения наибольшего элемента в каждой строке:
Procedure maxim_line(n, m: integer; a:t; var b: s);
Var
i, j: integer;
Begin
for i:= 1 to n do
Begin
b[i]:= a[i, 1];
for j:= 1 to m do
if a[i, j] > b[i] then b[i]:= a[i, j];
End;
writeln('Наибольшие элементы каждой строки массива');
for i:= 1 to n do write(b[i]:6, ' ');
writeln
End;
Дата добавления: 2015-07-11; просмотров: 241 | Нарушение авторских прав