Unidad II IP PDF
Unidad II IP PDF
Unidad II IP PDF
INTRODUCCION A LA
PROGRAMACION
Módulo II Algoritmos y Diseño de Algoritmos
A. Objetivo General
Manejar los tipos de Estructuras Algorítmica Secuenciales, Condicionales y
Cíclicas.
B. Objetivos Específicos:
- Determinar en qué caso usar una estructura secuencial, condicional o cíclica. -
Aplicar la sintaxis y reglas generales en los tipos de estructuras algorítmicas.
- Realizar algoritmos que impliquen el uso de estructuras secuenciales,
condicionales y repetitivas.
- Identificar las diferencias entre los distintos tipos de estructuras condicionales.
- Identificar las diferencias entre las distintas estructuras repetitivas o cíclicas.
- Utilizar el pseudocódigo como herramientas para el diseño de algoritmos.
1. ESTRUCTURA SECUENCIAL
La estructura algorítmica de control secuencial, ejecuta automáticamente una
instrucción después de la otra, en el orden en el cual se han escrito de inicio a fin. Las
tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así
sucesivamente hasta el fin del proceso.
Se representa de la siguiente forma:
EJEMPLOS
UTILIZANDO ESTRUCTURAS SECUENCIALES
EJERCICIOS DESARROLLADOS
UTILIZANDO ESTRUCTURAS SECUENCIALES
Paso 1 Inicio
Paso 2 entero num, resul
Paso 3 leer num
Paso 4 resul= num*3
Paso 5 imprimir “El resultado es:” resul
Paso 6 Fin
4. Dada la deuda de aporte, calcular la cantidad de años y meses que adeuda un socio en
concepto del mismo. Sabiendo que el aporte es de Gs. 10.000 mensual. Imprimir la
cantidad de años y la cantidad de meses. Nota: utilizar para el efecto la función
entera
Paso 1 Inicio
Paso 2 Real deudaaporte, meses, años, auxmes
Paso 3 Leer deudaaporte
Paso 4 auxmes=deudaaporte/10000
Paso 5 año=entera(auxmes/12)
Paso 6 mes=auxmes-(año*12)
Paso 7 imprimir “Cantidad de años”, años
Paso 8 imprimir “Cantidad de meses”, mes
Paso9 Fin
EJERCICIOS DESARROLLADOS
USO DEL OPERADOR RESTO (%)
1. ESTRUCTURA CONDICIONAL
La estructura algorítmica condicional o también conocida como estructura selectiva,
brinda la posibilidad de elegir distintos caminos en la ejecución de las acciones y
donde se puede establecer caminos alternativos para la ejecución.
Existen tres tipos básicos: las simples, las dobles y las múltiples.
1.1 SIMPLES:
Las estructuras condicionales simples se les conocen como “Tomas de decisión” Se
representa de la siguiente forma:
1.2 DOBLES
Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas
posibles en función del cumplimiento o no de una determinada condición.
1.3 MÚLTIPLES
Las estructuras de comparación múltiples, son tomas de decisión especializadas que
permiten comparar una variable contra distintos posibles resultados, ejecutando para
cada caso una serie de instrucciones específicas.
Se representa de la siguiente forma:
Si <condición a evaluar> entonces
Instrucción / es
sino
Si <condición a evaluar> entonces
Instrucción / es
Sino
…
… Varias condiciones
…
Fin si
EJEMPLOS
UTILIZANDO ESTRUCTURAS CONDICIONALES
Realizar un algoritmo en donde se pide la edad del usuario; si es mayor de edad debe
aparecer un mensaje indicándolo. Expresar el algoritmo en Pseudocódigo.
Paso 1 Inicio
Paso 2 entero edad
Paso 3 Imprimir “¿Cuál es tu edad?
Paso 4 leer edad
Paso 5 Si (edad>18) entonces
Paso 6 imprimir “ES MAYOR DE EDAD”
Paso 7 Fin si
Paso 8 Fin
En este ejemplo la condición está dada por un valor que ingresa el usuario. Si la
condición se cumple o es verdadera entonces se visualiza por pantalla el mensaje
“Es mayor de edad”
UTILIZANDO ESTRUCTURAS DOBLES
Se pide leer tres notas del alumno, calcular su nota final en un rango de 1-5 y enviar
un mensaje donde diga si el alumno aprobó o reprobó el curso. Teniendo en cuenta
que aprueba si su promedio es mayor a dos.
Expresar el algoritmo en Pseudocódigo.
Paso 1 Inicio
Paso 2 Real Nota1, Nota2, Nota3, Prom
Prof. Carolina Candia 8
Paso 3 Leer Nota1, Nota2, Nota3
Paso 4 Prom= (Nota1 + Nota2 + Nota3) /3
Paso 5 Si ( Prom >= 2) entonces
Paso 6 Imprimir “Aprobó el curso”
Paso 7 Sino
Paso 8 Imprimir “Reprobó el curso”
Paso 9 Fin Si
Paso 10 Fin
En este ejemplo la condición está dada por el resultado del cálculo previo del
promedio el cual se obtiene de las tres notas que ingresa el usuario. Si la condición se
cumple o es verdadera entonces se visualiza por pantalla el mensaje “Aprobó el
curso”, si la condición resultase falsa, esto es si el promedio es 1 o cero, o dicho de
otra manera menor a 2, entonces ingresa al sino e imprime el resultado “Reprobó el
curso”.
UTILIZANDO ESTRUCTURAS MÚLTIPLES
Paso 1 Inicio
Paso 2 Entero Día
Paso 3 Imprimir “Diga un número para escribir su día”
Paso 4 Leer Día
Paso 5 En-caso-de Día haga
Paso 6 Caso 1: Imprimir “Lunes”
Paso 7 Caso 2: Imprimir “Martes”
Paso 8 Caso 3: Imprimir “Miércoles”
Paso 9 Caso 4: Imprimir “Jueves”
Paso 10 Caso 5: Imprimir “Viernes”
Paso 11 Caso 6: Imprimir “Sábado”
Paso 12 Caso 7: Imprimir “Domingo”
Paso 13 SINO: Imprimir “Escribió un numero fuera del rango 1-7”
Paso 14 Fin-Caso
Paso 15 Fin
El siguiente ejemplo nos muestra el desarrollo de la estructura “En Caso De”, a través
de la estructura múltiple en donde el valor de una variable puede tener varios
resultados. Dependiendo del valor numérico ingresado en la variable día se imprimirá
el mensaje correspondiente.
EJERCICIOS DESARROLLADOS
UTILIZANDO ESTRUCTURAS CONDICIONALES / SELECTIVAS
1. Un hombre desea saber cuánto dinero se genera por concepto de intereses sobre la
cantidad que tiene invertida en una Cooperativa. El decidirá reinvertir los intereses
siempre y cuando estos excedan a $1.000, y en ese caso desea saber cuánto dinero
tendrá finalmente en su caja de ahorro.
4. Diseña un algoritmo que lea dos números y los imprima en forma ascendente
Inicio
Leer num1, num2
Si (num1 < num2) entonces Imprimir num1, num2
si no
Imprimir num2, num1 fin-si
Fin
Prof. Carolina Candia 11
5. Visualizar el nombre de un artículo, clave, precio original y su precio con descuento.
El descuento lo hace en base a la clave, si la clave es 01 el descuento es del 10% y si
la clave es 02 el descuento es del 20% (solo existen dos claves).
Inicio
Entero clave, prec_orig
Cadena nombre
Leer nombre, clave,
prec_orig Si clave = = 01
entonces
prec_desc = (prec_orig – (prec_orig *
0.10)) si no
prec_desc = (prec_orig – (prec_orig * 0.20))
fin-si
Imprimir nombre, clave, prec_orig, prec_desc
Fin
6. Calcular el total a pagar por la compra de discos externos. Si se compran tres o más
se aplica un descuento del 10% sobre el total de la compra y si son menos de tres
discos externos se aplica un descuento del 5%.
Inicio entero cant_de, precio real
tot_pag, tot_comp Leer
cant_de, precio tot_comp
= cant_de * precio Si
(cant_de > = 3) entonces
tot_pag = tot_comp – (tot_comp *
0.10) si no
tot_pag = tot_comp – (tot_comp * 0.05)
fin-si
Imprimir tot_pag
Fin
7. Leer 2 números; si son iguales que los multiplique, si el primero es mayor que el
segundo que los reste y si no que los sume.
Inicio
Leer num1, num2, num3, mayor
Si (num1 > num2) and (num1 > num3) entonces
mayor = num1
sino
Si (num2 > num1) and (num2 > num3) entonces
mayor =
num2 si no
mayor = num3
fin-si
fin-si
Imprimir mayor
Fin
9. Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas
extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden
de 40, el resto se consideran horas extras y que estas se pagan al doble de una hora
normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan las primeras
8 al doble de lo que se pagan las horas normales y el resto al triple.
10. Calcular el excedente que un socio recibe en el reparto anual de utilidades. Se calcula
el porcentaje dependiendo de la antigüedad como socio en la cooperativa, de acuerdo
con la sig. tabla:
Tiempo Utilidad
Menos de 1 año 5%
1 año o más y menos de 2 años 7%
2 años o más y menos de 5 años 10%
5 años o más y menos de 10 años 15%
10 años o más 20%
11. El IPS requiere clasificar a las personas que se jubilaran en el año de 2015. Existen
tres tipos de jubilaciones: por edad, por antigüedad joven y por antigüedad adulta. Las
personas vinculadas a la jubilación por edad deben tener 60 años o más y una
antigüedad en su empleo de menos de 25 años. Las personas vinculadas a la jubilación
por antigüedad joven deben tener menos de 60 años y una antigüedad en su empleo
de 25 años o más. Las personas vinculadas a la jubilación por antigüedad adulta deben
tener 60 años o más y una antigüedad en su empleo de 25 años o más.
Determinar en qué tipo de jubilación, quedara vinculadas una persona.
12. Desarrolle un algoritmo que le permita leer 2 valores A y B e indicar si uno de los dos
divide al otro exactamente
Inicio
Entero A, B
Leer A, B
Si (A residuo B= =0) entonces
Imprimir “B divide exactamente a A”
sino Si (B residuo A= =0) entonces
Imprimir “A divide exactamente a B”
sino
Imprimir “No se dividen exactamente”
fin-si
fin-si
Fin
13. Desarrolle un algoritmo que le permita leer dos valores A y B e indicar si el resultado
de dividir la suma de los dos números entre la resta del primer número con el segundo
es exacta.
Inicio
Entero A, B
Leer A, B
Si (A+B) mod (A-B)= =0 entonces
Imprimir “La división es exacta”
sino
Imprimir “La división es inexacta” fin-si
Fin
Valor Estación
1 Invierno
2 Verano
3 Otoño
4 Primavera
Inicio
Entero estación
Leer estación
Según sea (estación)
Caso 1: Imprimir “Invierno”
Caso 2: Imprimir “Verano”
Caso 3: Imprimir “Otoño”
Caso 4: Imprimir “Primavera”
En otro Caso
Imprimir “Estación errónea”
Fin
Módulo II - Unidad 3
ESTRUCTURAS REPETITIVAS / CÍCLICAS
Dónde:
V.C: Variable de control del ciclo
L.I: Límite inferior
L.S: Límite superior
3. HACER - MIENTRAS:
Esta es una estructura que repetirá un proceso durante “N” veces, donde “N” puede ser
fijo o variable. Para esto, la instrucción se vale de una condición que es la que debe
cumplir para que se siga ejecutando. Cuando la condición ya no se cumple, entonces ya
no se ejecuta el proceso.
Se representa de la siguiente forma:
Hacer mientras <condición>
Accion1
Accion2
.
.
AccionN
Fin-mientras
Repetir
Accion1
Accion2
.
.
AccionN
Hasta <condición>
• Los bucles son anidados cuando están dispuestos de tal modo que unos son interiores a
otros; los bucles son independientes cuando son externos unos a otros.
ITERACIÓN
• Cada repetición del bucle se llama iteración.
VALOR CENTINELA
• Es un valor especial usado para indicar el final de una lista de datos.
CONTADOR
• Es una variable auxiliar creada por el programador que se incrementa de un modo constante,
un numero finito de veces.
• El valor se incrementa o decrementa en una cantidad constante en cada repetición que se
produzca.
• Puede ser positivo a través del incremento o puede ser negativo a través del decremento.
ACUMULADOR
• Es una variable que acumula valores que a su vez son el producto de un proceso repetitivo y
finito de sumas sucesivas.
• Almacena una cantidad variable resultado de las operaciones sucesivas y repetidas.
• El incremento y el decremento es variable.
B. Contabilización o incremento.
Cada vez que aparece el evento a contar se ha de incrementar el contador en 1 si
se realiza cuenta natural o en Incremento si se realiza otro tipo de cuenta.
CONTADOR = CONTADOR + 1
7.2 USO DEL ACUMULADOR
Son objetos que se utilizan en un programa para acumular elementos sucesivos con
una misma operación. En general se utilizan para calcular sumas y productos, sin
descartar otros posibles tipos de acumulación.
Se utilizan realizando sobre ellos dos operaciones básicas: A.
Inicialización.
Todo acumulador necesita ser inicializado con el valor neutro de la operación que
va a acumular, que en el caso de la suma es 0 y en el del producto es 1.
SUMA = 0
PRODUCTO =1
B. Acumulación.
Cuando se debe acumular un elemento o valor como resultado de una lectura o un
cálculo, se efectúa la acumulación del mismo por medio de la asignación: SUMA
= SUMA + elemento
PRODUCTO = PRODUCTO * elemento
Inicio
Entero B=0, ME=0, X, C
Hacer Para C=1 hasta 10
Leer X
Si B=0
B=1
ME=X
Sino
Si X < ME
ME=X
Fin si
Fin si
Fin para
Imprimir Me
Fin
Inicio
entero sum, calif, c,
prom cadena nombre
sum = 0
Leer nombre
Hacer para c = 1 a
3 Leer calif
sum = sum +
calif Fin-para
prom = sum /3
Imprimir prom
Fin.
Inicio
entero cn = 0, cp = 0, cneg = 0, x, num
Hacer para x = 1 a 20
Leer num
Si num = 0 entonces
cn = cn + 1
si no
Si num > 0 entonces
cp = cp + 1
si no
cneg = cneg + 1
Fin-si
Fin-si
Fin-para
Imprimir cn, cp, cneg Fin.
Inicio
Entero contpos, num, cont=0
Mientras (cont<12) hacer
Leer num
Si (num>0) entonces
Contpos=contpos+1
Fin si
cont=cont+1 Fin
Mientras
Imprimir “La cantidad de números positivos es:”, contpos Fin
Inicio
Entero a, b, res
Imprimir “Ingreso dos números”
Leer a, b
Repetir
res=a mod b
a=b
b = res
Hasta res == 0
Imprimir “El MCD es:”, a
Fin
En donde:
num: Variable de entrada b: Bandera
may: Almacena el mayor
cont: Contador