Вывести закономерность возрастания или убывания по первым двум числам - 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.
Объяснение кода листинга программы
- Переменная n инициализируется значением 20.
- Создается массив a, который может вместить до 20 целых чисел.
- Создаются две переменные i и j, которые будут использоваться для цикла.
- Вызывается функция randomize, чтобы инициализировать генератор случайных чисел.
- Запускается цикл for, который выполняется 20 раз. В каждой итерации этого цикла присваивается случайное число от 1 до 100 (включительно) переменной a[i], и это число выводится на экран с пробелом.
- После завершения цикла выводится символ новой строки.
- Переменная b инициализируется значением true. Она будет использоваться для определения типа последовательности (возрастающей или убывающей).
- Если значение переменной b равно true, то выводится сообщение
increasing:
, что означает, что последовательность является возрастающей. - Если значение переменной b равно false, то выводится сообщение
decreasing:
, что означает, что последовательность является убывающей. - Выводится первый элемент массива a[j].
- Запускается цикл for, который начинается со второго элемента массива (i=2) и продолжается до последнего элемента (n-1).
- Внутри цикла проверяется условие a[i]>a[j] и если оно выполняется, то выводится элемент a[i] и переменная j обновляется, чтобы отразить текущее значение j.
- Цикл завершается, когда выполнено условие a[i]>a[j] для всех элементов от i=2 до n-1.
- Выводится последнее значение переменной j, которое должно быть равно b (a[1]<a[2]).
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д