Вывести закономерность возрастания или убывания по первым двум числам - Turbo Pascal

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

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

Не правильно считает программа : задаю случайный массив одномерный от 1 до 20 , с числами пример от -50 до 100 , нужно вывести закономерность возрастания или убывания по первым двум числам , и после продолжить убирая лишние элементы массива. Но получается так на пример массив :-1 0 2 3 -5 ............7; получается -1 0 2 3 7 возрастание правильно или пример 6 5 8 -4 6 -1..... ; получается 6 5 -4 -1 ... правильно. А может и так 3 6 8 4 6 2 .... определяет убывание 3 2 вместо возрастание , не стабильно работает в чём ошибка , понять не могу ?

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

textual
Листинг программы
const n=20;
var
 a:array[1..n] of integer;
 i,j:integer;
 b:boolean;
begin
  randomize;
  for i:=1 to n do begin
    a[i]:=random(101)-50;
    write(a[i],' ');
  end;
  writeln;
  j:=1; //индекс отобранного элемента
  b:=a[1]<a[2]; //если true, то последовательность возрастающая
  if b then write('increasing:') else write('decreasing:'); //собственно вывод типа этой последовательности
  write(a[j]); //вывод первого элемента
  for i:=2 to n do if (a[i]>a[j]=b) then begin write(' ',a[i]);j:=i;end; 
//цикл для вывода остальных элементов, 
//удовлетворяющих требованию для первых двух,
//т.е. последний элемент, удовлетворяющий                      
//требованиям a[j] при сравнении с текущим 
//должен принимать значение равное переменной
// b (a[1]<a[2])
end.

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

  1. Переменная n инициализируется значением 20.
  2. Создается массив a, который может вместить до 20 целых чисел.
  3. Создаются две переменные i и j, которые будут использоваться для цикла.
  4. Вызывается функция randomize, чтобы инициализировать генератор случайных чисел.
  5. Запускается цикл for, который выполняется 20 раз. В каждой итерации этого цикла присваивается случайное число от 1 до 100 (включительно) переменной a[i], и это число выводится на экран с пробелом.
  6. После завершения цикла выводится символ новой строки.
  7. Переменная b инициализируется значением true. Она будет использоваться для определения типа последовательности (возрастающей или убывающей).
  8. Если значение переменной b равно true, то выводится сообщение increasing:, что означает, что последовательность является возрастающей.
  9. Если значение переменной b равно false, то выводится сообщение decreasing:, что означает, что последовательность является убывающей.
  10. Выводится первый элемент массива a[j].
  11. Запускается цикл for, который начинается со второго элемента массива (i=2) и продолжается до последнего элемента (n-1).
  12. Внутри цикла проверяется условие a[i]>a[j] и если оно выполняется, то выводится элемент a[i] и переменная j обновляется, чтобы отразить текущее значение j.
  13. Цикл завершается, когда выполнено условие a[i]>a[j] для всех элементов от i=2 до n-1.
  14. Выводится последнее значение переменной j, которое должно быть равно b (a[1]<a[2]).
  15. Конец программы.

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


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

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

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