Неотрицательные числа нужно выписать в порядке, обратном тому, в котором они вводились - Free Pascal

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

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

Помогите, пожалуйста решить в Free Pascal. Спасибо. Загрузите последовательность неотрицательных целых чисел, оканчивающихся на отрицательное число. Загруженные неотрицательные числа нужно выписать в выводе в обратном порядке чем они были при вводе. Вывод окончите значением -1. Для простоты предположим, что длина последовательности до 50.

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

textual
Листинг программы
  1. type
  2.     PNode = ^Node;
  3.     Node  = record
  4.         data: integer;
  5.         link: PNode;
  6.     end;
  7. var
  8.     stack, tmp:PNode;
  9.     num: integer;
  10. begin
  11.     stack := nil;
  12.     while true do begin
  13.         read(num);
  14.         if num < 0 then break;
  15.         new(tmp);
  16.         tmp^.data := num;
  17.         tmp^.link := stack;
  18.         stack := tmp;
  19.     end;
  20.     while stack <> nil do begin
  21.         tmp := stack;
  22.         stack := tmp^.link;
  23.         write(tmp^.data, ' ');
  24.         dispose(tmp);
  25.     end;
  26.     writeln(-1);
  27. end.

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

  1. Объявлены тип данных PNode и структура Node, представляющая узел в связном списке
  2. Объявлены переменные stack, tmp, num типа PNode и integer соответственно
  3. Инициализируется переменная stack значением nil
  4. Запускается бесконечный цикл, прерываемый при вводе отрицательного числа
  5. В каждой итерации цикла считывается число и создается новый узел для его хранения
  6. Узел добавляется в конец связного списка, хранящегося в переменной stack
  7. После окончания цикла связный список обходит в обратном порядке и выводит значения каждого узла
  8. Выводится -1, чтобы указать на окончание вывода
  9. В конце программы вызывается функция Dispose для освобождения памяти, выделенной под каждый узел связного списка

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


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

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

5   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы