Динамическое программирование. Stack - Pascal
Формулировка задачи:
Начал основывать динамику и начал со стэка, нужна помощь запуска программы.
Вот процедуры и нужные данные:
Помогите запустить и подправьте где что-то не так)
Type Ptr=^Stack; Stack=record inf:integer; Next:Ptr; end; var x:Stack; y,top,kon:Ptz; value:integer; procedure MaleStack; Var Ok:boolean; begin Ok:=true; Top:=Nil; while Ok do begin weiteln('Введите число: '); readln(value); if value=999 then Ok:=false; else New(kon); Kon^.Next:=Top; Kon^.inf:=value; Top:=kon; end; end; end; //Показ работы: procedure ViewStack; begin Kon:=Top; while kon<>Nil do begin writeln(kon^.inf); kon:=kon^.Next; end; end; //Добавление новых переменных procedure AddStack; var Ok:boolean; begin Ok:=true; while Ok do begin weiteln('Добавьте число: '); readln(value); if value:=999 then Ok:=false else begin New(kon); kon^.inf:=value; Top:=kon; end; end; end;
Решение задачи: «Динамическое программирование. Stack»
textual
Листинг программы
type Ptz = ^Stack; Stack = record inf: integer; Next: Ptz; end; var x: Stack; y, top, kon: Ptz; value: integer; procedure MaleStack; var Ok: boolean; begin Ok := true; Top := nil; while Ok do begin writeln('Введите число: '); readln(value); if value = 999 then begin Ok := false; break; end else New(kon); Kon^.Next := Top; Kon^.inf := value; Top := kon; end; end; //Показ работы: procedure ViewStack; begin Kon := Top; while kon <> nil do begin writeln(kon^.inf); kon := kon^.Next; end; end; //Добавление новых переменных procedure AddStack; var Ok: boolean; begin Ok := true; while Ok do begin writeln('Добавьте число: '); readln(value); if value = 999 then begin Ok := false; break; end else New(kon); Kon^.Next := Top; Kon^.inf := value; Top := kon; end; end; begin malestack; viewstack; addstack; viewstack; readln; end.
Объяснение кода листинга программы
- Введен тип данных Ptz, который является указателем на запись Stack.
- Задана структура данных Stack, которая содержит поля inf (информация) и Next (указатель на следующий элемент стека).
- Объявлены переменные x, y, top, kon и value.
- В процедуре MaleStack происходит добавление чисел в стек до тех пор, пока не будет введено число 999.
- В процедуре ViewStack выводится информация из стека в обратном порядке (от последнего к первому).
- В процедуре AddStack происходит добавление чисел в стек до тех пор, пока не будет введено число 999.
- В основной программе вызываются процедуры MaleStack, ViewStack и AddStack.
- После выполнения всех процедур программа ожидает ввода, чтобы завершить работу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д