Развернуть элементы в обратном порядке до найденного локального максимума - Pascal
Формулировка задачи:
Дан целочисленный массив, состоящий из 30 целых элементов. Массив заполнить с помощью генератора случайных чисел. Вывести на экран полученный массив. Найти минимальный из его локальных мaксимумов. Развернуть элементы в обратном порядке до найденного локального максимума. Вывести измененный массив.
Решение задачи: «Развернуть элементы в обратном порядке до найденного локального максимума»
textual
Листинг программы
const m = 30; var a: array[1..m] of integer; i, k, t: Integer; begin randomize; writeln('Исходный массив:'); for i := 1 to m do begin a[i] := -99 + random(199); write(a[i]:4) end; writeln; k := 0; for i := 2 to m - 1 do if (a[i] > a[i - 1]) and (a[i] > a[i + 1]) and ((k = 0) or (a[i] < a[k])) then k := i; if k > 0 then begin writeln('Минимальный локальный максимум: A[', k, '] = ', a[k]); if k > 2 then begin for i := 1 to (k - 1) div 2 do begin t := a[i]; a[i] := a[k - i]; a[k - i] := t end; writeln('Изменённый массив:'); for i := 1 to m do write(a[i]:4) end else writeln('Массив не изменился') end else write('Массив не содержит локальных максимумов'); readln end.
Объяснение кода листинга программы
- Объявлены переменные: m = 30 - размер массива; a = array[1..m] of integer = массив целых чисел; i, k, t = Integer; = целочисленные переменные для циклов;
- Инициализация генератора случайных чисел.
- Вывод исходного массива с помощью цикла for и write(a[i]:4).
- Поиск индекса локального максимума с помощью цикла for и условий if.
- Если локальный максимум найден, то выполняется поворот массива с помощью цикла for и условий if.
- Вывод измененного массива с помощью цикла for и write(a[i]:4).
- Если локальный максимум не найден, то выводится сообщение о том, что массив не содержит локальных максимумов.
- Запрос на ввод с помощью readln.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д