Упражнение 1 (Одномерные массивы)

Дан массив чисел. Найти значение максимального элемента. Если таких элементов несколько, то определить, сколько их.

Эта задача может быть решена за один просмотр элементов массива. Вначале устанавливаем текущий максимум по первому элементу массива МАХ := MAS[1] и запоминаем количество максимумов К := 1. Затем выбираем очередной элемент MAS[I] массива и сравниваем его с МАХ. В случае равенства увеличиваем значение К на единицу. Если текущий максимум меньше элемента MAS[I], то переприсваиваем его МАХ := MAS[I] и устанавливаем значение К в единицу. После окончания просмотра выводим результаты на экран. В данном случае считывание элементов массива разумно совместить с процессом обработки, но считывание можно осуществить и двумя последовательными циклами:

PROGRAM PRG4_1;

CONST М = 100;

VAR MAS : ARRAY[1..M] OF INTEGER;

I, MAX, K, N : INTEGER;

BEGIN

WRITE(‘BBEДИTE РАЗМЕР МАССИВА N = ‘);

READLN(N);

WRITE(‘BBEДИTE ЭЛЕМЕНТ МАССИВА ‘);

READLN(MAS[1]);

MAX := MAS[1];

K:=1;

FOR I := 2 TO N DO

BEGIN

WRITE(‘BBEДИTE ЭЛЕМЕНТ МАССИВА ‘);

READLN(MAS[I]);

IF MAX<MAS[I] THEN

BEGIN

MAX := MAS[I];

K:= 1

END

ELSE

IF MAX = MAS[I] THEN К := K+1;

END;

WRITELN(‘MAX =’, MAX, ‘ЭТИХ ЭЛЕМЕНТОВ’, К)

END.

Для решения задачи:

— формируем тело программы и описываем переменные;

— вводим длину массива N, значение элементов массива и устанавливаем начальное значение МАХ по первому числу;

— последовательно просматриваем элементы, и если очередной MAS[I] больше МАХ, то переприсваиваем значение МАХ:= MAS[I] и К:= 1;

— если MAS[I] = МАХ, то увеличиваем значение К на единицу;

— выводим результат.

Переменные:

MAS — массив чисел;

N — размер массива;

I — переменная цикла;

МАХ — значение наибольшего элемента;

К — количество наибольших элементов.

Добавить комментарий