Está en la página 1de 24

ALGORITMIA Y PROGRAMACIÓN

Capítulo 3
Programación Estructurada

1
Contenido

 Primitivas para la construcción de algoritmos


 Estructuras de control selectivas
 Condicionales Si – Entonces
 Condicionales Si – Entonces – Sino
 Condicionales Dependiendo - De

2
Estructura de Control Condicional:
si

instrucción n
si <condición> entonces
falso
instrucción m verdadero

instrucción p

fin-si
instrucción q

3
Ejercicio

 Diseñar un algoritmo que calcule la definitiva de esta


asignatura (ver la sección evaluación en el programa
del curso).
 En el caso de que la asignatura no sea aprobada mostrar un
mensaje en pantalla.

4
Solución ejercicio
algoritmo Calculo_Nota
real: parcial1, parcial2, final, quiz, lab, prcntje_p1, prcntje_p2, prcntje_f, prcntje_q,
prcntje_l, nota_final,
caracteres: nombre
Inicio
escriba (“Ingrese el nombre del estudiante”)
leer (nombre)
escriba (“Digite las notas y sus respectivos porcentajes (en decimales)”)
leer (parcial1, parcial2, final, quiz, lab)
leer (prcntje_p1, prcntje_p2, prcntje_f, prcntje_q, prcntje_l)
nota_final  (parcial1*prcntje_p1)+(parcial2*prcntje_p2)+
(final* prcntje_f)+(quiz* prcntje_q)+(lab* prcntje_l)
escriba (“la nota de : ”, nombre, “es : ”, nota_final)
si nota_final < 2.95 entonces
escriba (“la asignatura no fue aprobada”)
fin-si
fin
5
Ejercicio en Clase

 Calcular la raíz cuadrada de un número cualquiera


ingresado por el usuario
 Podemos usar la función predefinida
 raiz_cuadrada
 Calcula la raíz cuadrada de un número no negativo
 Ejemplo: raiz_cuadrada(4)=2
 Pero … el usuario puede ingresar un número negativo.
 El algoritmo debe controlar ese caso

6
Ejercicio en Clase

Algoritmo Raiz_cuadrada
real: numero, raiz
inicio
escriba (“introduce un número”)
lea (numero)
si numero > 0 entonces
raiz  raiz_cuadrada(numero)
escribir (“la raiz cuadrada es:”)
escribir (raiz)
fin-si
fin

7
Ejercicio en Clase

 Diseñar el algoritmo que calcule la división de


dos números

8
Estructura de Control Condicional:
si

9
Estructura de Control Condicional:
si

instrucción m
si <condición> entonces
instrucción u

instrucción v
sino
instrucción w

instrucción x
fin-si
instrucción y

10
Estructura de Control Condicional:
si
… falso
instrucción m
si <condición> entonces

instrucción u verdadero

instrucción v
sino
instrucción w

instrucción x
fin-si

instrucción y

11
Ejercicio en clase

 Diseñar el algoritmo que calcule la división de


dos números. En caso de que el divisor sea
cero mostrar un mensaje de error.

12
División

Algoritmo Division
Real: d1, d2, resul
Inicio
Escriba (“Ingrese el dividendo y el divisor”)
Lea (d1, d2)
Si d2 ≠ 0 entonces
resul  d1 / d2
Escriba ( d1, “ / ”, d2, “ = ”, resul )
sino
Escriba (“No es posible división por cero”)
Fin-si
Fin
Fin-algoritmo

13
Ejercicio en clase

 Calcular el salario de una persona con base en


el número de horas trabajadas y el valor de la
hora. Si la persona trabaja más de 40 horas,
las horas extras deben pagarse con un
incremento del 50% sobre el valor de la hora
normal.
 Descomponer el problema

14
Ejercicio
Algoritmo Salario
real: hras_trabajo, tarifa, hras_extras, tarifa_extra, salario,
salario_extra, salario_base
inicio
lea (hras_trabajo, tarifa)
si hras_trabajo <= 40 entonces
salario_base  hras_trabajo * tarifa
salario_extra  0
sino
salario_base  40 * tarifa
tarifa_extra  tarifa +( 0.50 * tarifa ) // 1.5 * tarifa
hras_extras  hras_trabajo - 40
salario_extra  hras_extras * tarifa_extra
fin_si
salario  salario_base + salario_extra
escriba (salario_base, salario_extra, salario)
fin
Ejercicio en clase

 Cómo se debería modificar el anterior


algoritmo para controlar el ingreso de valores
negativos?

16
si anidados

si <condición> entonces
instrucción a … instrucción d
sino
si <condición> entonces
instrucción f … instrucción m
sino
instrucción p … instrucción r
fin-si
fin-si

17
Ejercicio en Clase

 Diseñar un algoritmo que calcule la nota final de


cualquier asignatura a partir de 5 notas parciales. El
algoritmo debe mostrar, además de la nota final, un
mensaje que indique el resultado:
 0 - 2.0 : Pésimo
 2.0 - 3.0 : Insuficiente
 3.0 - 3.5 : Aceptable
 3.5 - 4.0 : Bueno
 4.0 - 5.0 : Excelente

18
Solución ejercicio

algoritmo calculo_nota
real: nota1, nota2, nota3, nota4, nota5, prcntje1, prcntje2, prcntje3, prcntje4, prcntje5, nota_f
caracteres: nombre, mensaje
inicio
escriba (“ingrese el nombre del estudiante”)
lea (nombre)
escriba (“digite las notas y sus respectivos porcentajes (en decimales)”)
lea (nota1, nota2, nota3, nota4, nota5)
lea (prcntje1, prcntje2, prcntje3, prcntje4, prcntje5)
nota_f  (nota1*prcntje1) + (nota2*prcntje2) + (nota3* prcntje3) + (nota4* prcntje4) + (nota5* prcntje5)
si nota_f < 2 entonces
mensaje  “pésimo”
sino
si nota_f >= 2  nota_f < 3 entonces
mensaje  “insuficiente”
sino
si nota_f >= 3  nota_f < 4 entonces
mensaje  “aceptable”
sino
mensaje  “excelente”
fin-si
fin-si
fin-si
escriba (“la nota de : ”, nombre, “es : ”, nota_f, “el resultado fue ”, mensaje)
fin
Ejercicio en Clase

 Cómo se debería modificar el anterior


algoritmo para controlar el ingreso de valores
no válidos?
 Notas y/o porcentajes negativos
 Porcentajes igual a cero
 Porcentajes mayor que 1
 Notas mayores que 5

20
Ejercicio en Clase

 Diseñar un algoritmo que lea tres números y muestre


el mayor número.

 Diseñar un algoritmo que lea tres números y los


muestre ordenados
 Número Mayor
 Número Mediano
 Número Pequeño

21
Estructura de Control Condicional

 “Dependiendo-de” o “En-caso-de” o “Según-sea”


 Sintaxis
en-caso-de <expresión> haga
caso <opción 1>:
<instrucciones de la opción 1>
caso <opción 2>:
<instrucciones de la opción 2>
caso <opción 3>:
<instrucciones de la opción 3>

caso <opción N>:
<instrucciones de la opción N>
sino:
<instrucciones a realizar sino no se ha cumplido
NINGUNA de las condiciones anteriores>
fin-caso

22
Ejercicio en clase

 Dado un número entre 1 y 7 escriba su


correspondiente día de la semana así:
 1- Lunes
 2- Martes
 3- Miércoles
 4- Jueves
 5- Viernes
 6- Sábado
 7- Domingo

23
Ejercicio en Clase
algoritmo dia_semana
entero: dia
inicio
escriba (“diga un número para escribir su día”)
lea (dia)
en-caso-de dia haga
caso 1: escriba (“lunes”)
caso 2: escriba (“martes”)
caso 3: escriba (“miércoles”)
caso 4: escriba (“jueves”)
caso 5: escriba (“viernes”)
caso 6: escriba (“sábado”)
caso 7: escriba (“domingo”)
sino: escriba (“ingresó un número fuera del rango 1-7”)
fin-caso
fin
Fin algoritmo dia_semana

24

También podría gustarte