Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 03.06.2018, 20:02   #1 (permalink)
LayZer
Новичок
 
Регистрация: 18.05.2018
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите разработать и отладить программу с применением стека

Произвести проверку соблюдения баланса операторов REPEAT
UNTIL в тексте программы на языке Паскаль. Использовать программный стек.



Код:
Program Skobki;
Type
EXST = ^ST;
ST = record
Data : char;
Next : EXST;
end;
Var
a : string;
f : boolean;
i : integer;
Procedure writeStack(Var x1 : EXST; c : char);
Var
u : EXST;
Begin
new(u); {Создание нового элемента стека}
u^.Data := c;
u^.Next := x1;
x1 := u; {Созданный элемент определить как вершину стека}
End;
Procedure DelStack(Var x1 : EXST); {Процедура удаления верхнего элемента стека}
Var
u : EXST;
Begin
u := x1;
x1 := x1^.Next;
dispose(u);
End;
Procedure Solve(a : string); {Проверка баланса repeat-until}
Var
Stack : EXST;
Begin
Stack := Nil;
i := 1;
while (i<=Length(a)) and f do
begin
if (a[i]='repeat')
then
writeStack(Stack , a[i])
else
if (a[i]='until')
then
if (Stack <> Nil) And (Ord(a[i]) - Ord(Stack ^.Data) <= 2)
then
DelStack(Stack)
else
f := False;
Inc(i);
end;
end;
Begin
writeln('Vvedite stroky');
readln(a);
f := True;
if a<>''
then
begin
Solve(a);
if f
then
writeln('Balans')
else
writeln('Net balansa');
end
else
writeln('Строка пуста');
readln;
End.
LayZer вне форума   Ответить с цитированием

Старый 03.06.2018, 20:02
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

В данных топиках должна быть интересующая вас информация

Помогите отладить программу
Помогите отладить программу
Помогите отладить программу на С++
Разработать алгоритм удаления из стека

Старый 03.06.2018, 20:15   #2 (permalink)
LayZer
Новичок
 
Регистрация: 18.05.2018
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Удалил случайно часть нужного текста. Помогите доделать программу, пропустил тему по стекам и вот сейчас мучаюсь сижу, а сдавать надо через неделю. Наработки сверху.
LayZer вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 23:38.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.