Universidad de Costa Rica
|
|
IF
y WHILE
WHILE
,
REPEAT
, FOR
, DOWNTO
,
STEP
, BREAK
, etc.)
IF
y
WHILE
.
Sus programas de prueba no debe ser interactivo, y deben limitarse a emitir un mensaje de error cuando encuentran una falla. Recuerde que para cada caso de prueba usted debe definir tanto las Entradas como las Salidas esperadas [Mye78].
En sus programa usted codificará el ciclo y
verificará que la versión que usted ha programado,
usando únicamente las instrucciones IF
y
WHILE
, produce exactamente el resultado deseado, que
es el que usted debe haber definido previamente. Puede usar el
siguiente código para su elaborar su trabajo.
PROGRAM T2; TYPE TArray = ARRAY [-1..11] OF INTEGER; FUNCTION Iguales( {+} VAR A,B : TArray; {+} i,j : INTEGER ) : BOOLEAN; { RESULTADO Retrona TRUE si - i = j - A[] = B[] } VAR k : INTEGER; BEGIN IF i<>j THEN BEGIN Iguales := FALSE; EXIT; END FOR k := -1 TO 11 DO BEGIN IF A[k] <> B[k] THEN BEGIN Iguales := FALSE; EXIT; END; END; Iguales := TRUE; END; |
VAR A_while, A_repeat: TArray; i,j: INTEGER; BEGIN { T2 } { inicializa los dos vectores } FOR i := -1 TO 11 DO BEGIN A_repeat[i] := i; A_while [i] := i; END; { ciclo REPEAT: Rango[1..10] } i := 0; REPEAT A_repeat[i] := 2 * A_repeat[i]; INC(i); UNTIL i = 10; { ciclo WHILE-IF equivalente } j := 0; A_while[j] := 2 * A_while[j]; WHILE NOT (j = 10) DO BEGIN A_while[j] := 2 * A_while[j]; INC(j); END; IF NOT Iguales(A_repeat,A_while, i,j) THEN BEGIN WriteLn('Error: ...'); END; END. { T2 } |
|
[Mye78] | Myers, Glenford:
The Art of Software Testing,
John Wiley & Sons, 1978.
|
[Pra97] | Pratt, Terrence W.:
Lenguajes de Programación: Diseño e
implementación, 3ra edición,
Prentice-Hall Hispanoamericana, ISBN 9701700465,
1997.
|
Adolfo Di Mare <adolfo@di-mare.com>.
|