Informatica: Ontwerp en implementatie: SO2 - 1 - Implementatie met Pascal 4
Meerkeuzevraag. Slechts één antwoord is volledig juist.
Kies het juiste antwoord uit volgende reeks:
Een type is NIET gekarakteriseerd door
een naam die het type identificeert.
een domein.
de toegelaten operaties op de waarden.
de formele en actuele parameters.
Welke uitspraak is VALS?
Een waardeparameter is een lokaal object binnen een deelprobleem.
De parameter die in een declaratie wordt vermeld heet de actuele parameter.
Een deelprobleem dat een actie tot gevolg heeft, wordt geïmplementeerd als een procedure.
In Turbo Pascal bestaan er parameterloze procedures. !
Welke uitspraak is VALS?
Bij het oproepen van een procedure vermeld men de actuele parameters.
Een referentie-parameter bevat het adres van een variabele en komt soms veranderd terug naar buiten uit het opgeroepen deelprobleem.
Een deelprobleem dat een waarde oplevert, wordt bij voorkeur geïmplementeerd als een functie.
ClrEOL is een parameterloze functie.
Bij GotoXY(25,12) hebben we:
2 formele waarde-parameters.
2 actuele waarde-parameters.
2 formele referentie-parameters.
2 actuele referentie-parameters.
Declaratie van een procedure: PROCEDURE SchrijfExamenUitslag ( score: INTEGER ) ; CONST slaagScore = 60 ; BEGIN IF score > = slaagScore THEN BEGIN WriteLn ( 'Yes' ) ; END ELSE BEGIN WriteLn ( 'No' ) ; END ; { IF } END ; { SchrijfExamenUitslag }
Wat gebeurt er door volgende oproep: SchrijfExamenUitslag (55);
Er komt niets op het scherm.
55 < 60
Er komt op het scherm 'Yes'.
Er komt op het scherm 'No'.
PROCEDURE Verwissel ( VAR eenGetal, nogEenGetal : REAL ) ; VAR hulpwaarde: REAL ; BEGIN hulpwaarde := eenGetal ; eenGetal := nogEenGetal ; nogEenGetal := hulpwaarde ; END ; { Verwissel } Oproep van deze procedure: lengte := 0 ; hoogte := 4 ; Verwissel ( lengte , hoogte ) ; Wat is VERKEERD?
Resultaat: lengte is nu 4 en hoogte 0
Hier zijn 2 referentie-parameters
hulpwaarde is een lokale variabele in de procedure Verwissel.
De actuele parameters zijn eenGetal en nogEenGetal.
PROCEDURE SecondenNaarHMS ( tijd : INTEGER ; VAR uur, min, sec : INTEGER ) ; BEGIN uur := tijd DIV 3600 ; tijd := tijd MOD 3600 ; min := tijd DIV 60 ; sec := tijd MOD 60 ; END ; { SecondenNaarHMS }
Wat is het resultaat van volgende opdrachten? SecondenNaarHMS (8000, h, min, s); WriteLn(h,' u. ',min,' min ',s,' s ');
Op het scherm komt: 2 u. 13 min 20 s
Het programma toont een RUNtime-ERROR: fout tijdens het uitvoeren van het programma.
Op het scherm komt 8000, h, min, s en daarna 2 u. 13 min 20 s
Op het scherm komt 8000 s 2 u. 13 min 20 s
Gegeven: FUNCTION Grootste(x,y:REAL):REAL ; BEGIN IF x > y THEN BEGIN Grootste:= x ; END ELSE BEGIN Grootste:= y ; END ; { IF } END ; { Grootste }
Wat is VERKEERD?
Dit is een functie waarvan het resultaat een kommagetal is.
Dit is een functie met 2 formele waarde-parameters.
Volgende opdracht is een geldige oproep van de functie: WriteLn ( 'Het grootste getal is: ' , Grootste ( -2, 3 ) ) ;
Volgende opdracht bevatten een geldige oproep van de functie: getal1:= 10 ;getal2:= 2 ; Grootste(getal1,getal2) ;
Gegeven: FUNCTION Bevestigd(prompt:Stringtype):BOOLEAN; VAR teken:CHAR; BEGIN Write(prompt); REPEAT Read(KBD,teken); teken:=UpCase(teken); UNTIL (teken='J')OR(teken='N'); Bevestigd:=teken='J'; END ; { Bevestigd } Oproep: bv.: ok:=Bevestigd('Kloppen deze gegevens? Tik J of N: ');
Welke waarde zit er door deze oproep in de variabele ok als je J intikt?
TRUE
FALSE
'J'
'N'
Welke kenmerk heeft een goed deelprobleem NIET?
doet meerdere jobs correct en efficiënt
heeft een verduidelijkende naam
heeft zo weinig mogelijk parameters
is zo algemeen mogelijk
Bij een goed programma werken we nooit met
lokale objecten
referentie-parameters
waarde-parameters
globale objecten
Welke uitspraak is VALS?
De naam van een procedure maak je best door een samenstelling te maken van een werkwoord en een zelfstandig naamwoord en dit in de gebiedende wijs te zetten.
Een dunne interface betekent dat er zo weinig mogelijk parameters worden doorgegeven.
De duidelijke naam van een deelprobleem moet zorgen voor het verhogen van de leesbaarheid van de code.
Een functie heeft automatisch een dunne interface.
Stel even dat onderstaande declaratie gegeven is: SchrijfTekens(eerste,laatste:CHAR); Welke van onderstaande oproepen (invocaties) is juist?
SchrijfTekens ( 'a', '.' ) ;
SchrijfTekens ( '3', 'Z', 'N' ) ;
SchrijfTekens ( 4, 5 ) ;
SchrijfTekens ( '-2', CHR(65) ) ;
Welk deelprobleem implementeer je NIET als een functie?
het vermenigvuldigen van een snelheid met een afgelegde weg.
het verschil zoeken tussen 2 getalwaarden.
het afdrukken van een tekst.
het bepalen van het omgekeerde van een zin.
PROCEDURE TelAf; VAR teller: INTEGER; BEGIN ClrScr; FOR teller:=5 DOWNTO 0 DO BEGIN Write(teller:5); Delay(500); {Wacht 500/1000 seconde} END; {FOR} END; {Aftellen}
Hoeveel parameters zie je in bovenstaande procedure TelAf?