Tema Nº8: Estructuras algorítmicas repetitivas
Comentarios:
Es muy común encontrar en la práctica algoritmos cuyas operaciones se deben ejecutar un número repetido de veces. El conjunto de instrucciones que se ejecuta repetidamente se llama ciclo.
Todo ciclo debe terminar de ejecutarse luego de un número finito de veces, por lo que es necesario en cada iteración del mismo, evaluarlas condiciones necesarias para decidir si se debe seguir ejecutando o si debe detenerse.
En todo ciclo, siempre debe existir una condición de parada o fin de ciclo.
Las estructuras a utilizar son:
Para, también llamado for, es la estructura algorítmica adecuada para utilizar en un ciclo que se ejecutará un número definido de veces.
Mientras, también llamada while, repite un ciclo mientras se cumpla una condición.
Repetir, también llamada do while, es lo opuesto de mientras, repite un ciclo mientras no se cumpla una condición.
Mientras, también llamada while, repite un ciclo mientras se cumpla una condición.
Repetir, también llamada do while, es lo opuesto de mientras, repite un ciclo mientras no se cumpla una condición.
Conclusiones:
Las estructuras lógicas repetitivas las debemos ocupar cuando necesitamos realizar un algoritmo en el cual haya que repetir un proceso un numero N de veces, las estructuras repetitivas se pueden mezclar con las estructuras selectivas si el problema lo necesita, también ello se hará uso de expresiones lógicas y operadores relacionales.
Practica #8
Problema 1:
La cotangente de un ángulo se define como el cociente entre el coseno y el seno de dicho ángulo.
Algoritmo:
Proceso naturales Escribir "Suma de números naturales" Escribir "Hasta que numero desea sumar?" Leer N sum <- 0 Para i <- 1 hasta N Hacer sum <- sum + i Escribir "+", i FinPara Escribir "Suma total: ", sum FinProceso
Diagrama de flujo:
Pantalla de salida:
Problema 3:
Escriba un algoritmo tal que dado como datos N números enteros, determine cuántos de ellos son pares y cuántos impares.
Algoritmo:
Proceso numerospi Escribir "Porfavor ingrese los numeros a evaluar:" Escribir "(Ingrese 0 para finalizar)" num <- -1 cpares <- 0 cimpares <- 0 Mientras num <> 0 Leer num Si num % 2 = 0 Entonces cpares <- cpares + 1 Sino cimpares <- cimpares + 1 FinSi FinMientras Escribir "Hay ", cpares-1, " números pares." Escribir "Hay ", cimpares, " números impares." FinProceso
Diagrama de flujo:
Pantalla de salida:
Problema 5:
Escriba un algoritmo que lea un número entero N y calcule el resultado de la siguiente serie:
Algoritmo:
Proceso serie Escribir "Calcule el resultado de la serie" Escribir "1 + 1/2 + 1/3 + ... 1/N" Escribir "¿Hasta que número desea calcular?" Leer n sum <- 0 Para c <- 1 Hasta n Hacer sum <- sum + 1/c FinPara Escribir "Suma total: ", sum FinProceso
Diagrama de flujo:
Pantalla de salida:
Problema 7:
Calcule el aumento de sueldos para N empleados de una empresa, bajo el siguiente criterio:
Algoritmo:
Proceso sueldo Escribir "Cuantos empleados?" Leer emp Total <- 0 Para n <- 1 hasta emp Con Paso 1 Hacer Escribir "Empleado ", n," :" Escribir "Ingrese el sueldo:" Leer Sueldo Si sueldo < 10000 Entonces sueldox <- sueldo * 1.10 Escribir "Aumento de 10%!" FinSi Si sueldo >= 10000 Y sueldo <= 25000 Entonces sueldox <- sueldo * 1.07 Escribir "Aumento de 7%!" FinSi Si sueldo > 25000 Entonces sueldox <- sueldo * 1.08 Escribir "Aumento de 8%!" FinSi Escribir "Su nuevo sueldo es: ", sueldox Escribir "" Total <- Total + sueldox FinPara Escribir "El sueldo total de todos los empleados es: ", Total FinProceso
Diagrama de flujo:
Pantalla de salida:
Problema 9:
Haga un algoritmo que calcule la suma de los números pares comprendidos entre 10 y 50.
Algoritmo:
Proceso pares
Escribir "Calculando la suma de números pares"
Escribir "comprendidos entre 10 y 50:"
Escribir ""
npares <- 0
total <- 0
Para n <- 10 Hasta 50 Con Paso 1 Hacer
Si n mod 2 = 0 Entonces
Escribir n, "+"
npares <- npares + 1
total <- total + n
FinSi
FinPara
Escribir ""
Escribir "Hay ", npares, " números pares."
Escribir "La suma de estos es igual a: ", total
FinProceso
Diagrama de flujo:
Pantalla de salida:
Problema 11:
Escriba una algoritmo que dado el peso, la altura y el sexo de N personas que pertenecen a un departamento de la república, obtengan tanto el promedio del peso como de la estatura de esta población.
Algoritmo:
Proceso promedio Escribir "Ingrese numero de personas:" Leer c npeso <- 0 naltura <- 0 nhombres <- 0 nmujeres <- 0 Para n <- 1 hasta c Con Paso 1 Hacer Escribir "Persona ", n, " :" Escribir "Ingrese su peso en lbs:" Leer peso npeso <- npeso + peso Escribir "Ingrese altura en cms:" Leer altura naltura <- naltura + altura Escribir "Ingrese su sexo:" Escribir "1 = Hombre" Escribir "2 = Mujer" Leer sexo Si sexo = 1 Entonces nhombres <- nhombres + 1 FinSi Si sexo = 2 Entonces nmujeres <- nmujeres + 1 FinSi Escribir "" FinPara Escribir "Promedio de peso: ", npeso/c Escribir "Promedio de altura: ", naltura/c Escribir "Nº de hombres: ", nhombres Escribir "Nº de mujeres: ", nmujeres FinProceso
Diagrama de flujo:
Pantalla de salida:
Problema 13:
Una persona invierte en un banco un cierto capital y quiere saber cuánto obtendrá al cabo de cierto tiempo, si el dinero se colocó a una determinada tasa de interés mensual. Haga un algoritmo.
Algoritmo:
Proceso inversion Escribir "Bienvenido!" Escribir "Calcule cuanto dinero obtendra por una inversión!" Escribir "Ingrese una cantidad de dinero invertida" Leer cd Escribir "Inserte la tasa de interes mensual de su banco:" Leer im ntotal <- 0 Escribir "" Escribir "Calcular dinero obtenido de dentro de # meses:" Escribir "Ingrese númmero de meses" Leer c //Para calcular el monto de dinero a fin de mes de una inversion bancaria //se hace multiplicando la cantidad invertida por el interes mensual //y diviviendo el resultado entre 365 y multiplicandolo por 30 dias del mes. //Los intereses bancarios se calculan en base a 365 días/año Para n <- 1 hasta c con paso 1 hacer mes <- (((cd * im) / 365) * 30) ntotal <- ntotal + mes FinPara Escribir "" Escribir "Usted obtendrá un total de $", ntotal Escribir "dentro de ", c, " meses por su inversión bancaria." FinProceso
Diagrama de flujo:
Pantalla de salida:
Problema 15:
Escriba un algoritmo que reciba como entrada 24 números reales que representan las temperaturas del exterior en un período de 24 horas. Encuentre la temperatura promedio, así como la más alta y más baja del día.
Algoritmo:
Proceso temperatura Dimension temp[24] Escribir "Ingrese las temperaturas del día:" ntemp <- 0 Para n <-1 Hasta 24 Con Paso 1 Hacer Leer temp[n] ntemp <- ntemp + temp[n] FinPara Si temp[1] > temp[2] Entonces may <- temp[1] FinSi Para n <- 3 hasta 24 Con Paso 1 Hacer Si temp[n] > may Entonces may <- temp[n] FinSi FinPara Si temp[1] < temp[2] Entonces men <- temp[1] FinSi Para n <- 3 hasta 24 Con Paso 1 Hacer Si temp[n] < men Entonces men <- temp[n] FinSi FinPara Escribir "Promedio =", ntemp/24 Escribir "Temperatura más alta:", may Escribir "Temperatura más baja:", men FinProceso
Diagrama de flujo:
Pantalla de salida:
Problema 17:
En una universidad con un número determinado de alumnos se desea obtener el porcentaje y promedio de la población femenina, el porcentaje y promedio de la población masculina.
Algoritmo:
Proceso PromedioU Escribir "Ingrese el numero de alumnos" Leer c nhombres <- 0 nmujeres <- 0 Para n <- 1 Hasta c Con Paso 1 Hacer Escribir "Alumno ", n Escribir "Ingrese el sexo:" Escribir "1 = Masculino" Escribir "2 = Femenino" Leer R Segun R hacer 1: nhombres <- nhombres + 1 2: nmujeres <- nmujeres + 1 FinSegun FinPara Total <- nhombres + nmujeres Escribir "" Escribir "Población masculina: " (nhombres*100)/total, "%" Escribir "Población femenina: ", (nmujeres*100)/total, "%" FinProceso
Diagrama de flujo:
Pantalla de salida:
Problema 19:
Escriba un algoritmo que obtenga todos los números “primos gemelos” comprendidos entre A y B (enteros positivos). Los primos gemelos son parejas de números primos con una diferencia entre sí de exactamente dos. Ejemplo 3 y 5 son primos gemelos.
Algoritmo:
Proceso Numero_Primo Escribir "Buscador de números primos..." Escribir "Ingrese punto de partida y final:" Leer A, B Para n<-A Hasta B Con Paso 1 Hacer //El número 1, por convenio, no se considera //ni primo ni compuesto. a=0 Para i<-1 Hasta n Hacer Si n mod i = 0 Entonces a=a+1 FinSi FinPara Si a =2 Entonces Escribir n FinSi FinPara FinProceso//Este algoritmo encuetra todos los numeros primos //comprendidos entre A y B //No logre que encontrara las parejas de numeros gemelos.
Diagrama de flujo:
Pantalla de salida:
No hay comentarios:
Publicar un comentario