0% encontró este documento útil (0 votos)
37 vistas10 páginas

Estructuras de Control en Turbo Pascal

El documento describe diferentes estructuras de control de decisión en el lenguaje de programación Turbo Pascal. Explica la estructura de decisión simple (If-Then) que ejecuta una sentencia si la condición es verdadera. También describe la estructura de decisión doble (If-Then-Else) que ejecuta una de dos sentencias dependiendo de si la condición es verdadera o falsa. Finalmente, presenta las estructuras de decisión múltiple que incluyen sentencias If anidadas y la sentencia Case para elegir entre múltiples alternativ

Cargado por

javier arellano
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
37 vistas10 páginas

Estructuras de Control en Turbo Pascal

El documento describe diferentes estructuras de control de decisión en el lenguaje de programación Turbo Pascal. Explica la estructura de decisión simple (If-Then) que ejecuta una sentencia si la condición es verdadera. También describe la estructura de decisión doble (If-Then-Else) que ejecuta una de dos sentencias dependiendo de si la condición es verdadera o falsa. Finalmente, presenta las estructuras de decisión múltiple que incluyen sentencias If anidadas y la sentencia Case para elegir entre múltiples alternativ

Cargado por

javier arellano
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Pág.

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA


DE LA FUERZA ARMADA BOLIVARIANA
Ciclo Básico de Ingeniería – Diurno

Asignatura: Programación
Estructuras de Control Selectivas o Estructuras de Decisión en Turbo Pascal
Docentes: MSc. Javier A. Arellano G. Lcdo. José Wilmer Jaimes J.
Estructuras de Decisión en Turbo Pascal
Son estructuras de control condicional que permiten llevar a cabo una acción, si una condición (expresión
lógica) dada tiene un valor específico (verdadero o falso).
Estructura de Decisión Simple: (If – Then).
Se usan para representar estructuras en las que si la evaluación de la expresión lógica (condición) resulta ser
verdadera se ejecuta la sentencia o la serie de sentencias comprendidas entre BEGIN y END de la instrucción
IF – THEN, según sea el caso. Mientras que si el resultado de su evaluación es falso se continúa como si la
instrucción no hubiese existido.

Pseudocódigo Turbo Pascal Para el caso de


Si expresión lógica Entonces IF expresión lógica THEN sentencia
Sentencia 1; simple. Es
Sentencia1;
Sentencia 2; decir, una sola
: sentencia
Sentencia N; IF expresión lógica THEN
Fin de Si. BEGIN
Sentencia 1; Para el caso de
Sentencia 2; sentencias
: compuestas Es
Sentencia N decir, varias
END; sentencias
Nota: antes de un END se puede
colocar o no colocar el punto y
coma ( ;)

Diagrama de Flujo

Si
Condición

No

Sentencia (s)
Pág. 2

Ejemplo:
Pseudocódigo Turbo Pascal

Si edad ≥ 18 entonces IF edad ≥ 18 THEN


Imprimir (‘mayor de edad’) WRITE (‘mayor de edad’);
Fin de si

IF a >= b THEN
Si a ≥ b entonces BEGIN
c = a / b; c := a / b;
Imprimir (‘el valor de c es: ‘, c) WRITELN (‘el valor de c es: ‘, c)
Fin de si END;

Estructura de Decisión Doble: (If – Then – Else)


Permite elegir entre dos opciones o alternativas posibles, en función de que se cumpla o no la condición
expresada en el Si. Se usan para representar estructuras en las que si la evaluación de la expresión lógica
resulta ser verdadera se ejecuta la sentencia o serie de sentencias. Mientras que si el resultado de su
evaluación es falso se ejecuta otra sentencia o serie de sentencias.
Pseudocódigo Turbo Pascal
Para el caso de
Si expresión lógica Entonces IF expresión lógica THEN
sentencia simple.
Sentencia 1; Sentencia1 Es decir, una
Sentencia 2; ELSE
Sino sola sentencia
Sentencia2;
Sentencia 3;
Sentencia 4; IF expresión lógica THEN
Fin de Si. BEGIN
Sentencia 1;
Sentencia Para
2 el caso de
END sentencias
ELSE compuestas Es
BEGIN decir, varias
sentencias
Sentencia 3;
Sentencia 4
END;
Nota: antes de un ELSE jamas
se coloca punto y coma (;)

Diagrama de Flujo

Si
No
Condición

Sentencia (s) Sentencia (s)


Pág. 3

Ejemplo:

Pseudocódigo Turbo Pascal

Si edad ≥ 18 entonces IF edad >=18 THEN


Imprimir (‘mayor de edad’) WRITE (‘mayor de edad’)
Sino ELSE
Imprimir (‘menor de edad’) WRITE (‘Menor de edad’);
Fin de si

IF a >= b THEN
Si a ≥ b entonces BEGIN
c = a / b; c := a / b;
Imprimir (‘el valor de c es: ‘, c) WRITELN (‘el valor de c es: ‘, c)
Sino ELSE
c = b / a; c := b / a;
Imprimir (‘el valor de c es: ‘, c) WRITELN (‘el valor de c es: ‘, c)
Fin de si END;

ESTRUCTURAS DE DECISIÓN MÚLTIPLE: existen dos tipos de sentencias, las IF anidadas y las CASE
Sentencia IF Anidada:
Se usan para representar estructuras en las que si la evaluación de la expresión lógica resulta ser verdadera se
ejecuta una sentencia o serie de sentencias. Mientras que si el resultado de su evaluación es falso se evalúa
otra expresión lógica, si el resultado de esta última es verdadero se ejecuta otra sentencia o serie de
sentencias, si es falso se evalúa otra expresión y así sucesivamente.

Pseudocódigo Turbo Pascal

Si expresión lógica1 Entonces IF (expresión lógica 1) THEN


Sentencia1 sentencia1
Sino ELSE
Si expresión lógica2 Entonces IF (expresión lógica 2) THEN
Sentencia2 sentencia2
Sino ELSE
Si expresión lógicaN Entonces IF (expresión lógica N) THEN
SentenciaN Sentencia N
Sino ELSE
SentenciaN+1; Sentencia N + 1;
En caso de que las sentencias sean compuestas
(múltiples) se debe iniciar con un BEGIN y Finalizar
con un END.
Pág. 4

Ejemplo
Pseudocódigo Turbo Pascal

Si edad ≤ 2 entonces IF edad <= 2 THEN


Imprimir (‘LACTANTE’) WRITE (‘LACTANTE’)
Sino ELSE
Si edad > 2 o edad ≤ 12 entonces IF (edad > 2) and (edad <= 12) THEN
Imprimir (‘Niño o Niña’) WRITE (‘Niño o Niña’)
Sino ELSE
Si edad > 12 o edad ≤ 17 entonces IF (edad >12) and (edad <= 17) THEN
Imprimir (‘Adolescente’) WRITE(‘Adolescente’)
Sino ELSE
Si edad > 17 o edad ≤ 28 entonces IF (edad > 17) and (edad <= 28) THEN
Imprimir (‘Jóven’) WRITE (‘Jóven’)
Sino ELSE
Imprimir (‘Adulto’) WRITE(‘Adulto’);
Fin de si

SENTENCIA CASE:
Se usa para elegir entre diferentes alternativas. Permite elegir una sentencia entre varias alternativas según el
valor de una condición o expresión selector. Consiste en una expresión de selección y un conjunto de
sentencias precedidas de una lista de valores posibles de la expresión separados por comas, los valores
pueden ser constantes o subrangos.
Pág. 5

Pseudocódigo Turbo Pascal

case <selector> hacer case <selector> of


c11, c12 : sentencia 1; Lista constantes.1 : sentencia 1;
c21, c22 : sentencia 2; Lista constantes.2 : sentencia 2;
: :
cn: sentencia n; Lista constantes n: sentencian
sino Else
Sentencia x Sentencia x
fin; end;
En caso de que las sentencias sean
compuestas (múltiples) se debe iniciar con un
BEGIN y Finalizar con un END.

Donde:
• Lista de constantes es igual a uno o más posibles valores del selector separados por coma y pueden ser
constantes o un valor subrango: constante1..constante2.
• Cada sentencia puede ser simple o compuesta (recordar que las compuestas deben ir entre un begin y un
end).
• El selector es una expresión que debe ser de tipo ordinal (integer, char, bolean, subrango o enumerado). No
son válidos los tipo real, string, longint, word.
• Todas las constantes CASE deben ser únicas y de un tipo ordinal compatible con el tipo del selector.
• Cada sentencia excepto la última, debe ir seguida de ;
• La cláusula ELSE es opcional.

Reglas de funcionamiento:
1. La expresión selector se evalúa y se compara con las listas de constantes.
2. Si el valor resultante de la evaluación del selector se corresponde con alguno de la lista de constantes
1, se ejecutará la sentencia1 o el bloque de sentencias1 encerradas entre begín – end, en caso de
sentencias compuestas. Luego el control se pasa seguidamente a la primera sentencia a continuación
del END del CASE. Si el valor resultante de la evaluación del selector se corresponde con alguno de la
lista constantes 2, se ejecutará la sentencia2 (simples o compuestas) y así sucesivamente.
3. Si el valor resultante de la evaluación del selector no está comprendido en ninguna lista de constantes y
no existe la cláusula ELSE, no sucede nada y sigue el flujo del programa como si no hubiese existido el
CASE.
4. Si el valor resultante de la evaluación del selector no está comprendido en ninguna lista de constantes y
si existe la cláusula ELSE, se ejecuta(n) la(s) instrucciones a continuación de la cláusula ELSE.
Pág. 6

Diagrama de flujo Sentencia Case.

Ejemplo

Pseudocódigo Turbo Pascal

Escriba ('Indique número de producto:'); Write ('Indique número de producto:');


Leer (num_pro); Readln (num_pro);
Case num_pro hacer Case num_pro of
1: Escriba ('Helado Tinita'); 1: Write ('Helado Tinita');
2: Escriba ('Barquilla'); 2: Write ('Barquilla');
3: Escriba ('Barquilla Doble'); 3: Write ('Barquilla Doble');
4: Escriba ('Merengada Helado') 4: Write ('Merengada Helado')
sino Else
Escriba (‘Producto no existente’) Write (‘Producto no existente’)
fin; End;

Bibliografía
JOYANES, Luis. Programación en Turbo Pascal Versiones 5.5, 6.0 y 7.0 segunda edición, McGraw Hill, Mexico
1995.
JOYANES, Luis. Fundamentos de Programación tercera edición, McGraw Hill, España 2002.
Pág. 7

Desarrollar un algoritmo que permita calcular El área de un triángulo a partir del valor de la base y la altura;
si uno o ambos valores son negativos o cero no se debe realizar el cálculo.
Pseudocódigo Turbo Pascal
Inicio program area;
Def var uses crt;
b, h al: real; var
Escriba ('Indique el valor de la base: '); b,h,a:real;
Leer (b); begin
Escriba ('Indique el valor de la altura: '); write('Indique el valor de la base: ');
Leer (h); readln(b);
Si (b > 0) and (h > 0) entonces write('Indique el valor de la altura: ');
a:= b * h/2 readln(h);
Escriba ('El valor del área del triángulo es: ', a:2:2); if (b > 0) and (h > 0) then
Sino begin
Escriba ('No se puede calcular el área'); a:= b * h/2;
Fin Si. writeln('El valor del área del triángulo es: ', a:2:2)
Fin. end
else
writeln('No se puede calcular el área');
end.

Desarrollar un algoritmo que permita saber la cantidad de M 3 de concreto que se necesitan para vaciar una vía,
sabiendo que si la vía tiene una pendiente igual o superior al 20% el espesor de la capa de concreto es de 15
cm y si la pendiente es inferior el espesor de la capa de concreto es de 12 cm, como salida debe presentar los
datos de la vía (nombre y pendiente) y la cantidad de concreto necesaria.

Pseudocódigo Turbo Pascal

Inicio. program area;


Def. var. uses crt;
var
Nombre: string;
Nombre: string;
av, lv, pend, ccv: real;
av, lv, pend, ccv: real;
Escriba (‘Indique nombre de vía:’); Begin
Leer (Nombre); write('Indique nombre de vía:');
Escriba (‘Indique ancho de la vía en metros:’); readln(Nombre);
Leer (av); write ('Indique ancho de la vía en metros:');
Escriba (‘Indique largo de la vía en metros:’); readln(av);
Leer (lv); write ('Indique largo de la vía en metros:');
readln(lv);
Escriba (‘Indique pendiente de la vía:’);
write('Indique pendiente de la vía:');
Leer (pend);
readln(pend);
Si pend >= 20 entonces if (pend >= 20) then
ccv:= (av*lv*15/100) ccv:= (av*lv*15/100)
De lo contrario else
ccv:= (av*lv*12/100) ccv:= (av*lv*12/100);
Escriba (‘Vía:’, nombre, ‘ pendiente:’, pend, ‘%'); writeln('Vía:', nombre, ' pendiente:', pend:2:2, '%');
Escriba (Cantidad de concreto necesaria:', ccv, writeln('Cantidad de concreto necesaria:', ccv:3:2,
'metros cúbicos'); 'metros cúbicos');
end.
fin.
Pág. 8

La UNEFA para premiar a los deportistas que participaron en los JUVINES, ha implantado la siguiente política
para aumentar la puntuación en las materias que cursa el atleta: si ganó medalla de bronce aumenta un (01)
punto en las materias del semestre, si ganó medalla de plata aumenta dos (02) puntos en cada materia y si
ganó medalla de oro aumenta tres (03) puntos en cada materia, si el estudiante tiene 50 o más unidades de
crédito aprobadas y ganó medalla de oro obtiene una beca. Diseñe un algoritmo que capture los datos de
entrada que considere necesarios, y muestre pon pantalla el nombre del estudiante, la medalla de mayor valor
obtenida y la puntuación que se va aumentar en las materias que cursa y si obtuvo la beca.

Pseudocódigo

Inicio
Def. Var.
Nombre: string;
uca,tipo_m:integer;
Escriba (‘Indique Nombre del Estudiante’);
Leer (Nombre);
Escriba (‘Cantidad de Unidades Crédito aprobadas’);
Leer (uca);
Escriba (‘Indique Tipo de Medalla obtenida: 1: oro, 2: plata, 3: Bronce’);
Leer (tipo_m);
Si (tipo_m < 1) or (tipo_m > 3) entonces
Escriba (‘Tipo de medalla no valido’);
sino
Si (tipo_m = 3) entonces
Escriba ('Estudiante:', nombre, ' Medalla de Broce: obtuvo un (01) punto en cada materia que cursa');
sino
Si (tipo_m = 2) entonces
Escriba ('Estudiante:', nombre, 'Medalla de Plata: obtuvo dos (02) puntos en cada materia');
sino
Si (uca >= 50) entonces
Escriba ('Estudiante:', nombre, 'Medalla de Oro: obtuvo tres (03) puntos en cada materia');
Escriba ('Unidades crédito aprobadas:', uca, 'Obtuvo Beca');
Sino
Escriba ('Estudiante:', nombre, 'Medalla de Oro:obtuvo tres (03) puntos en cada materia');
Escriba ('Unidades crédito aprobadas:', uca, ' No obtuvo Beca');
Fin Si
Fin Si ;
Fin si;
fin si.
Fin.
Pág. 9

Turbo Pascal

program deci03;
uses crt;
var
Nombre:string;
uca,tipo_m:integer;
begin
write ('Indique Nombre del Estudiante');
readln (Nombre);
write ('Cantidad de Unidades Crédito aprobadas');
readln(uca);
write ('Indique Tipo de Medalla obtenida: 1: oro, 2: plata, 3: Bronce');
readln(tipo_m);
if (tipo_m < 1) or (tipo_m > 3) then
begin
writeln ('Tipo de medalla no valido')
end
else
begin
if (tipo_m = 3) then
begin
writeln('Estudiante:', nombre, 'Medalla de Broce: obtuvo un (01) punto en cada materia');
end
else
if (tipo_m = 2) then
begin
writeln ('Estudiante:', nombre, 'Medalla de Plata: obtuvo dos (02) puntos en cada materia');
end
else
if (uca >= 50) then
begin
writeln ('Estudiante:', nombre, 'Medalla de Oro: obtuvo tres (03) puntos en cada materia');
writeln ('Unidades crédito aprobadas:', uca, 'Obtuvo Beca');
end
else
begin
writeln ('Estudiante:', nombre, 'Medalla de Oro:obtuvo tres (03) puntos en cada materia');
writeln ('Unidades crédito aprobadas:', uca, 'No obtuvo Beca');
end;
end;
end.
Pág. 10

Desarrolle un algoritmo que permita transformar una cantidad dada en metros a 1: kilómetros, 2: millas, 3:
centímetros, 4: pulgadas y 5: pies, utilice la sentencia case.

Pseudocódigo

Inicio
Def Var.
cant, cant1: real,
opc: integer;
Escriba ('Indique cantidad (en metros) a transformar');
Leer (cant);
Escriba ('Indique a que unidad desea trasformarla')
Escriba ('1: kilómetros, 2: millas, 3: centímetros, 4: pulgadas, 5: pies');
leer (opc);
Case opc of
1: cant1:= cant/1000; Escriba ( cant1, 'kilómetros');
2: cant1:= cant/1609; Escriba ( cant1, 'millas');
3: cant1:= cant*100; Escriba ( cant1, 'centímetros');
4: cant1:= cant*39,37; Escriba ( cant1, 'pulgadas');
5: cant1:= cant*3,28; Escriba ( cant1, 'pies');
sino
Escriba ('Opción no valida’)
fin;
Fin.

Turbo Pascal

program sentcase;
uses crt;
Var
cant, cant1: real;
opc: integer;
begin
write ('Indique cantidad (en metros) a transformar');
readln (cant);
writeln ('Indique a que unidad desea trasformarla');
write ('1: kilómetros, 2: millas, 3: centímetros, 4: pulgadas, 5: pies');
readln (opc);
Case opc of
1: begin
cant1:= cant/1000; write ( cant1:2:3,' ','kilómetros');
end;
2: begin
cant1:= cant/1609; write ( cant1:2:2, 'millas');
end;
3: begin
cant1:= cant*100; write ( cant1:2:2, 'centimetros');
end;
4: begin
cant1:= cant*39.37; write ( cant1:2:2, 'pulgadas');
end;
5: begin
cant1:= cant*3.28; write ( cant1:2:2, 'pies');
end;
else
write ('opcion no valida')
end;
end.

También podría gustarte