Неотрицательные числа нужно выписать в порядке, обратном тому, в котором они вводились - 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.
Объяснение кода листинга программы
- Объявлены тип данных PNode и структура Node, представляющая узел в связном списке
- Объявлены переменные stack, tmp, num типа PNode и integer соответственно
- Инициализируется переменная stack значением nil
- Запускается бесконечный цикл, прерываемый при вводе отрицательного числа
- В каждой итерации цикла считывается число и создается новый узел для его хранения
- Узел добавляется в конец связного списка, хранящегося в переменной stack
- После окончания цикла связный список обходит в обратном порядке и выводит значения каждого узла
- Выводится -1, чтобы указать на окончание вывода
- В конце программы вызывается функция Dispose для освобождения памяти, выделенной под каждый узел связного списка
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д