Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1196.doc
Скачиваний:
20
Добавлен:
09.04.2015
Размер:
1.29 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

begin

max:=y[k];

end;

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

for i=1 to n do

begin

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

end;

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

end.

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

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

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

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

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

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

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

, у=1÷4

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

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

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

Блок-схема алгоритма приведена на рис. 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 i=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

begin

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

end;

end;

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

FOR i=1 to m do

begin

FOR i=1 to n do

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

writeln;

end;

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

FOR I=1 to m do

begin

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

end;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]