В массиве определить 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.
Объяснение кода листинга программы
- Создается переменная nmax, которая имеет максимальное значение для количества элементов в массиве, равное 25.
- Создается переменная a, которая представляет собой массив целых чисел.
- Создаются три переменные: n, i и imax1. Переменная n используется для хранения введенного пользователем количества элементов массива, переменная i используется для перебора элементов массива, а переменная imax1 используется для хранения индекса первого максимального элемента.
- Выводится сообщение с просьбой ввести количество элементов массива от 2 до nmax.
- Считывается введенное пользователем количество элементов массива.
- Выводится сообщение с просьбой ввести n элементов массива.
- Для каждого i от 1 до n выполняется цикл. В каждой итерации выводится сообщение с просьбой ввести значение элемента массива a[i].
- Если a[1] больше a[2], то переменные imax1 и imax2 устанавливаются в 1 и 2 соответственно.
- Если a[i] больше a[imax1] для i от 3 до n, то переменные imax1 и imax2 обновляются. Если a[i] больше a[imax2], то imax2 устанавливается в i.
- Выводится сообщение с просьбой ввести два элемента массива с наибольшими значениями.
- Если abs(imax1 - imax2) равно 1, то выводится сообщение
Нет элементов для обнуления
. - Если imax2 меньше imax1, то переменные x, imax1 и imax2 устанавливаются в x = imax1, imax1 = imax2 и imax2 = x соответственно.
- Для каждого i от imax1 + 1 до imax2 - 1 выполняется цикл. В каждой итерации a[i] устанавливается в 0.
- Выводится измененный массив.
- Для каждого i от 1 до n выполняется цикл. В каждой итерации выводится значение a[i].
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д