Está en la página 1de 5

LAB_51

SENENCIA CASE
5.1 SIMBOLO GRÁFICO.

NO
COND
1 2 3 ... 4

5.2 SINTAXIS GENERAL.


La sintaxis general que presenta esta sentencia de condición múltiple es:

CASE Condición OF
Alternativa 1 : Sentencia;
Alternativa 2, Alternativa 3 : Sentencia;
:
Alternativa n : Begin
Sentencia 1;
:
Sentencia n;
End
ELSE
Sentencia;
END;

5.3 EJEMPLOS DE CODIFICACIÓN.


EJEMPLO 1. Codificación de la sentencia CASE que no presenta la alternativa por NO.
CODIFICADO
NO
COND CASE COND OF
1 3 4 1 : A:=A+1;
3 : B:=B-1;
A=A+1 B=B-1 C=A*B
4 : C:=A*B;
END;

EJEMPLO 2. Codificado de una sentencia CASE que presenta una salida por NO y en sus
alternativas a ser ejecutadas se presentan varias alternativas con una respuesta
común.
CODIFICADO

NO
COND CASE mes OF
4 6 9 11 1 3 5 7 8,10,12 4,6,9,11 : WriteLn(’30 dias’);
1,3,5,7,8,10,12 : WriteLn(’31 dias’);
ELSE Begin
30 dias 31 dias . 28 o 29 dias WriteLn (‘28 o 29 dias’);
End;
End

EJEMPLO 3. Diagrama de flujo que muestra la manera de codificar una sentencia case en su forma
más general.

CODIFICADO
PROM=(PUNT1+PUNT2)/2
PROM := (PUNT1+PUNT2)/2;
CASE PROM OF
NO 90 .. 100 : Begin
COND CALIF:= ‘A’;
NOTA:=NOTA+1;
90..100 80..89 70..79 60..69
End
80 .. 89 : CALIF:= ‘B’;
CALIF='A' CALIF='C' CALIF='F' 70 .. 79 : CALIF := ‘C’;
60 .. 69 : CALIF := ‘D’;
CALIF='B' CALIF='D'
ELSE Begin
CALIF := ‘F’;
End;
End;
LAB_51
PROGRAM LAB_51;
USES
CRT;
TYPE
MATRIZ = ARRAY[1..10,1..10] OF INTEGER;
VAR
F,N,C,F1,CON,C1 : INTEGER;
W,R,E : INTEGER;
A : MATRIZ;
BEGIN
CLRSCR;
WRITELN(' UNIVERSIDAD TECNICA DE ORURO');
WRITELN(' FACULTAD NACIONAL DE INGENIERÖA');
WRITELN(' DEPARTAMENTO DE MATEMATICAS');
WRITELN;
WRITELN(' DIAGRAMA No 51');
WRITELN(' -------------------------');
WRITELN;
WRITELN(' DIMENSION DE TRABAJO : ');
WRITELN;
GOTOXY(42,8);READLN(N);
WRITELN;
W:=0;
CON:=0;
F:=0;
C:=N+1;
F1:=0;
C1:=N+1;
FOR E:=N DOWNTO 1 DO
BEGIN
CON:=CON+1;
FOR R:=1 TO E DO
BEGIN
CASE CON OF
1 : BEGIN
F:=F+1;
C:=C-1;
F1:=F1+1;
C1:=C1-1;
END;
2 : BEGIN
F1:=F1-1;
C1:=C1+1;
END;
3 : BEGIN
F:=F-1;
C:=C+1;
END;
END;
W:=W+1;
A[F,C1]:=W;
A[F1,C]:=W;
END;
IF CON=3 THEN BEGIN
CON:=0;
END;
END;
CON:= (80-N*5) DIV 2;
FOR F:=1 TO N DO
BEGIN
WRITE(' ':CON);
FOR C:=1 TO N DO
BEGIN
WRITE(A[F,C]:5);
END;
WRITELN;
END;
GOTOXY(3,24);WRITE('Presione ENTER para terminar');readln;
END.

También podría gustarte