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

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

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

> реализовать стек из записей, срочно нужно...помогите плиз
serega204
сообщение 23.10.2009 18:31
Сообщение #1


Новичок
*

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

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


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

Program LR1;    Uses Crt;
Type
PStruct = ^Struct;
Struct = Record
GR : String[12];
NM : 1600 .. 2000;
Ptr : PStruct;
inf : integer;
End;
Const C : Array [1..7] of string[40] = (
' ',
' Towns of Riga ',
'ХННННННННННННСННННННННННННё',
'іName of TownіYear of Baseі',
'ЖННННННННННННШННННННННННННµ',
'ГДДДДДДДДДДДДЕДДДДДДДДДДДДґ',
'ФННННННННННННПННННННННННННѕ' );
Var Stack : PStruct;
h, Year : integer;
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 Push (Var S : PStruct; e : integer);
Var z : PStruct;
Begin
z^.ptr := S;
z^.inf := e;
S := z;
End;

Function Pop (S : PStruct) : Integer;
Var z : PStruct;
Begin
If S = Nil then
Begin
Writeln ('stek pust');
end else
Begin
z := S;
S := S^.ptr;
Pop := z^.inf;
End;
end;

Procedure Vivod;
Var S : PStruct;
Begin S := Stack;
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 (Var S : PStruct; Dat : integer);
Var Nov : PStruct;
Begin New (Nov);
Nov^.inf := Dat; Nov^.Ptr := Stack; Stack := Nov;
End;

Procedure Vvod;
Var Z : Struct;
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 (Stack, h);
End;
Close (Fi);
End;

Function Cht (S : PStruct) : Integer;
Begin
If S <> nil Then Cht := S^.inf
End;

Procedure Ud (Var S : PStruct);
Var Old : PStruct;
Begin If S <> Nil then Begin
Old := S; S := S^.Ptr; {P(Old^);}
Dispose (Old); end
End;

{----- -----}
Begin CLRSCR;
Assign (Output, ''); 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, 'Vvedite god osnovania goroda');
Read(Year);
Cht (Stack);
Ud (Stack);
{Push (Stack,h);}
Close (Output);
readln;
end.


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

Сообщений в этой теме


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

 



- Текстовая версия 20.06.2025 7:29
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"