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>.
|
|
|