Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
метод по информатике.doc
Скачиваний:
5
Добавлен:
17.11.2018
Размер:
1.53 Mб
Скачать

2.2.6. Поиск наибольшего числа в массиве

Поиск наибольшего элемента в массиве Y(k) выполняется в цикле. Обозначим элементы массива Y(k), где k = 1 ÷ N. Наибольшее число – max.

В качестве начального берется первый элемент массива Y(k), с которым последовательно сравниваются остальные элементы. Будем попарно выполнять сравнения чисел, обозначив через max первый элемент массива, т.е. max = Y(1). Если очередной элемент окажется больше max, то max присваивается уже этому элементу массива. Затем новое значение max сравнивается со следующим элементом и т.д.

Так перебрав все элементы массива Y(k), мы можем определить наибольший (max) среди них. Блок-схема приведена на рис. 7.

Указана размерность массива

Ввод элементов массива в память

Присвоение max значения первому

элементу массива

Изменение индекса для второго элемента

массива

Попарное сравнение двух элементов

массива

Присвоение max значения элементу,

оказавшегося больше предыдущего

Проверка, все ли элементы массива Y(k)

перебраны

Вывод на дисплей всех элементов

массива Y(k)

Вывод на экран max элемента массива

Рис. 7. Алгоритм поиска наибольшего элемента в массиве

Program poisk;

var i, k, n: integer;

y:=array[1..100] of real;

max: real;

begin

writeln (‘ввести размерность массива’);

readln (n);

for k:=1 to n do

begin

writeln (‘ввести число’);

readln (y[k]);

end;

max:= y(1)

for k=2 to n do

if max < y[k] then max:=y[k];

writeln (‘исходный массив’);

for i:=1 to n do

writeln (y[k]:5:1, ‘ ’);

writeln (‘наибольшее число =’, max:4:1);

end.

2.2.7. Сложные циклы

По аналогии разрабатывается и представляется алгоритм для 2-х мерных массивов.

Пример. Дана матрица А34. сформировать вектор, координаты которого есть произведения элементов строк.

Обозначим элементы матрицы A(i, y).

i – номер строки, i = 1 ÷ 3.

y – номер столбца, y = 1 ÷ 4.

Обозначим элемент искомого вектора P(i). Первая координата вектора определяется из выражения:

P(i)=P(i)*A(i, y), у = 1 ÷ 4.

Начальное значение P(i) = 1. При накоплении произведения элементов строки организуется цикл по переменной y.

В общем случае координаты вектора определяются выражением

P(i)=P(i)*A(i, y).

Алгоритм содержит 2 цикла. Цикл по y называется внутренним по отношению к циклу по i. Цикл по i – внешний цикл. Рабочая часть цикла по переменной i – это цикл по переменной y.

Блок-схема алгоритма приведена на рис. 8.

Рис. 8. Сложный циклический алгоритм

Program matrica;

type

matr: array [1..3, 1..4] of real;

mas: array [1..3] of real;

var i, j, n, m: integer;

P: mas; A: matr;

begin

writeln (‘ввести размерность матрицы’);

readln (m, n);

FOR i:=1 to m do

FOR j:=1 to n do

begin

writeln (‘ввести число’);

readln (A[i, j]);

end;

FOR i:=1 to 3 do

begin

P(i):=1;

FOR j:=1 to 4 do

P(i):=P(i)*A[i, j]

end;

writeln (‘вывод матрицы’);

FOR i:=1 to m do

begin

FOR i:=1 to n do

write (A[i, j]:5:1, ‘ ’);

writeln;

end;

writeln (‘искомый вектор’);

FOR i:=1 to m do

writeln (P[i]:4:1, ‘ ’);

end.