В массиве определить 2 элемента с наибольшими значениями - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Задание. В произвольно заданном одномерном массиве определить 2 элемента с наибольшими значениями и обнулить все элементы,расположенные между найденными значениями.
И если не трудно,можно,пожалуйста блок-схему. ( Массив,естественно,раскрывать не нужно) Спасибо!

Решение задачи: «В массиве определить 2 элемента с наибольшими значениями»

textual
Листинг программы
const nmax=25;
var a:array[1..nmax] of integer;
    n,i,imax1,imax2,x:integer;
begin
repeat
write('Введите кол-во элементов массива от 2 до ',nmax,' n=');
readln (n);
until n in [2..nmax];
writeln('Введите',n,' элементов массива');
for i:=1 to n do
 begin
  writeln('a[',i,']=');
  readln(a[i]);
 end;
writeln('Исходный массив');
for i:=1 to n do
write (a[i],' ');
writeln;
{Поиск 2х элементов с наиб. значениями}
if a[1]>a[2] then
 begin
  imax1:=1;
  imax2:=2;
 end
else
 begin
  imax1:=2;
  imax2:=1;
 end;
for i:=3 to n do
if a[i]>a[imax1] then
 begin
  imax2:=imax1;
  imax1:=i;
 end
else if a[i]>a[imax2] then imax2:=i;
writeln('Первый максимальный элемент=',a[imax1],' его номер=',imax1);
writeln('Второй максимальный элемент=',a[imax2],' его номер=',imax2);
if abs(imax1-imax2)=1 then write('Нет элементов для обнуления')
else
 begin
  if imax2<imax1 then
   begin
    x:=imax1;
    imax1:=imax2;
    imax2:=x;
   end;
  for i:=imax1+1 to imax2-1 do
  a[i]:=0;
  writeln('Измененный массив');
  for i:=1 to n do
  write(a[i],' ');
 end;
end.

Объяснение кода листинга программы

  1. Создается переменная nmax, которая имеет максимальное значение для количества элементов в массиве, равное 25.
  2. Создается переменная a, которая представляет собой массив целых чисел.
  3. Создаются три переменные: n, i и imax1. Переменная n используется для хранения введенного пользователем количества элементов массива, переменная i используется для перебора элементов массива, а переменная imax1 используется для хранения индекса первого максимального элемента.
  4. Выводится сообщение с просьбой ввести количество элементов массива от 2 до nmax.
  5. Считывается введенное пользователем количество элементов массива.
  6. Выводится сообщение с просьбой ввести n элементов массива.
  7. Для каждого i от 1 до n выполняется цикл. В каждой итерации выводится сообщение с просьбой ввести значение элемента массива a[i].
  8. Если a[1] больше a[2], то переменные imax1 и imax2 устанавливаются в 1 и 2 соответственно.
  9. Если a[i] больше a[imax1] для i от 3 до n, то переменные imax1 и imax2 обновляются. Если a[i] больше a[imax2], то imax2 устанавливается в i.
  10. Выводится сообщение с просьбой ввести два элемента массива с наибольшими значениями.
  11. Если abs(imax1 - imax2) равно 1, то выводится сообщение Нет элементов для обнуления.
  12. Если imax2 меньше imax1, то переменные x, imax1 и imax2 устанавливаются в x = imax1, imax1 = imax2 и imax2 = x соответственно.
  13. Для каждого i от imax1 + 1 до imax2 - 1 выполняется цикл. В каждой итерации a[i] устанавливается в 0.
  14. Выводится измененный массив.
  15. Для каждого i от 1 до n выполняется цикл. В каждой итерации выводится значение a[i].

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы