gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
kod za nizslog malo unapredjen
[spa1skripta-public.git] / kodovi / fajlovi / nizslog.MOD
1 MODULE nizslog;
2 FROM InOut IMPORT WriteString, WriteLn, WriteCard,
3 ReadCard, ReadString;
4 FROM FIO IMPORT File, Exists, Open, Create, Close, EOF,
5 RdItem, RdCard, WrStr, WrCard, WrLn;
6 FROM Str IMPORT Compare;
8 CONST
9 MaxStud = 100;
10 radnifajl = "studenti.txt";
11 TYPE
12 String = ARRAY[1..30] OF CHAR;
13 Student = RECORD
14 ime, prez: String;
15 god: CARDINAL;
16 END;
17 Studenti = ARRAY[1..MaxStud] OF Student;
19 PROCEDURE UcitajF(fajl:String;
20 VAR spisak: Studenti; VAR n:CARDINAL);
21 VAR
22 f:File;
23 BEGIN
24 n:=0;
25 IF Exists(fajl) THEN
26 f:= Open(fajl);
27 EOF := FALSE;
28 WHILE NOT EOF DO
29 INC(n);
30 RdItem(f, spisak[n].prez);
31 RdItem(f, spisak[n].ime);
32 spisak[n].god := RdCard(f);
33 END;
34 Close(f);
35 END;
36 END UcitajF;
38 PROCEDURE Ispisi(spisak:Studenti; n:CARDINAL);
39 VAR
40 i: CARDINAL;
41 BEGIN
42 FOR i:=1 TO n DO
43 WriteString(spisak[i].prez);
44 WriteString(" ");
45 WriteString(spisak[i].ime);
46 WriteString(" ");
47 WriteCard(spisak[i].god,1);
48 WriteLn;
49 END;
50 END Ispisi;
52 PROCEDURE IspisiF(fajl:String;
53 spisak:Studenti; n:CARDINAL);
54 VAR
55 f:File;
56 i: CARDINAL;
57 BEGIN
58 IF (n>0) AND (n<=MaxStud) THEN
59 f:=Create(fajl);
60 (* pravimo takav fajl da ne
61 postoji zadnji prazan red *)
62 FOR i:=1 TO n-1 DO
63 WrStr(f,spisak[i].prez);
64 WrStr(f," ");
65 WrStr(f,spisak[i].ime);
66 WrStr(f," ");
67 WrCard(f,spisak[i].god,1);
68 WrLn(f);
69 END;
70 WrStr(f,spisak[n].prez);
71 WrStr(f," ");
72 WrStr(f,spisak[n].ime);
73 WrStr(f," ");
74 WrCard(f,spisak[n].god,1);
75 Close(f);
76 END;
77 END IspisiF;
79 PROCEDURE NoviStudent(VAR spisak:Studenti; VAR n:CARDINAL);
80 VAR
81 stud,temp:Student;
82 i:CARDINAL;
83 dodaj:BOOLEAN;
84 BEGIN
85 IF n<MaxStud THEN
86 WriteString("Prezime novog studenta?");
87 ReadString(stud.prez);
88 WriteString("Ime novog studenta?");
89 ReadString(stud.ime);
90 WriteString("God. rodj. novog studenta?");
91 ReadCard(stud.god);
92 (* proverimo da li vec postoji *)
93 i:=1;
94 dodaj := TRUE;
95 WHILE (i<=n) AND dodaj DO
96 temp := spisak[i];
97 IF (temp.god = stud.god) &
98 (Compare(temp.prez,stud.prez)=0) &
99 (Compare(temp.ime,stud.ime)=0) THEN
100 dodaj:=FALSE;
101 END;
102 INC(i);
103 END;
104 IF dodaj THEN
105 INC(n);
106 spisak[n]:=stud;
107 ELSE
108 WriteString("podaci vec postoje!");
109 END;
110 ELSE
111 WriteString("popunjen kapacitet!");
112 END;
113 END NoviStudent;
115 VAR
116 spisak : Studenti;
117 n:CARDINAL;
118 BEGIN
119 UcitajF(radnifajl, spisak, n);
120 Ispisi(spisak, n);
121 NoviStudent(spisak,n);
122 IspisiF(radnifajl, spisak, n);
123 END nizslog.
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner