Задача на массивы, нужен совет - Turbo Pascal
Формулировка задачи:
Приветствую! Нужна помощь по паскалю. Задание такое: Даны целые числа a1, a2, ..., an, каждое из которых отлично от
нуля. Если в последовательности отрицательные и положи-
тельные члены чередуются (+, –, +, –,.... или –, +, –, +,...), то
напечатать исходную последовательность. Иначе напечатать
все отрицательные члены последовательности, сохранив по-
рядок их следования.
Мой код:
Ошибка в том, что при вводе - он съедает последнее (шестое число) и не показывает в окне. Где и что нужно исправить? ХЕЛП ПЛИЗ!
На этом форуме уже была такая тема, но решения там нет. Нужен именно этот пример!
Решение задачи: «Задача на массивы, нужен совет»
textual
Листинг программы
const n = 6; var a: array[1..n] of integer; i: integer; f: boolean; begin writeln('Enter array:'); for i := 1 to n do begin write('a[', i, '] = '); readln(a[i]); end; f := true; for i := 1 to n - 1 do f := f and ((a[i] < 0) xor (a[i + 1] < 0)); writeln('Result:'); for i := 1 to n do if f or (a[i] < 0) then writeln(a[i]); readln end.
Объяснение кода листинга программы
- Объявлены константа
n
равная 6 и переменныеa
,i
иf
типа integer. - Выводится запрос на ввод массива.
- Происходит цикл от 1 до n, в котором происходит вывод формулы для ввода элемента массива и его последующий ввод с клавиатуры.
- Происходит цикл от 1 до n-1, в котором проверяется условие, что отрицательные элементы массива идут с переменными шагами.
- Выводится результат проверки.
- Происходит цикл от 1 до n, в котором выводятся элементы массива, удовлетворяющие условию.
- Программа ожидает ввода с клавиатуры для завершения работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д