domingo, 9 de febrero de 2020

Ejercicios resueltos de pseudocódigos

Un maestro desea saber qué porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes. Elaborar un pseudocódigo que permita ingresar la cantidad de varones y mujeres y muestre el porcentaje de estos para su grupo de estudiantes.

SOLUCIÓN

Proceso procentajeAlumnos
 Definir varones, mujeres Como Entero
 Definir porcentajeVar, porcentajeMuj Como Real
 
 Escribir "Ingrese la cantidad de varones"
 Leer varones
 Escribir "Ingrese la cantidad de mujeres"
 Leer mujeres
 
 porcentajeVar <- varones / (varones + mujeres) * 100
 porcentajeMuj <- mujeres / (varones + mujeres) * 100
 
 Escribir "El porcentaje de varones es: ", porcentajeVar, "%"
 Escribir "El porcentaje de mujeres es: ", porcentajeMuj, "%"
FinProceso



Digite el importe de una compra, en caso de que el importe sea 150 o más, se le descontará el 12%. Mostrar el descuento otorgado y el importe de compra final

SOLUCIÓN

Proceso descuentos
 Definir impBase, dscto, impFinal Como Real 
 
 Escribir "Ingrese el importe"
 Leer impBase 
 
 dscto <- 0 
 Si impBase >= 150 Entonces
  dscto <- impBase * 0.12
 FinSi 
 impFinal <- impBase - dscto
 
 Escribir "Importe final S/", impFinal
FinProceso



Ingrese el nombre de un alumno y las notas de su examen parcial, examen final y el promedio de prácticas; muestre el nombre del alumno y su promedio final solo si el alumno está aprobado. Tenga en cuenta que para el cálculo del promedio la nota del examen final tiene peso doble. Considere que para aprobar se debe tener una nota de 11.5 o más.

SOLUCIÓN

Proceso aprobados
 Definir nombre Como Caracter
 Definir practicas, parcial, final Como Entero 
 Definir promedio Como Real
 
 Escribir "Ingrese el nombre"
 Leer nombre
 Escribir "Ingrese las notas de las prácticas"
 Leer practicas 
 Escribir "Ingrese la notas del parcial"
 Leer parcial  
 Escribir "Ingrese la notas del final"
 Leer final 
 
 promedio <- (practicas + parcial + 2*final)/4 
 
 Si promedio >= 11.5 Entonces  
  Escribir "Nombres ", nombre
  Escribir "Promedio ", promedio
 FinSi  
FinProceso



Ingrese un numero natural de dos cifras y muestre el mensaje “Es capicúa” o “No es capicúa” según sea el caso.

SOLUCIÓN

Proceso capicua2
 Definir num Como Entero
 
 Escribir "Ingrese un número de dos cifras"
 Leer num 
 
 Si num MOD 11 = 0 Entonces  
  Escribir num, " es capicúa"
 SiNo  
  Escribir num, " no es capicúa"
 FinSi  
FinProceso



Realizar un pseudocódigo que permita ingresar el nombre del cliente, la cantidad en soles a cambiar y el tipo de moneda a la que se desea cambiar, en este caso sólo será dólares o euros, se deberá visualizar la cantidad en la moneda extranjera cambiada. Tenga en cuenta el siguiente tipo de cambio $1 = S/ 2.35 y €1 = S/ 3.58.

SOLUCIÓN

Proceso divisas 
    Definir nombre, moneda Como Caracter      
    Definir monto, cambio Como Real      
    Escribir "Ingresa el nombre"  
    Leer nombre  
    Escribir "Ingrese el monto a cambiar en S/"  
    Leer monto  
    Escribir "Ingrese la moneda a cambiar dolares o euros"  
    Leer moneda          
    Si Mayusculas(moneda) = "DOLARES" Entonces   
        cambio <- monto/2.35   
    SiNo   
        Si Mayusculas(moneda) = "EUROS" Entonces    
            cambio <- monto/3.58    
        FinSi   
    FinSi      
    Escribir "Cambio ", cambio  
FinProceso 



Dado un número entero; determinar si el mismo es par, impar o nulo.

SOLUCIÓN

Proceso ceros 
    Definir num Como Entero 
    Escribir "Ingresa un número" 
    Leer num 
    Si num = 0 Entonces 
        Escribir "Es nulo" 
    SiNo 
        Si num MOD 2 = 0 Entonces 
            Escribir "Es par" 
        SiNo 
            Escribir "Es impar" 
        FinSi 
    FinSi 
FinProceso



A un trabajador le descuentan de su sueldo el 10% si su sueldo es menor o igual a 1000, por encima de 1000 hasta 2000 el 5% del adicional, y por encima de 2000 el 3% del adicional. Calcular el descuento y sueldo neto que recibe el trabajador dado un sueldo.

SOLUCIÓN

Proceso descuentos  
    Definir sueldo, dscto, sneto Como Real      
    Escribir "Ingrese el sueldo"  
    Leer sueldo  
    Si sueldo <= 1000 Entonces   
        dscto <- 0.1*sueldo   
    SiNo           
        Si sueldo <= 2000 Entonces    
            dscto <- 0.05*(sueldo-1000)    
        SiNo    
            dscto <- 0.03*(sueldo-2000)                
        FinSi   
    FinSi  
    sneto <- sueldo - dscto  
    Escribir "Sueldo:       S/", sueldo  
    Escribir "Descuento:    S/", dscto  
    Escribir "Sueldo neto:  S/", sneto  
FinProceso 



Una agencia de seguros para autos asigna costos mensuales en base al sexo y edad del conductor. Los varones menores de 25 años pagan 1000 soles, los de 25 a más pagan 700 soles. Las mujeres de 21 años o menos pagan 500 y las que tienen más de 21 años paga 600 soles. Realizar un programa en pseudocódigo que solicite la edad y sexo de la persona, luego de acuerdo con lo mencionado muestre el costo mensual del seguro en pantalla.

SOLUCIÓN

Proceso seguros 
    Definir genero Como Caracter // V o M 
    Definir edad Como Entero 
    Definir precio Como Real 
    Escribir "Ingrese el genero V o M" 
    Leer genero 
    Escribir "Ingrese la edad" 
    Leer edad 
    Segun Mayusculas(genero) Hacer 
        "V": 
            Si edad < 25 Entonces 
                precio <- 1000 
            SiNo 
                precio <- 700  
            FinSi 
        "M": 
            Si edad >= 21 Entonces 
                precio <- 500 
            SiNo 
                precio <- 600                

            FinSi             
        De Otro Modo: 
            Escribir "ERROR" 
    FinSegun 
    Escribir "El pago es: S/", precio 
FinProceso



Hacer un pseudocodigo que imprima los números pares entre 0 y 100

SOLUCIÓN

Proceso pares1_100
    Para cont <- 1 Hasta 100 Con Paso 1 Hacer        
        Si cont MOD 2 = 0 Entonces 
            Escribir cont," - " Sin Saltar 
        FinSi          
    FinPara 
FinProceso



Proceso pares1_100
    Para cont <- 2 Hasta 100 Con Paso 2 Hacer
            Escribir cont," - " Sin Saltar     
    FinPara 
FinProceso



Calcular el salario total de un grupo de “n” trabajadores (el valor “n” se ingresa por teclado) dada la cantidad de horas trabajadas y la tarifa por hora para cada uno de los trabajadores.

SOLUCIÓN

Proceso sueldos 
    Definir horas, n Como Entero 
    Definir tarifa, sueldo, sueldoTotal Como Real     
    sueldoTotal <- 0//acumulador, aumenta de acuerdo a un valor "x" 
    Escribir "Ingrese el numero de trabajadores" 
    Leer n     
    Para cont <- 1 hasta n Con Paso 1 Hacer 
        Escribir "Ingrese las horas" 
        Leer horas 
        Escribir "Ingrese la tarifa por hora" 
        Leer tarifa 
        sueldo <- horas * tarifa 
        sueldoTotal <- sueldoTotal + sueldo 
    FinPara     
    Escribir "Sueldo del grupo: S/",sueldoTotal 
FinProceso 



Construir un programa que calcule el factorial de un número

SOLUCIÓN

Proceso factoriales 
    Definir n,fact,aux Como Entero 
    fact<-1 
    Escribir "Ingrese n" 
    Leer n 
    Para i<-1 hasta n Con paso 1 Hacer 
        fact<-fact*i 
    FinPara 
    Escribir n,"! = ", fact 
FinProceso

Proceso factoriales
    Definir n,fact,aux Como Entero 
    fact<-1 
    aux<-1 
    Escribir "Ingrese n" 
    Leer n   
    Mientras aux<=n Hacer 
        fact<-fact*aux 
        aux<-aux+1 
    FinMientras       
    Escribir n,"! = ", fact 
FinProceso



Dado un número entero positivo cualquiera, invertirlo y mostrarlo en pantalla

SOLUCIÓN

Proceso invertido  
    Definir num, cf, inv, aux Como Entero    
    Leer num  
    aux<-num  
    Mientras aux>0 Hacer   
        cf <- aux MOD 10   
        aux <- (aux - cf)/10  
        inv<-inv*10+cf   
    FinMientras      
    Escribir "numero inicial  :", num  
    Escribir "numero invertido:", inv 
FinProceso



Se desea crear un algoritmo para un sistema de votación. Supóngase en este caso que hay cuatro candidatos, con identificadores 1, 2, 3, 4. Usted habrá de calcular mediante un programa, el número de votos correspondiente a cada candidato y el porcentaje que obtuvo respecto al total de los votantes. El usuario ingresara los votos de manera desorganizada, tal y como se obtuvieron en la elección. El conteo de votos se detiene si se ingresa el valor cero. Observe, como ejemplo, la siguiente lista: 1 3 1 4 2 2 1 3 1 1 1 3 4 1 2 4 4 0

SOLUCIÓN

Proceso votaciones  
    Definir v,a,b,c,d Como Entero  
    // Contadores para cada cantidato
    a<-0  
    b<-0  
    c<-0  
    d<-0  
    Repetir   
        Escribir "ingrese voto"   
        leer v   
        Si v=1 Entonces    
            a<-a+1    
        FinSi   
        Si v=2 Entonces    
            b<-b+1    
        FinSi   
        Si v=3 Entonces   
            c<-c+1    
        FinSi   
        Si v=4 Entonces    
            d<-d+1    
        FinSi   
    Hasta Que v=0 //Se detiene si v es CERO
    Escribir "votos del candidato 1=", a 
    Escribir "votos del candidato 2=", b  
    Escribir "votos del candidato 3=", c  
    Escribir "votos del candidato 4=", d 
FinProceso



Construir un algoritmo que permita ingresar un número “n” de estudiantes (se cumple que: 1<=n<=50), cada uno de los cuáles cursa 5 materias. Para cada alumno se ingresa, clave y las 5 calificaciones. Escriba un algoritmo para calcular el promedio de cada estudiante luego de ingresar sus notas.

SOLUCIÓN

Proceso clase  
    Definir n, notas Como Entero  
    Definir clave Como Caracter  
    Definir prom Como Real  
    prom<-0  
    Repetir   
        Escribir "Ingrese la cantidad de alumnos"   
        Leer n 
 Hasta Que n>=1 Y n <=50
 Para i<-1 Hasta n Con Paso 1 Hacer
  Escribir "Ingrese la clave del alumno#",i
  Leer clave  
  Para j<-1 Hasta 5 Con Paso 1 Hacer  
   Repetir    
    Escribir "Ingrese la nota #",j     
    Leer notas  
   Hasta Que notas>=0 Y notas<=20
   prom<-prom+notas     
  FinPara    
  prom<-prom/5
  Escribir "Codigo: ", clave, " Promedio: ", prom     
  prom<-0
 FinPara   
FinProceso



Ejercicio con PseInt usando funciones

Las funciones dentro de PseInt se pueden crear mediante la palabra reservada SubProceso, SubAlgortimo o Función. Esto dependerá del estilo d...