Practica 8

Tema Nº8Estructuras algorítmicas repetitivas


Comentarios: 

Es muy común encontrar en la práctica algoritmos cuyas operaciones se  deben ejecutar un número repetido de vecesEl 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.

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