Toon posts:

Proggie, bijna klaar, nog klein foutje, maar waar?

Pagina: 1
Acties:
  • 47 views sinds 30-01-2008

Verwijderd

Topicstarter
Ok, ons proggie ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
PROGRAM cijferadministratie (cijfers, output, input);
CONST afsluiter = 0;
VAR mutcode, idcode, leeftijd, som, aantal : integer;
       gem, cijfer : real;
       vak, opgave : char;
       cijfers, hulpfile : text;
PROCEDURE menu(VAR mutcode : integer);
BEGIN
      writeln('Cijferadministratie');
      writeln;
      writeln;
      writeln('Keuzemenu');
      writeln;
      writeln('Toets 1 voor het invoeren van cijfers.');
      writeln('Toets 2 voor het wijzigen van de cijfers.');
      writeln('Toets 3 voor het verwijderen van cijfers.');
      writeln('Toets 4 om de gemiddelden te bekijken.');
      writeln('Toets 5 om af te sluiten.');
      REPEAT
      write('U wenst: ');
      readln(mutcode);
      UNTIL (mutcode >= 1) AND (mutcode <= 5);
END;
BEGIN
menu(mutcode);
IF mutcode = 1;
THEN BEGIN
      reset(cijfers);
      rewrite(hulpfile);
      read(cijfers, idcode, leeftijd, cijfer, vak);
      WHILE idcode <> afsluiter DO
      BEGIN
            write(hulpfile, idcode, leeftijd, cijfer, vak);
            read(cijfers, idcode, leeftijd, cijfer, vak)
      END;
      BEGIN
            write('Voer de id-code van de student in: ');
            readln(idcode);
            write(hulpfile, idcode);
            write('Voer de leeftijd in: ');
            readln(leeftijd);
            write(hulpfile, leeftijd);
            write('Voer het behaalde cijfer in: ');
            readln(cijfer);
            write(hulpfile, cijfer:3:1);
    write('Voer het betreffende vak in: ');
            readln(vak);
            write(hulpfile, vak);
      END;
      writeln(hulpfile, afsluiter:1);
      reset(hulpfile);
      rewrite(cijfers);
      REPEAT
      read(hulpfile, idcode, leeftijd, cijfer, vak);
      write(cijfers, idcode, leeftijd, cijfer:3:1, vak);
      UNTIL idcode = afsluiter
     END;
END;
IF mutcode = 2;
THEN BEGIN
      reset(cijfers);
      rewrite(hulpfile);
      read(cijfers, idcode, leeftijd, cijfer, vak);
      WHILE idcode <> afsluiter DO
      BEGIN
            write(hulpfile, idcode, leeftijd, cijfer, vak);
            read(cijfers, idcode, leeftijd, cijfer, vak);
      END;
      BEGIN
            reset(hulpfile);
            rewrite(cijfers);
            WHILE NOT eof(hulpfile) DO
            BEGIN
                readln(hulpfile, idcode, leeftijd, cijfer, vak);
                writeln('Idcode: ', idcode, 'Leeftijd: ', leeftijd, 'Cijfer: ', cijfer, 'Vak: ', vak);
                writeln;
                writeln('Maak uw keuze: ');
                writeln('1: Overnemen ');
                writeln('2: Wijzigen ');
                REPEAT
                write(' Uw keuze is: '); readln(mutcode);
                UNTIL (mutcode >= 1)  AND (mutcode <= 2);
                CASE mutcode OF
                1: writeln(cijfers, idcode, leeftijd, cijfer, vak);
                2: BEGIN
                      write(' Nieuwe idcode : ');
                      readln(idcode);
                      writeln(cijfers, idcode);
                      write(' Nieuwe leeftijd: ');
                      readln(leeftijd);
                      writeln(cijfers, leeftijd)                      
                      write(' Nieuw cijfer: ');
                      readln(cijfer);
                      writeln(cijfers, cijfer)                    
      write(' Nieuw vak: ');
                      readln(vak);
                      writeln(cijfers, vak);
                    END;
            END;
      END;
   END;
END;
IF mutcode = 3;
THEN BEGIN
      reset(cijfers);
      rewrite(hulpfile);
      read(cijfers, idcode, vak, cijfer);
      WHILE idcode <> afsluiter DO
      BEGIN
            write(hulpfile, idcode, vak, cijfer);
            read(cijfers, idcode, vak, cijfer);
      END;
      BEGIN
            reset(hulpfile);
            rewrite(cijfers);
            WHILE NOT eof(hulpfile) DO
            BEGIN
readln(hulpfile, idcode, leeftijd, cijfer, vak);
                writeln('Idcode: ', idcode, 'Leeftijd: ', leeftijd, 'Cijfer: ', cijfer, 'Vak: ', vak);
                writeln;
                writeln('Maak uw keuze: ');
                writeln('1: Overnemen ');
                writeln('2: Wijzigen ');
                REPEAT
                    Write(' Uw keuze is: '); readln (mutcode);
                UNTIL (mutcode >= 1)  AND (mutcode <= 2);
                CASE mutcode OF
                1: writeln(cijfers, idcode, leeftijd, cijfer, vak);
                2: 
            END;
      END;
   END;
END;
IF mutcode = 4;
THEN BEGIN
                writeln('Maak uw keuze: ');
                writeln('Toets 1 om het totaal gemiddelde cijfer te zien.');
writeln('Toets 2 om het aantal leerlingen per vak te zien..');              writeln('Toets 3 om het gemiddelde cijfer van een vak te zien.');
                REPEAT
                    write('Uw keuze is: '); readln (mutcode);
                UNTIL (mutcode >= 1)  AND (mutcode <= 3);
                CASE mutcode OF
                1: BEGIN
         WHILE NOT eof(hulpfile) DO
                        BEGIN
        readln(hulpfile, idcode, leeftijd, cijfer, vak);
        som := som + cijfer;
                        aantal := aantal + 1;
END;
                 gem := som / aantal;
             write('Het totale gemiddelde is: '); write(gem);
             END;
                2: BEGIN
         write('Geef de vakcode op: '); readln(opgave);
WHILE NOT eof(hulpfile) DO
                        BEGIN
        readln(hulpfile, idcode, leeftijd, cijfer, vak);
        IF vak = opgave;
                        THEN aantal := aantal + 1;
END;    
                    write('Het aantal student voor dit vak is: '); write(aantal);
                 END;
                3: BEGIN
         write('Geef de vakcode op: '); readln(opgave);
WHILE NOT eof(hulpfile) DO
                        BEGIN
        readln(hulpfile, idcode, leeftijd, cijfer, vak);
        IF vak = opgave;
                        THEN    BEGIN
som := som + cijfer;
aantal := aantal + 1;
                END;
END;    
            gem :=  som / aantal;
                write('Het gemiddelde cijfer voor dit vak is: '); write(gem);
            END; 
END;
IF mutcode = 5;
THEN BEGIN
    writeln('Bedankt voor het gebruiken van dit programma en tot ziens');
    writeln('Tja en Tja');
END;
END.

Wij krijgen deze fout tijdens het testen:

"cijfers.p" 184 lines, 6825 characters
i1121434@orafem:~$ pc -s cijfers.p
Tue Jan 8 01:45:31 2002 cijfers.p:
26 IF mutcode = 1;
E 26090---------------------^--- Missing/malformed expression
27 THEN BEGIN
e 18450-------^--- Deleted keyword then
58 END;
E 18490----------^--- Expected '.'

we hebben het getest in Vi Editor (dus NIET turbo pascal) weet iemand waar de fout zit?

Alvast bedankt!

Verwijderd

die punt komma achter die 1 op regel 26

Verwijderd

Topicstarter
KLOPT!! Dank je wel de foutnelding is nu:

"cijfers.p" 184 lines, 6824 characters
i1121434@orafem:~$ pc -s cijfers.p
Tue Jan 8 02:08:34 2002 cijfers.p:
58 END;
E 18490----------^--- Expected '.'
Op dinsdag 08 januari 2002 01:52 schreef Yarvieh het volgende:
die punt komma achter die 1 op regel 26

Verwijderd

punt komma acher
code:
1
read(cijfers, idcode, leeftijd, cijfer, vak)

MAar wat zou je er van vinden om je zelf die paar syntax fouten er uit te halen? compiler zegt zelf al waar je het ongeveer moet zoeken, boeken er bij en kijken wat er fout gaat, leer je veel meer van dan ons steeds lastig vallen met dit soort super basis dingen.

Verwijderd

Topicstarter
"cijfers.p" 184 lines, 6824 characters
i1121434@orafem:~$ pc -s cijfers.p
Tue Jan 8 02:08:34 2002 cijfers.p:
58 END;
E 18490----------^--- Expected '.'

We zijn hier toch om elkaar te helpen? En ik heb al heel lang naar de fouten gezocht, maar kan niks vinden, ik krijg nog steeds bovenstaande foutmelding, maar ik kan niet ontdekken wat daar fout aan is :'(

  • Oviparous
  • Registratie: September 2000
  • Niet online
Ja we zijn hier om elkaar te helpen maar niet om elkaars huiswerkopdrachten te maken. Als je nog niet snapt waar die foutmelding vandaan komt snap je gewoon niet waar je huiswerk over gaat en moet je het boek maar's lezen. Zo moeilijk is het niet; als je gewoon de TP syntax (B A S I S) snapt haal je die met behulp van de regelnummers die je compiler genereert er zo uit.

Verwijderd

code:
1
2
IF mutcode = 1;
THEN BEGIN

moet ; weg, dus
code:
1
2
IF mutcode = 1 
THEN BEGIN

Zelfde voor mutcode = 2,3,4,5
[edit]
Oh, die had je volgens mij al, volgende fout: na een case moet je ook een end doen:
code:
1
2
3
4
5
6
CASE mutcode OF
  1: writeln(cijfers, idcode, leeftijd, cijfer, vak);
  2: BEGIN
     [..]
     END;
END; // <- Deze was je vergeten

Misschien een idee om geen tabs maar spaties te gebruiken :)

Verwijderd

Topicstarter
Op dinsdag 08 januari 2002 02:54 schreef DiFool het volgende:
code:
1
2
IF mutcode = 1;
THEN BEGIN

moet ; weg, dus
code:
1
2
IF mutcode = 1 
THEN BEGIN

Zelfde voor mutcode = 2,3,4,5
Die had ik al weggehaald, kijk maar een aantal posts hier boven :)

Verwijderd

Zie mijn edit :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:52
Ongeloofelijk. De compiler geeft al aan op welke regel de fout zit en wat hij verwacht, en nog kunnen jullie het niet. Te lui om zelf eens te zoeken zeker?

https://fgheysels.github.io/


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Compiler fouten moet je toch echt zelf op kunnen lossen
Pagina: 1

Dit topic is gesloten.