gitweb on Svarog

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