CURSOALGORITMOS Y
Alma Lucrecia Olivet López
Ingeniera en Sistemas de Información
Maestría en Liderazgo y Desarrollo Organizacional
Doctora en Liderazgo y Desarrollo Organizacional
Capítulo II Lenguaje C++
Prácticas de Algoritmos
Con estructuras de Repetición
For – While – Do While
FOR
Estructuras de Repetición
Las estructuras de repetición
permiten la ejecución repetida de
una lista o secuencia de
instrucciones. El número de veces
que el bloque de instrucciones se
ejecutará se puede especificar de
manera explícita o a través de una
condición que indica cuando se
ejecuta de nuevo o cuando no.
Tipos de estructuras de repetición
Existen tres tipos principales de
sentencias de repetición
La expresión Se ejecuta cuando se Se realiza después de
establece límites, por cumple una condición ejecutar el bloque de
tanto es finita o expresión, es instrucciones
infinita
Para Mientras Hacer-mientras
Ciclo FOR (Para)
El ciclo para permite la ejecución repetida de un
conjunto de acciones; el número de veces que el
bloque se ejecuta está determinado por los valores
que puede tomar una variable contadora (de tipo
entero), en un rango definido por un límite inferior y
un límite superior.
En cada iteración la variable contadora es
incrementada en uno automáticamente, en el
momento en que la variable sobrepasa el límite
superior el ciclo termina.
Diagrama de Flujo y Pseudo
n
Para var=lím_inf hasta condición
proceso hacer
F
bloque de
i <= n
instrucciones
V
Fin_para
i=i+1
Proceso
6
FOR en Diagrama de Flujo y Pseudo
Inicio; fin; incremento
Para var=lím_inf hasta condición
Lectura hacer
bloque de
Proceso
instrucciones
Salida Fin_para
Fin FOR
Uso de FOR en Python
Uso de Listas y Rango
#Uso de FOR con Listas/Rango
print(“Iniciando Uso Estructura FOR") print("Comienzo")
for i in [0, 1, 2]: for i in [1, 1, 1]:
print("Hola ", end="")
print("Hola ", end="") print()
print() print("Final")
print("Final")
print("Comienzo")
for i in []:
print("Hola ", end="")
print()
print("Final")
Uso de Listas y Rango
Contadores y
Acumuladores
ESTRUCTURAS REPETITIVAS
Variables tipo Contador.
El Contador es una variable que se incrementa o disminuye en
un valor constante, cada que ocurre una acción o suceso. La
forma general de los contadores es la siguiente:
CONTADOR = CONTADOR + <valor constante>
Como el contador aparece al Lado derecho de la expresión,
antes de usarse, se le debe dar un valor que borre lo que había
en al dirección de memoria asignada a la variable utilizada.
Una orden de borrado puede ser: CONTADOR = 0
ESTRUCTURAS REPETITIVAS
Variables Tipo Acumulador.
Un acumulador o totalizador es una variable cuya función es
almacenar cantidades variables resultantes de procesos
sucesivos, la diferencia con el contador radica en que el
incremento o disminución de cada suma es variable en lugar
de constante, como en el caso del contador.
La forma general del acumulador es:
ACUMULADOR = ACUMULADOR + <expresión>
Como también aparece al Lado derecho, antes de utilizarlo se
hace necesario asignarle un valor inicial, por ejemplo:
ACUMULADOR = 0
Ejemplo estructura FOR (Contadores y
ALGORITMO: Representación en PSeudocódigo
Acumuladores)
Ejemplo estructura FOR (Contadores y
Acumuladores)
PROGRAMA EN C++
Hacer un Algoritmo que encuentre la suma de los primeros cinco números Naturales
suma=0
n = int(input("Ingrese un valor: "))
for f in range(n):
valor=int(input("Ingrese un valor: "))
if f<=5:
suma=suma+valor
print("La suma de los primeros 5 numeros de los {n}
numeros o valores ingresados, es: ")
print(suma)
1
Ejemplo estructura FOR (Contadores y ADO
R
Acumuladores) EJO
PROGRAMA EN C++ M
Hacer un Algoritmo que encuentre la suma de 5 números ingresados desde teclado.
suma=0
n = int(input("Ingrese un valor: "))
for f in range(n):
valor=int(input("Ingrese un valor: "))
if f<=5:
suma=suma+valor
print("La suma de los primeros 5 numeros de los {n}
numeros o valores ingresados, es: ")
print(suma)
2
Ejemplo estructura FOR (Contadores y DO
RA
Acumuladores) EJO
PROGRAMA EN C++ M
Hacer un Algoritmo que encuentre la suma de “n” números enteros ingresados desde teclado.
suma=0
n = int(input("Ingrese un valor: "))
for f in range(n):
valor=int(input("Ingrese un valor: "))
if f<=5:
suma=suma+valor
print("La suma de los primeros 5 numeros de los {n}
numeros o valores ingresados, es: ")
print(suma)
Ejemplo estructura FOR (Contadores y
Acumuladores)
PROGRAMA EN C++
Hacer un Algoritmo que encuentre la suma de “n” números enteros POSITIVOS ingresados desde teclado.
3
DO
RA
JO
suma=0 E
M
n = int(input("Ingrese un valor: "))
for f in range(n):
valor=int(input("Ingrese un valor: "))
if f<=5:
suma=suma+valor
print("La suma de los primeros 5 numeros de los {n}
numeros o valores ingresados, es: ")
print(suma)
Problema:
El Colegio “Los Sabios” necesita conocer
el total al cual asciende su planilla
mensual; para ello; necesitan ingresar 15
salarios de su personal; ingresando su
sueldo liquido. Haga el programa que,
leyendo el sueldo liquido final de cada
maestro, calcule el total de la nómina
Mensual a pagar por servicios docentes.
Diseño de Algoritmos
Tipo: DF: Pseudocódigo: Código:
Author: Fecha: No.Hojas ____ de ____
Defijnición del problema: Calculo de Nómina Mensual de salarios de 15 personas.
Área para Desarrollo del Algoritmo
Diseño de Algoritmos
Tipo: DF: Pseudocódigo: Código:
Author: Fecha: No.Hojas ____ de ____
Defijnición del problema:
Área para Desarrollo del Algoritmo
Inicio
Imprimir “Ingrese cuántos empleados ingresará: “
Leer n
For i=1 hasta n Hacer
Inicio
leer salario
total_salario = total_salario + salario;
Fin
Imprimir “El salario total de la nómina de “,n” Empleados es: “ total_salario
fin
Programa en
#Programa de Pruebas de Estructura Repetitiva FOR
#Este, suma "n" numeros ingresados
cont=0
nomina=0
sueldo_base=0
for i in range(15):
cont=cont+1
sueldo_base = int(input(f"Ingrese Salario del Empleado {cont}: "))
nomina=nomina+sueldo_base
print(f"El total de la nómina de {cont} empleados es {nomina}")
print(f"Los sueldos ingresados fueron: ")
1
O
Programa en C/C++ O RAD
EJ
M
2
O
Programa en C/C++ O RAD
EJ
M
3
O
Programa en C/C++ O RAD
EJ
M
Problema:
Diseño de Algoritmos
Tipo: DF: Pseudocódigo: Código:
Author: Fecha: No.Hojas ____ de ____
Defijnición del problema: Suma de “n” números positivos
Área para Desarrollo del Algoritmo
Diseño de Algoritmos
Tipo: DF: Pseudocódigo: Código:
Author: Fecha: No.Hojas ____ de ____
Defijnición del problema: Suma de “n” números positivos
Área para Desarrollo del Algoritmo
#Programa de Pruebas de Estructura Repetitiva FOR
#Este, suma "n" numeros ingresados
cont=0
suma=0
promedio=0
pos=0
n=int(input("Ingrese cuantos números quiere sumar: "))
for i in range(n):
cont=cont+1
valor = int(input(f"Ingrese Valor #{cont}: "))
if(valor >= 0):
suma=suma+valor
pos=pos+1
promedio=suma/pos
print(f"\nEl resultado de la suma de {cont} numeros positivos ingresados es {suma}")
print(f"\nEl promedio se sumar {cont} numeros positivos ingresados es {promedio}")
Ejemplos en
Y los números
primos?
30
Programa que lee un numero entero y calcula si un numero es PRIMO.
ANALISIS DEL PROBLEMA
Input Process Output
31
DIAGRAMA DE FLUJO
Comprobar si un número es primo: Un número primo es aquel que solo es divisible entre 1 y él mismo. Con lo cual
solo tiene 2 divisores.
32
PSEUDOCODIGO
Comprobar si un número es primo: Un número primo es aquel que solo es divisible entre 1 y él mismo. Con lo cual
solo tiene 2 divisores.
33
PROGRAMA EN
Verifica Si un #
#Programa de Pruebas de Estructura Repetitiva FOR
#Este, calcula si un numero es primo
entero es Primos
cont=0
n=int(input("\n\n====>> Ingrese un numero: "))
print(f"\n**********************************")
for i in range(n):
j=i+1
if(n%j==0):
cont=cont+1
if(cont==2):
print(f" El numero {n} es primo")
if (cont > 2):
print(f" El numero {n} no es primo")
print(f"\n**********************************")
print(" Fin del programa")
34
Ejemplos en
Hacer un algoritmo que, leyendo un número entero positivo,
calcule el factorial del dicho número.
Se entiende como el factorial de un número a la multiplicación
de todos los números enteros positivos desde 1 hasta “n”.
El factorial de un número se representa con el símbolo “!”. De
ello, el factorial de cualquier numero entero positivo se denota:
n!
De ello, se tiene que, si n=6; el factorial de “n=6” es igual:
6! = 1 * 2 * 3* 4 * 5 * 6 = 720
Tipo: DF: Pseudocódigo: Diseño de Algoritmos Código:
Author: Fecha: No.Hojas ____ de ____
Definición del problema: Cálculo del FACTORIAL de un número entero positivo.
Área para Desarrollo del Algoritmo
Inicio
Leer n
Para i=1 hasta n
inicio
fact=fact*i
fin
imprimir “Factorial de “, n, “= “ fact
fin
Tipo: DF: Pseudocódigo: Diseño de Algoritmos Código:
Author: Fecha: No.Hojas ____ de ____
Defijnición del problema: Suma de “n” números positivos
Área para Desarrollo del Algoritmo
En matemáticas, la sucesión o serie de Fibonacci hace referencia a la secuencia ordenada de números descrita por
Leonardo de Pisa, matemático italiano del siglo XIII:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,…
A cada uno de los elementos de la serie se le conoce con el nombre de número de Fibonacci.
Historia
Esta sucesión fue descrita por Fibonacci como la solución a un problema de cría de conejos: “Cierto hombre tiene una
pareja de conejos juntos en un lugar cerrado y desea saber cuántos son creados a partir de este par en un año cuando,
de acuerdo a su naturaleza, cada pareja necesita un mes para envejecer y cada mes posterior procrea otra pareja”
(Laurence Sigler, Fibonacci’s Liber Abaci, página 404).
La respuesta a esta pregunta es la que sigue:
Partimos de una pareja de conejos el primer mes.
El segundo mes la pareja envejece pero no procrea.
El tercer mes la pareja procrea otra pareja (es decir, ya tenemos dos parejas).
El cuarto mes, la primera pareja vuelve a procrear y la pareja nueva envejece sin procrear (luego tenemos tres
parejas).
El quinto mes, las dos parejas más viejas vuelven a procrear mientras que la nueva pareja no procrea (cinco
parejas en total)
Tipo: DF: Pseudocódigo: Diseño de Algoritmos Código:
Author: Fecha: No.Hojas ____ de ____
Defijnición del problema: Suma de “n” números positivos
Área para Desarrollo del Algoritmo
Tipo: DF: Pseudocódigo: Diseño de Algoritmos Código:
Author: Fecha: No.Hojas ____ de ____
Defijnición del problema: Suma de “n” números positivos
Área para Desarrollo del Algoritmo