IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Реализация стека, (нужна помощь)
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 30
Пол: Мужской
Реальное имя: serega

Репутация: -  0  +


помогите пожалуйста с задачей...реализовать стек содержащий записи, состоящие из двух полей: названия города и года основания. Напечатать в порядке, обратном поступлению, сначала все древние города (древнее заданного года), а затем более молодые....Вот только я не знаю в какой процедуре и как это нужно описывать...подправьте пожалуйста!!!!

Program LR1;    Uses Crt;
Type
St = Array [1..7] of string[40];
ST1 = String[12];
PStruct = ^Struct;
Struct = Record
GR : ST1;
NM : 1600 .. 2000;
Ptr : PStruct;
End;
Const C : St = (
' ',
' Towns of Riga ',
' ',
' Name of Town Year of Base ',
' ',
' ',
' ' );
Var Stack : PStruct;
Fi, Fr : Text;
m : byte;

Procedure Sh;
Begin

For m := 1 to 5 do Writeln (Output, C[m]);
End;

Procedure P (Z1 : Struct);
Begin
Writeln (Output, 'і', Z1.GR :12 , 'і' :1 , Z1.NM , ' і':9);
End;

Procedure Vivod;
Var S : PStruct;
Begin S := Stack; Sh;
While S <> Nil do begin
P(S^);
S := S^.Ptr;
If S <> Nil then Writeln (Output, C[6])
else Writeln (Output, C[5]);
End;
End;

Procedure Dop (Dat : Struct);
Var Nov : PStruct;
Begin New (Nov);
Nov^ := Dat; Nov^.Ptr := Stack; Stack := Nov;
End;

Procedure Vvod;
Var Z : Struct;
{ B : Char; }
Min : Integer;
Begin
Assign (Fi, 'ishodnie.dat'); Reset (Fi);
Writeln (#10#13, 'Zapolnenie steka novimi zapisami', #10#13);
While not Seekeof (Fi) do
with Z do begin
Readln (Fi, GR, NM);
P(Z); Dop (Z);
End;
Close (Fi);
End;

Procedure Ud (Var S : PStruct);
Var Old : PStruct;
Begin If Stack <> Nil then Begin
Old := S; S := S^.Ptr; P(Old^); Dispose (Old);
end
else
Writeln(#10#13, 'Udalenie neuspeshno: stek pust');
End;

Procedure Cht (S : PStruct);
Begin
If S <> nil Then P(S^)
Else Writeln (#10#13, 'Stek pust');
End;

Begin CLRSCR;
Assign (Output, 'Rez.dat'); Rewrite (Output);
Stack := Nil;
Writeln ('Proverka pustoti steka');
Sh;
Cht(Stack);
Ud(Stack);
Vvod;
Vivod;
Writeln (#10#13, 'Chtenie i udalenie zapisey iz steka', #10#13);
while Stack <> Nil do
Begin {Cht (Stack);}
Ud (Stack);
End;
Writeln (#10#13, 'Proverka pustoti steka');
Cht (Stack);
Ud (Stack);
Close (Output);
readln;
end.


М
1. Теги CODE не забывай...
2. Тему переименовал, а то "Нужна помощь" с главной страницы смотрится не очень...



Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.10.2020 17:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name