000
23.11.2010, 14:16 Uhr
Hallo
|
Welche Lösungen sind richtig? Danke für eure Unterstützung. Welche Knotenfolgen des Kontrollflußgraphen bilden eine vollständige Anweisungsüberdeckung für die Funktion Mult? (Bei Alternative B ist gemeint, ob beide Knotenfolgen zusammen eine vollständige Anweisungsüberdeckung ergeben.) Folgende Funktion multipliziert zwei positive, ganze Zahlen ohne Benutzung der vordefinierten Operation *:
type tNatZahlPlus = 1..maxint;
function Mult (Faktor1, Faktor2 : tNatZahlPlus) : tNatZahlPlus; { multipliziert Faktor1 mit Faktor2 } var i, Produkt : tNatZahlPlus;
begin Produkt := Faktor1; i := Faktor2; while i>1 do begin Produkt := Produkt + Faktor1; i := i-1 end; { while } Mult := Produkt end; { Mult }
Wir geben zusätzlich den kompakten Kontrollflußgraphen zu Mult an:
A
(nstart , ninit , nwhile , ntail , nfinal)
B
(nstart , ninit , nwhile , ntail , nfinal),
(nstart , ninit , nwhile , ndo ,nwhile , ntail , nfinal)
C
(nstart , ninit , nwhile , ndo ,nwhile , ntail , nfinal)
D
(nstart , ninit , nwhile , ndo ,nwhile , ndo ,nwhile ,ntail , nfinal)
E
keine der Auswahlmöglichkeiten ist richtig. |