U2 Intro Programación
U2 Intro Programación
Algoritmos
Guía de Conceptos
Unidad II
Introducción a la Programación – Unidad II
Table of Contents
Estructura Secuencial .................................................................................................................................... 2
→ Ejemplos utilizando Estructurados Secuenciales ............................................................................... 2
→ Ejercicios desarrollados utilizando Estructuras Secuenciales ............................................................ 3
→ Ejercicios desarrollados – Uso del Operador Resto (%) ..................................................................... 4
Estructura Condicional .................................................................................................................................. 5
→ Simples .............................................................................................................................................. 5
→ Dobles ............................................................................................................................................... 5
→ Múltiples ........................................................................................................................................... 6
→ Múltiples (En caso de) ....................................................................................................................... 6
¿Qué debemos de considerar para utilizar este tipo de estructuras? .................................................. 7
Ejemplo práctico – utilizando estructuras condicionales .......................................................................... 7
Ejemplo práctico – utilizando estructuras dobles ...................................................................................... 8
Ejemplo práctico – utilizando Estructuras Múltiples ................................................................................. 8
Ejemplo práctico – utilizando Estructuras Múltiples (En Caso De) ............................................................ 9
Ejercicio práctico – utilizando Estructuras Condicionales/Selectivas....................................................... 10
Estructuras Repetitivas o Cíclicas ................................................................................................................ 16
1. Ciclos con un número determinado de iteraciones (Hacer-Para) .................................................... 16
→ Hacer Para – Desde Hasta: .......................................................................................................... 16
2. Ciclos con un número indeterminado de iteraciones (Hacer-Mientras, Repetir-Hasta) .................. 17
→ Hacer-Mientras ........................................................................................................................... 17
→ Funcionamiento – Estructura Mientras ...................................................................................... 18
→ Función Repetir-Hasta................................................................................................................. 18
Diferencia entre la Estructura Repetir y Mientras ................................................................................... 19
Métodos para la terminación de bucles con datos de entrada ............................................................... 19
Definiciones de ........................................................................................................................................ 19
→ Uso del Contador ........................................................................................................................ 20
→ Uso del acumulador .................................................................................................................... 20
Bandera o Señal (Switch) ......................................................................................................................... 21
Ejemplo práctico – utilizando Bandera o señal ........................................................................................ 21
Ejercicio práctico – utilizando Estructuras cíclicas-Hacer Para ................................................................ 22
Ejercicio práctico – utilizando Estructuras cíclicas – Hacer Mientras ...................................................... 24
Ejercicio práctico – utilizando estructuradas cíclicas – Uso de Banderas ................................................ 26
Bibliografía .................................................................................................................................................. 28
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:
• Análisis: El algoritmo pide que el usuario ingrese dos valores, luego el programa realiza
el proceso de suma e imprime el resultado.
• Datos de Entrada: numero 1 y numero 2 (n1, n2).
• Datos de Salida: Suma.
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
Paso 1 Inicio
Paso 2 entero base, altura, área
Paso 3 Imprimir “Ingrese la base”
Paso 4 Leer base
Paso 5 Imprimir “ Ingrese la altura”
Paso 6 Leer altura
Paso 7 área=(base*altura)/2
Paso 8 imprimir “El área del triángulo es:”, área
Paso9 Fin
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.
→ Simples
Las estructuras condicionales simples se les conocen como “Tomas de decisión” Se
representa de la siguiente forma:
→ 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. Se representa
de la siguiente forma:
→ 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:
También es posible que a la hora de especificar la ejecución de una acción haya que
escoger entre varias acciones dependiendo del valor de una determinada variable (o
indicador). Se representa de la siguiente forma:
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”
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”.
Paso 14 Fin
En este ejemplo se muestra el uso de una condicional múltiple en donde se pueden identificar
tres condiciones. Si la primera condición se cumple (peso <=60) entonces visualiza por pantalla
el mensaje correspondiente, sino se cumple o resulta falsa entonces evalúa la segunda condición
(peso <=80) si es verdadera, visualiza por pantalla el mensaje correspondiente y si esta condición
volviese a evaluar falsa entonces evalúa la última condición e imprime el mensaje
correspondiente.
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.
Inicio
entero p_int, cap, int, capf
Leer p_int, cap
int = cap * p_int
si (int > 1000) entonces
capf = cap + int
fin-si
Imprimir capf
Fin
Inicio
Entero ht, ss, he
Leer ht
Si (ht > 40) entonces
he = ht - 40
ss = he * 20 + 40 * 16
si no
ss = ht * 16
fin-si
Imprimir ss
Fin
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
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
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
Entero num1, num2, resul
Leer num1, num2
Si (num1 = = num2) entonces
resul = num1 * num2
sino
si (num1 > num2) entonces
resul = num1 - num2
sino
resul = num1 + num2
fin-si
Guía de Conceptos – Material Básico 11
Introducción a la Programación – Unidad II
fin-si
fin-si
Fin
Inicio
Entero ht, pph, tp, he, pd, pt, pe
Leer ht, pph
Si (ht < = 40) entonces
tp = ht * pph
si no
he = ht - 40
Si (he < = 8) entonces
pe = he * pph * 2
si no pd = 8 * pph * 2
pt = (he - 8) * pph * 3
pe = pd + pt
fin-si
tp = 40 * pph + pe
fin-si
Imprimir tp
Fin
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%
Inicio
Entero sm, antig, util
Leer sm, antig
Si antig < 1 entonces
util = sm * 0.05
si no
Si (antig > = 1) and (antig < 2) entonces
util = sm * 0.07
si no
Si (antig > = 2) and (antig < 5) entonces
util = sm * 0.10
si no
Si (antig > = 5) and (antig < 10) entonces
util = sm * 0.15 si no util = sm * 0.20
fin-si
fin-si
fin-si
fin-si
Imprimir util
Fin
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.
Inicio
Entero edad, ant leer edad, ant,
si (edad >= 60) and (ant < 25) entonces
imprimir “La jubilación es por edad”
sino
si (edad >= 60) and (ant > 25) entonces
imprimir “La jubilación es por edad adulta”
sino
si (edad < 60) and (ant > 25) entonces
imprimir “La jubilación es por antigüedad joven”
si no
imprimir “No tiene por qué jubilarse”
fin-si
fin-si
fin-si
Fin
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”
sino
Si (B residuo A= =0) entonces
Imprimir “A divide exactamente a B”
sino
Imprimir “No se dividen exactamente”
fin-si
fin-si
Fin
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
14) Cree un algoritmo que, basado en la siguiente tabla, lea un número entero e
imprima el nombre de la estación correspondiente.
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
Por tanto, en cada iteración del bucle, la variable índice o de control se actualiza
automáticamente y cuando alcanza el valor que hemos puesto como final se termina la
ejecución del bucle.
En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo se repite hasta
que la variable de control llegue al límite superior.
Dónde:
V.C: Variable de control del ciclo
L.I: Límite inferior
L.S: Límite superior
→ 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.
→ Función Repetir-Hasta
En esta estructura el bucle se repite hasta que la condición sea verdadera y mientras la condición
sea falsa.
La condición se evalúa siempre al final del bucle, si es falsa volvemos a ejecutar las acciones, si
es verdadera sale del bucle.
Como la condición se evalúa al final, incluso aunque la primera vez ya sea verdadera, habremos
pasado al menos una vez por el bucle.
Es decir que cuando un bucle se tenga que ejecutar como mínimo una vez, se podrá usar una
estructura repetir.
Se representa de la siguiente forma:
Definiciones de:
• 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.
• 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.
A. Inicialización.
Todo contador se inicializa a 0 si realiza cuenta natural o a un valor VI (Valor inicial) si se
desea realizar otro tipo de cuenta.
CONTADOR = 0
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
→ 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.
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
Normalmente su valor inicial es cero (0) y cuando cambia de estado a uno (1) es para
indicar que se ha producido una determinada situación que debía ser evaluada En la
mayoría de los casos una bandera que inicialmente está en cero al cambiar de estado a
uno ya permanece con ese valor final durante todo el proceso aunque sin embargo en
algunas ocasiones el valor de una bandera va variando de estado de cero a uno y de uno
a cero y así sucesivamente de acuerdo a las circunstancias.
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 x, num, pos
Hacer para x = 1 a 15
Leer num pos = num * -1
Imprimir num, pos
Fin-para
Fin
Inicio
Entero B=0, ME=0, C
Real X
Hacer Para C=1 hasta 10
Leer X
Si X/2==ENT (X/2)
Si B=0
B=1
ME=X
Sino
Si X < ME
ME=X
Fin si
Fin si
Fin si
Fin para
Imprimir Me
Fin
En donde:
• X: Variable de entrada
• B: Bandera
• ME: Auxiliar de menor
2) Ingresar diez números de uno en uno. Determinar e imprimir la cantidad de veces que a
un número positivo le sigue un número negativo en la serie.
Inicio
Entero b=0, cv=0, num, c
Hacer Para c=1 hasta 10
Leer x
Si (num >0) entonces
b=1
Fin Si
Si (num == 0) entonces
b=0
Fin si
Si (num< 0) entonces
Si (b == 1) entonces
b=0
cv= cv + 1
Fin si
Fin si
Fin para
Imprimir “La cantidagd de elementos es:”cv
Fin
• C: Contador
En donde:
• num: Variable de entrada
• B: Bandera
• CV: Contador de veces
• C: Contador que controla que se introduzcan diez números
3) Ingresar diez números de uno en uno. Determinar e imprimir el mayor número múltiplo de
tres en la serie.
Inicio
Entero b=0, may=0, cont, num
Real r
Hacer para cont=1 hasta 10
Leer num
Si (num/3==ent (num/3))
Si (b = = 0) b=1 may=num
sino
Si (num > may)
may = num
Fin si
Fin si
Fin si
Fin para
Imprimir “El valor mayor encontrado es:”, may
Fin
En donde:
• num: Variable de entrada ▪ b: Bandera
• may: Almacena el mayor
• cont: Contador
Bibliografía
Básica
• Juganaru Mathieu, M. (2015). Introducción a la programación. Grupo Editorial Patria.
• Moreno Pérez, J. C. (2015). Programación. RA-MA Editorial.
• Farrell, J. (2013). Introducción a la programación lógica y diseño (7a. ed.). Cengage Learning
Complementaria
• Brassard, G. y Bratley, P. (1995). Fundamentos de la algoritmia. México: Prentice-Hall
• Byron, G. (2001). Programación en C. México: Prentice Hall.
• Norton, P. (2004). Introducción a la computación. México: Prentice Hall
• Joyanes Aguilar, L. (2002) Fundamentos de la programación. Buenos Aires: Pearson Educativa.
• Joyanes Aguilar, L. (2001). Fundamentos de la programación, algoritmos y estructuras de datos.
Buenos Aires: Pearson Educativa.