Ik wil een programma maken waarmee ik de hoofdsteden aan hun land kan koppelen en omgekeerd.
2 vraagjes:
1) Er zit een fout in de 2 keuzeoptie(hoofdsteden krijgen en land geven) maar ik vind deze niet, kan je mij hier mee helpen
2) Kan ik dit programma op een of andere manier kleiner maken en vereenvoudigen? Ik was al aan het denken om een type aan te maken of via een tabel te werken maar mijn ervaring gaat nog niet zo ver, graag hulp hiermee.
Dank bij voorbaat.
PROGRAM BENELUX;
USES CRT;
VAR
Keuze : integer;
DeHoofdstad,DeJuisteHoofdstad : String;
HetLand, HetJuisteLand : String;
PROCEDURE VraagKeuze;
BEGIN
WriteLn('Kies uit de volgende mogelijkheden:');
WriteLn('Druk 1 voor Benelux: Land: Gegeven ; Hoofdstad: Gevraagd');
WriteLn('Druk 2 voor Benelux: Land: Gevraagd ; Hoofdstad: Gegeven');
ReadLn(Keuze);
CLRSCR;
END;
PROCEDURE VraagBENELUXHoofdstad1(VAR Hoofdstad : STRING); // optie 1: Begin BENELUX land --> hoofdstad
BEGIN
WriteLn('Geef de hoofdstad van dit land.');
ReadLn(Hoofdstad);
END;
PROCEDURE ControleerBENELUXHoofdstad1( Hoofdstad, JuisteHoofdstad: STRING);
BEGIN
IF UPCASE(JuisteHoofdstad) = UPCASE(Hoofdstad) THEN
BEGIN
WriteLn('Je hebt het juist! Proficiat');
END
ELSE
WriteLn('Probeer opnieuw...');
END;
PROCEDURE ToonBENELUXLand1(VAR juisteHoofdstad: STRING);
VAR Teller: INTEGER;
BEGIN
FOR Teller := 1 To 3 Do
BEGIN
CASE Teller OF
1:
BEGIN
WriteLn('Het land is België');
JuisteHoofdstad := 'Brussel';
VraagBENELUXHoofdstad1(DeHoofdstad);
ControleerBENELUXHoofdstad1(DeHoofdstad, DeJuisteHoofdstad);
DELAY(1000);
CLRSCR;
END;
2:
BEGIN
WriteLn('Het land is Nederland');
JuisteHoofdstad := 'Amsterdam';
VraagBENELUXHoofdstad1(DeHoofdstad);
ControleerBENELUXHoofdstad1(DeHoofdstad, DeJuisteHoofdstad);
DELAY(1000);
CLRSCR;
END;
3:
BEGIN
WriteLn('Het land is Groothertogdom Luxemburg');
JuisteHoofdstad := 'Luxemburg';
VraagBENELUXHoofdstad1(DeHoofdstad);
ControleerBENELUXHoofdstad1(DeHoofdstad, DeJuisteHoofdstad);
DELAY(1000);
CLRSCR;
END;
END;
END;
END; // optie 1: Einde BENELUX land --> hoofdstad
PROCEDURE VraagBENELUXLand2(VAR Land : STRING); // optie 2: Begin BENELUX Hoofdstad --> Land
BEGIN
WriteLn('Geef het land dat bij deze hoofdstad hoort.');
ReadLn(Land);
END;
PROCEDURE ControleerBENELUXLand2( Land, JuisteLand: STRING);
BEGIN
IF UPCASE(JuisteLand) = UPCASE(Land) THEN
BEGIN
WriteLn('Je hebt het juist! Proficiat');
END
ELSE
WriteLn('Probeer opnieuw...');
END;
PROCEDURE ToonBENELUXHoofdstad2(VAR juisteLand: STRING);
VAR Teller: INTEGER;
BEGIN
FOR Teller := 1 To 3 Do
BEGIN
CASE Teller OF
1:
BEGIN
WriteLn('De hoofdstad is Brussel');
JuisteLand := 'België';
VraagBENELUXLand2(DeHoofdstad);
ControleerBENELUXLand2(HetLand, HetJuisteLand);
DELAY(1000);
CLRSCR;
END;
2:
BEGIN
WriteLn('De hoofdstad is Amsterdam');
JuisteLand := 'Nederland';
VraagBENELUXLand2(DeHoofdstad);
ControleerBENELUXLand2(HetLand, HetJuisteLand);
DELAY(1000);
CLRSCR;
END;
3:
BEGIN
WriteLn('De hoofdstad is Luxemburg');
JuisteLand := 'Groothertogdom Luxemburg';
VraagBENELUXLand2(DeHoofdstad);
ControleerBENELUXLand2(HetLand, HetJuisteLand);
DELAY(1000);
CLRSCR;
END;
END;
END;
END; // optie 2: Einde BENELUX Hoofdstad --> Land
PROCEDURE ControleerKeuze;
BEGIN
CASE Keuze OF
1:ToonBENELUXLand1(DeJuisteHoofdstad);
2:ToonBENELUXHoofdstad2 (HetJuisteLand);
END;
END;
BEGIN
VraagKeuze();
ControleerKeuze();
ReadLn();
END.
2 vraagjes:
1) Er zit een fout in de 2 keuzeoptie(hoofdsteden krijgen en land geven) maar ik vind deze niet, kan je mij hier mee helpen
2) Kan ik dit programma op een of andere manier kleiner maken en vereenvoudigen? Ik was al aan het denken om een type aan te maken of via een tabel te werken maar mijn ervaring gaat nog niet zo ver, graag hulp hiermee.
Dank bij voorbaat.
PROGRAM BENELUX;
USES CRT;
VAR
Keuze : integer;
DeHoofdstad,DeJuisteHoofdstad : String;
HetLand, HetJuisteLand : String;
PROCEDURE VraagKeuze;
BEGIN
WriteLn('Kies uit de volgende mogelijkheden:');
WriteLn('Druk 1 voor Benelux: Land: Gegeven ; Hoofdstad: Gevraagd');
WriteLn('Druk 2 voor Benelux: Land: Gevraagd ; Hoofdstad: Gegeven');
ReadLn(Keuze);
CLRSCR;
END;
PROCEDURE VraagBENELUXHoofdstad1(VAR Hoofdstad : STRING); // optie 1: Begin BENELUX land --> hoofdstad
BEGIN
WriteLn('Geef de hoofdstad van dit land.');
ReadLn(Hoofdstad);
END;
PROCEDURE ControleerBENELUXHoofdstad1( Hoofdstad, JuisteHoofdstad: STRING);
BEGIN
IF UPCASE(JuisteHoofdstad) = UPCASE(Hoofdstad) THEN
BEGIN
WriteLn('Je hebt het juist! Proficiat');
END
ELSE
WriteLn('Probeer opnieuw...');
END;
PROCEDURE ToonBENELUXLand1(VAR juisteHoofdstad: STRING);
VAR Teller: INTEGER;
BEGIN
FOR Teller := 1 To 3 Do
BEGIN
CASE Teller OF
1:
BEGIN
WriteLn('Het land is België');
JuisteHoofdstad := 'Brussel';
VraagBENELUXHoofdstad1(DeHoofdstad);
ControleerBENELUXHoofdstad1(DeHoofdstad, DeJuisteHoofdstad);
DELAY(1000);
CLRSCR;
END;
2:
BEGIN
WriteLn('Het land is Nederland');
JuisteHoofdstad := 'Amsterdam';
VraagBENELUXHoofdstad1(DeHoofdstad);
ControleerBENELUXHoofdstad1(DeHoofdstad, DeJuisteHoofdstad);
DELAY(1000);
CLRSCR;
END;
3:
BEGIN
WriteLn('Het land is Groothertogdom Luxemburg');
JuisteHoofdstad := 'Luxemburg';
VraagBENELUXHoofdstad1(DeHoofdstad);
ControleerBENELUXHoofdstad1(DeHoofdstad, DeJuisteHoofdstad);
DELAY(1000);
CLRSCR;
END;
END;
END;
END; // optie 1: Einde BENELUX land --> hoofdstad
PROCEDURE VraagBENELUXLand2(VAR Land : STRING); // optie 2: Begin BENELUX Hoofdstad --> Land
BEGIN
WriteLn('Geef het land dat bij deze hoofdstad hoort.');
ReadLn(Land);
END;
PROCEDURE ControleerBENELUXLand2( Land, JuisteLand: STRING);
BEGIN
IF UPCASE(JuisteLand) = UPCASE(Land) THEN
BEGIN
WriteLn('Je hebt het juist! Proficiat');
END
ELSE
WriteLn('Probeer opnieuw...');
END;
PROCEDURE ToonBENELUXHoofdstad2(VAR juisteLand: STRING);
VAR Teller: INTEGER;
BEGIN
FOR Teller := 1 To 3 Do
BEGIN
CASE Teller OF
1:
BEGIN
WriteLn('De hoofdstad is Brussel');
JuisteLand := 'België';
VraagBENELUXLand2(DeHoofdstad);
ControleerBENELUXLand2(HetLand, HetJuisteLand);
DELAY(1000);
CLRSCR;
END;
2:
BEGIN
WriteLn('De hoofdstad is Amsterdam');
JuisteLand := 'Nederland';
VraagBENELUXLand2(DeHoofdstad);
ControleerBENELUXLand2(HetLand, HetJuisteLand);
DELAY(1000);
CLRSCR;
END;
3:
BEGIN
WriteLn('De hoofdstad is Luxemburg');
JuisteLand := 'Groothertogdom Luxemburg';
VraagBENELUXLand2(DeHoofdstad);
ControleerBENELUXLand2(HetLand, HetJuisteLand);
DELAY(1000);
CLRSCR;
END;
END;
END;
END; // optie 2: Einde BENELUX Hoofdstad --> Land
PROCEDURE ControleerKeuze;
BEGIN
CASE Keuze OF
1:ToonBENELUXLand1(DeJuisteHoofdstad);
2:ToonBENELUXHoofdstad2 (HetJuisteLand);
END;
END;
BEGIN
VraagKeuze();
ControleerKeuze();
ReadLn();
END.