Развернуть элементы в обратном порядке до найденного локального максимума - 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.

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

  1. Объявлены переменные: m = 30 - размер массива; a = array[1..m] of integer = массив целых чисел; i, k, t = Integer; = целочисленные переменные для циклов;
  2. Инициализация генератора случайных чисел.
  3. Вывод исходного массива с помощью цикла for и write(a[i]:4).
  4. Поиск индекса локального максимума с помощью цикла for и условий if.
  5. Если локальный максимум найден, то выполняется поворот массива с помощью цикла for и условий if.
  6. Вывод измененного массива с помощью цикла for и write(a[i]:4).
  7. Если локальный максимум не найден, то выводится сообщение о том, что массив не содержит локальных максимумов.
  8. Запрос на ввод с помощью readln.

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


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

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

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