Задача на массивы, нужен совет - 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.

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

  1. Объявлены константа n равная 6 и переменные a, i и f типа integer.
  2. Выводится запрос на ввод массива.
  3. Происходит цикл от 1 до n, в котором происходит вывод формулы для ввода элемента массива и его последующий ввод с клавиатуры.
  4. Происходит цикл от 1 до n-1, в котором проверяется условие, что отрицательные элементы массива идут с переменными шагами.
  5. Выводится результат проверки.
  6. Происходит цикл от 1 до n, в котором выводятся элементы массива, удовлетворяющие условию.
  7. Программа ожидает ввода с клавиатуры для завершения работы.

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


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

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

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