Динамическое программирование. 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.

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

  1. Введен тип данных Ptz, который является указателем на запись Stack.
  2. Задана структура данных Stack, которая содержит поля inf (информация) и Next (указатель на следующий элемент стека).
  3. Объявлены переменные x, y, top, kon и value.
  4. В процедуре MaleStack происходит добавление чисел в стек до тех пор, пока не будет введено число 999.
  5. В процедуре ViewStack выводится информация из стека в обратном порядке (от последнего к первому).
  6. В процедуре AddStack происходит добавление чисел в стек до тех пор, пока не будет введено число 999.
  7. В основной программе вызываются процедуры MaleStack, ViewStack и AddStack.
  8. После выполнения всех процедур программа ожидает ввода, чтобы завершить работу.

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


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

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

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