
9 КЛАСС Найти два максимальных элемента массива Паскаль, пожалуйста!!!!!


Ответы на вопрос

Ответ:
const
N = 10;
var
a: array[1..N] of integer;
i, max1, max2, buff: byte;
begin
randomize;
for i:=1 to N do begin
a[i] := random(10);
write(a[i]:3);
end;
writeln;
if a[1] > a[2] then begin
max1 := 1;
max2 := 2;
end
else begin
max1 := 2;
max2 := 1;
end;
for i:=3 to N do
if a[i] > a[max1] then begin
buff := max1;
max1 := i;
if a[buff] > a[max2] then
max2 := buff;
end
else
if a[i] > a[max2] then
max2 := i;
writeln(max1,' ', a[max1]);
writeln(max2,' ', a[max2]);
end.
Объяснение:



Для поиска двух максимальных элементов в массиве в Паскале можно использовать следующий алгоритм:
1. Объявляем переменные max1 и max2 и инициализируем их со значениями, которые гарантированно менее всех элементов массива. Например, можно присвоить им минимальное значение типа данных массива.
2. Проходим по всем элементам массива, сравнивая каждый элемент с текущими значениями max1 и max2.
3. Если мы находим элемент, больший, чем max1, то присваиваем его значение переменной max1, а значение max1 присваиваем переменной max2.
4. Если мы находим элемент, больший, чем max2, но меньший, чем max1, то присваиваем его значение переменной max2.
5. После прохода по всем элементам массива, значения max1 и max2 будут содержать два максимальных элемента.
Вот пример кода на Паскале, реализующего данный алгоритм:
``` program FindMax;
const N = 10; // размер массива minValue = Low(Integer); // минимальное значение типа Integer
var arr: array[1..N] of Integer; // объявление массива i, max1, max2: Integer;
begin // заполнение массива случайными числами Randomize; for i := 1 to N do arr[i] := Random(100);
// инициализация max1 и max2 max1 := minValue; max2 := minValue;
// поиск двух максимальных элементов for i := 1 to N do begin if arr[i] > max1 then begin max2 := max1; max1 := arr[i]; end else if (arr[i] > max2) and (arr[i] < max1) then begin max2 := arr[i]; end; end;
// вывод результатов WriteLn('Массив:'); for i := 1 to N do Write(arr[i], ' ');
WriteLn; WriteLn('Два максимальных элемента: ', max1, ' и ', max2); ReadLn; end. ```
В данном примере массив заполняется случайными числами, но вы можете изменить эту часть кода, чтобы заполнить массив сами или использовать другой способ заполнения.
После запуска программы, она выведет массив и два максимальных элемента.
Надеюсь, это поможет вам найти два максимальных элемента в массиве на Паскале. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать!


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili