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

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

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

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

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

textual
Листинг программы
type
    PNode = ^Node;
    Node  = record
        data: integer;
        link: PNode;
    end;
var
    stack, tmp:PNode;
    num: integer;
begin
    stack := nil;
    while true do begin
        read(num);
        if num < 0 then break;
        new(tmp);
        tmp^.data := num;
        tmp^.link := stack;
        stack := tmp;
    end;
    while stack <> nil do begin
        tmp := stack;
        stack := tmp^.link;
        write(tmp^.data, ' ');
        dispose(tmp);
    end;
    writeln(-1);
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
Похожие ответы