· 6 years ago · Oct 17, 2018, 04:46 PM
1program my8;
2uses crt;
3const
4 size = 5;
5TYPE
6 Tenant=record
7 surname: string;
8 street: string;
9 house: integer;
10 flat: integer;
11 END;
12
13 PTenant = ^Tenant;
14
15 PComp = ^Comp;
16 Comp = record
17 data: Tenant;
18 pNext: PComp;
19 end;
20
21 TenStrings = array[1..10] of string;
22
23procedure CreateQueue(var pBegin, pEnd: PComp; var data: Tenant);
24begin
25 New(pBegin);
26 pBegin^.pNext := NIL;
27 pBegin^.data := data;
28 pEnd := pBegin
29end;
30
31procedure AddQueue(var pEnd: PComp; data: Tenant);
32var
33 pData: PComp;
34begin
35 if pEnd = NIL then
36 begin
37 New(pEnd);
38 pEnd^.pNext := NIL;
39 pEnd^.data := data;
40 end
41 else
42 begin
43 New(pData);
44 pData^.pNext := pEnd;
45 pEnd := pData;
46 pEnd^.data := data;
47 end;
48end;
49
50procedure GenerateList(var pEnd: PComp);
51var
52 surnames: TenStrings = (
53 'Putin',
54 'Gorbokonenko',
55 'Timoshenko',
56 'Negoda',
57 'Durov',
58 'Vlasenko',
59 'Girinovskii',
60 'Medvedev',
61 'Maradonna',
62 'Shirokov'
63 );
64 streets: TenStrings = (
65 'Lenina',
66 'Gaya',
67 'Marksa',
68 'Minaeva',
69 'Lomonosova',
70 'LenKom',
71 'Surova',
72 'Tverskaya',
73 'Goncharova',
74 'Minina'
75 );
76 newTenant: Tenant;
77 i: integer;
78begin
79 for i := 1 to 10 do
80 begin
81 //New(newTenant);
82 newTenant.surname := 'test1';//surnames[Random(9) + 1];
83 newTenant.street := 'test2';//streets[Random(9) + 1];
84 newTenant.house := Random(5);
85 newTenant.flat := Random(1000);
86 AddQueue(pEnd, newTenant);
87 end;
88end;
89procedure PrintList(pEnd: PComp);
90var
91 current: PComp;
92begin
93 current := pEnd;
94
95 while current <> NIL do
96 begin
97 writeln(current^.data.surname);
98 writeln('-------------------------------------');
99 current := current^.pNext;
100 end;
101end;
102var
103 pEnd: PComp;
104begin
105 writeln('|-------------------------------------|');
106 randomize;
107 pEnd := NIL;
108 GenerateList(pEnd);
109 PrintList(pEnd);
110 readln;
111end.