Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Laboratorio 21
Laboratorio 21
.
SI NO
COND
NO SI
A<>5
IF A<>5 THEN Begin
A=A+1
A:=A+1;
B = 5*A B:=5*A;
End;
A, B WriteLn (A, B);
EJEMPLO 2. Diagrama que presenta la forma de codificar una sentencia de toma de decisión que
presenta sentencias por ambas salidas, por si y por no.
CODIFICADO
NO SI
IF A>10 THEN Begin
A>10 A:=A+1;
A, C
A=A+1 B:=5*A;
End
B = 5*A
ELSE Begin
WriteLn (A, C);
C=C+1
End;
C:=C+1;
EJEMPLO 3. Diagrama de flujo que muestra la manera de codificar una toma de decisión que
presenta otra o otras sentencias de toma de decisión.
CODIFICADO
SI NO
IF A<>10 THEN Begin
A<>10 A:=A+2;
A=A+1 B:=B-1;
End
A=A+2
ELSE Begin
NO SI
B>5 A:=A+1;
B=B-1 IF B>5 THEN
B=B+1
ELSE Begin
B:=B+1;
End;
A, B End;
WriteLn (A, B)
PROBLEMA PLANTEADO
Diseñar un programa interactivo el cual presente un menú con 5 opciones de figuras geométricas:
círculo, rectángulo, triángulo, trapecio y sector. Una vez seleccionada la opción correspondiente, se
debe introducir por teclado la información necesaria para realizar el cálculo del área de la respectiva
figura. Para una mejor manipulación de la información, el programa debe presentar la siguiente
pantalla de trabajo:
PANTALLA DE ENTRADA PANTALLA DE SALIDA
INICIO @
PANTALLA NO SI
DE ENTRADA OPC<>X
SI
OPC OPC='1' D = PI*R*R F = 'A=PI*R*R'
SE PRESIONÓ
SALIR
OPC = UPCASE(OPC) NO
C = 'CIRCULO'
SI
& OPC='2' D = B*H F = 'A=B*H'
NO OPC IN
['1','2','3','4','5','X'] NO
C = 'RECTANGULO'
SI
SI OPC='3' D = B*H/2 F = 'A=B*H/2'
SI NO
OPC='1' C = 'TRIANGULO'
R
NO SI
OPC='4' D = (A+B)*H/2 F = 'A=(A+B)*H/2'
SI NO
LA OPCIÓN OPC='2' C = 'TRAPECIO'
ELEGIDA
B, H
NO EXISTE NO D = R*A/2
SI F = 'A=R*A/2'
OPC='3'
B, H
NO C = 'SECTOR'
3
SI
OPC='4'
A, B, H
NO
SI PANTALLA
OPC='5'
R, A DE SALIDA
NO
& C, F, D
FIN
@
CODIFICADO DEL DIAGRAMA
PROGRAM LAB_21;
USES
CRT;
VAR
OPC : Char;
A,B,H,R,D : Real;
F,C : String;
BEGIN
Clrscr;
WriteLn(' Universidad Técnica de Oruro');
WriteLn(' Facultad Nacional de Ingeniería');
WriteLn(' Departamento de Matemáticas');
WriteLn;
WriteLn(' DIAGRAMA No 21');
WriteLn;
WriteLn(' MENU');
WriteLn(' +-------------------------------+');
WriteLn(' | Círculo 1 |');
WriteLn(' | Rectángulo 2 |');
WriteLn(' | Triángulo 3 |');
WriteLn(' | Trapecio 4 |');
WriteLn(' | Sector 5 |');
WriteLn(' | |');
WriteLn(' | Salir X |');
WriteLn(' +------------------------------+');
WriteLn(' Opción de Cálculo ?');
GotoXY(43,17);ReadLn(OPC);
OPC:=UPCASE(OPC);
IF OPC IN ['1','2','3','4','5','X'] THEN
BEGIN
WRITELN;
WRITELN(' DATOS REQUERIDOS');
WRITELN(' -------------------------------');
IF OPC='1' THEN
BEGIN
GOTOXY(29,21);WRITE('RADIO = ');
READLN(R);
END
ELSE BEGIN
IF OPC='2' THEN
BEGIN
GOTOXY(29,21);WRITE('BASE = ');
READLN(B);
GOTOXY(29,22);WRITE('ALTURA = ');
READLN(H);
END
ELSE BEGIN
IF OPC='3' THEN
BEGIN
GOTOXY(29,21);WRITE('BASE = ');
READLN(B);
GOTOXY(29,22);WRITE('ALTURA = ');
READLN(H);
END
ELSE BEGIN
IF OPC='4' THEN
BEGIN
GOTOXY(29,21);WRITE('BASE SUPERIOR = ');
READLN(A);
GOTOXY(29,22);WRITE('BASE INFERIOR = ');
READLN(B);
GOTOXY(29,23);WRITE('ALTURA = ');
READLN(H);
END
ELSE BEGIN
IF OPC='5' THEN
BEGIN
GOTOXY(29,21);WRITE('RADIO = ');
READLN(R);
GOTOXY(29,22);WRITE('ANGULO = ');
READLN(A);
END;
END
END
END
END;
IF OPC<>'X' THEN
BEGIN
IF OPC='1' THEN BEGIN
D:=PI*R*r;
F:='A=pi*R*R';
C:='CIRCULO';
END
ELSE BEGIN
IF OPC='2' THEN BEGIN
D:=B*H;
F:='A=B*H';
C:='RECTANGULO';
END
ELSE BEGIN
IF OPC='3' THEN BEGIN
D:=B*H/2;
F:='A=B*H/2';
C:='TRIANGULO';
END
ELSE BEGIN
IF OPC='4' THEN BEGIN
D:=(A+B)*H/2;
F:='A=(A+B)*H/2';
C:='TRAPECIO';
END
ELSE BEGIN
D:=R*A/2;
F:='A=R*A/2';
C:='SECTOR';
END;
END
END
END;
Clrscr;
WriteLn(' Universidad Técnica de Oruro');
WriteLn(' Facultad Nacional de Ingeniería');
WriteLn(' Departamento de Matemáticas');
WriteLn;
WriteLn(' DIAGRAMA No 21');
WriteLn;
WRITELN(' RESULTADOS');
WRITELN(' +--------------------------------------+');
WRITELN(' | FIGURA = |');
WRITELN(' | FORMULA = |');
WRITELN(' | AREA = |');
WRITELN(' +--------------------------------------+');
GOTOXY(35,9);WRITELN(C);
GOTOXY(35,10);WRITELN(F);
GOTOXY(35,11);WRITELN(D:5:3);
END
ELSE BEGIN
GOTOXY(25,19);WRITELN('SE PRESIONO SALIR');
END
END
ELSE BEGIN
GOTOXY(20,19);WRITELN('LA OPCION ELEGIDA NO EXISTE');
END;
GOTOXY(1,24);WRITE('Presione ENTER para terminar');READLN;
END.