Pages

domingo, 29 de septiembre de 2013

practica #8

ESTRUCTURAS ALGORÍTMICAS REPETITIVAS


Objetivo: practicar la resolución de problemas que incluyen el uso de estructuras de control
selectivas utilizando diagramas de flujo en la herramienta PSeInt.

1. Construya un algoritmo que calcule e imprima la suma de los N primeros número
naturales.

algoritmo

Proceso ejercicio1
escribir 'bienvenidos'
escribir 'cuantos numeros desea ingresar'
leer nc
csum<-0
Para i<-1 Hasta nc Con Paso 1 Hacer
escribir 'escriba numero',i,''
leer n
csum<- csum + n
Fin Para
escribir 'la suma total de los numeros es:',csum
FinProceso

diagrama de flujo


pantalla de salida


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 ejercicio3
escribir 'bienvenidos'
escribir 'determine cuantos de sus numeros son pares'
escribir 'cuantos numeros decea ingresar'
leer nm
csumin<-0
csumpar<-0
Para s<-1 Hasta nm Con Paso 1 Hacer
escribir 'ingrese numero',s,''
leer n
Si n%2=0 Entonces
csumpar<- csumpar + 1
Sino
csumin<- csumin + 1
Fin Si
Fin Para
escribir 'sus numeros pares son:',csumpar
escribir 'sus numeros impares son:',csumin
FinProceso

diagrama de flujo:

pantalla de salida:



5. Escriba un algoritmo que lea un número entero N y calcule el resultado de la siguiente 
serie: 


algoritmo:

Proceso ejercicio5
escribir 'bienvenidos'
escribir 'ingrese la cantidad de datos a sumar'
leer n
sum<-0
para s<-1 hasta n con paso 1 Hacer
escribir 'sus numeros a sumar son=' ,1/s, ''
sum<-sum+1/s
FinPara
escribir 'la suma es=',sum
FinProceso

diagrama de flujo:

pantalla de salida:


7. Calcule el aumento de sueldos para N empleados de una empresa, bajo el siguiente 
criterio:
  •  Si el sueldo es menor a $10,000, aumento 10%
  • Si el sueldo está comprendido entre $10,000 y $25,000, aumento 7%
  • Si el sueldo es mayor a $25,000, aumento 8%
  •  Imprimir el nuevo sueldo del trabajador y el monto total de la nómina
  • considerando el aumento.
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 ""
    pares <- 0
    Para n <- 10 Hasta 50 Con Paso 1 Hacer
        Si n mod 2 = 0 Entonces
            Escribir n, "+"
            pares <- pares + 1
        FinSi
    FinPara
    Escribir ""
    Escribir "Hay ", pares, " números pares."
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 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: