Sunteți pe pagina 1din 7

Diseo de Algoritmos

Ejemplo de Nmina (Usando ciclos y


acumuladores)
2 Parte Programacin en Java

Marco Snchez
http://explicandoalgoritmos.blogspot.mx
Planteamiento del Problema
Definir el nombre de su compaa
Definir 3 categoras de empleados y el sueldo de cada
categora
Disee un algoritmo (Pseudocdigo) que dentro de un ciclo,
lea el nombre del empleado y la categora. De acuerdo a esta
informacin, el algoritmo debe calcular el sueldo del
empleado, teniendo en cuenta adems, basado en un nmero
aleatorio (de 1 a 100), si el nmero es mayor de 70 al sueldo
se le descontara el 5%, se debe imprimir el nombre y sueldo
del empleado y la nmina (suma de los N sueldos de la
empresa) total de la empresa.
Variables del Problema
Tipo Variable Uso
String Empresa Nombre de la empresa
String [3] Categoria[] Vector para guardar la categora del puesto del empleado
String [] Nombre[] Vector para guardar los nombres de los empleados
Float [3] Sueldo [] Vector para guardar los sueldos de las categoras
Float Total Guardar el total de los sueldos (usada como acumulador)
Float Aleatorio Determinar si se le asigna un 5% extra si es mayor a 70
String Puesto Variable auxiliar para Guardar el nombre de la categora del empleado y
compararlo con las que estn dadas de altas
Int n Numero de empleados
float Sueldofinal Variable auxiliar para asignar el sueldo total del empleado despus del aleatorio
int I Variable contador
Pseudocdigo
MIENTRAS(i<=n)
INICIO ESCRIBE nombre del empleado ,i
ESCRIBE Ingresa el nombre de la empresa " LEER Nombre[i]
LEER Empresa ESCRIBE Ingresa el puesto "
i=1 LEER Puesto
MIENTRAS(i<=3) Aleatorio = 100 * Random()
ESCRIBE Ingresa el puesto " ESCRIBE Aleatorio
SI (Puesto=Categoria[1] )
LEER Categoria[i]
SI(Aleatorio>70)
ESCRIBE Ingresa el sueldo del puesto " Sueldofinal=Sueldo[1]*1.05
LEER Sueldo[i] FIN_SI
i++ SINO
FIN_MIENTRAS SI (Puesto=Categoria[2] )
ESCRIBE Ingresa el numero de empleados " SI(Aleatorio>70)
LEER n Sueldofinal=Sueldo[2]*1.05
FIN_SI
i=1
SINO
Total=0 SI(Puesto=Categoria[3] )
SI(Aleatorio>70)
Sueldofinal=Sueldo[3]*1.05
FIN_SI
FIN_SI
Total=Total+Sueldofinal
ESCRIBE Sueldo de ,Nombre[i],:$,Sueldofinal
i++
FIN_MIENTRAS
ESCRIBE Total nomina: $,Total
FIN
Codificacin en Java
import java.util.Scanner; while(i<=n){
public class Nomina{ System.out.println("Nombre del Empleado "+i);
public static void main(String[] args) { Nombre[i] = sc.next();
Scanner sc = new Scanner(System.in); System.out.println("Ingresa el puesto ");
//Declaracion de Variables Puesto = sc.next();
Aleatorio = 100 *(float) Math.random();
String Empresa; System.out.println("Aleatorio "+Aleatorio);
String []Categoria = new String[4]; if(Puesto.equals(Categoria[1])){
float []Sueldo = new float[4]; if(Aleatorio>70){
int i,n; Sueldofinal=Sueldo[1]*(float)1.05;
float Total,Aleatorio,Sueldofinal=0; }
}else if(Puesto.equals(Categoria[2])){
String []Nombre = new String[100]; if(Aleatorio>70){
String Puesto; Sueldofinal=Sueldo[2]*(float)1.05;
System.out.print("Ingresa el nombre de la empresa: "); }
Empresa = sc.next(); }else if(Puesto.equals(Categoria[3])){
i=1; if(Aleatorio>70){
Sueldofinal=Sueldo[3]*(float)1.05;
while(i<=3){ }
System.out.println("Ingresa el puesto "); }
Categoria[i] = sc.next(); Total=Total+Sueldofinal;
System.out.println("Ingresa el sueldo del puesto "); System.out.println("Sueldo de "+Nombre[i]+" :$"+Sueldofinal);
Sueldo[i] = Float.parseFloat(sc.next()); i++;
}
i++; System.out.println("Total nomina: $"+Total);
} }
System.out.println("Ingresa el numero de empleados "); }
n = sc.nextInt();
i=1;
Total=0;
Codificacin en Java
Salida donde se muestra el programa corriendo
Datos de Contacto
Si tienes dudas o quieres que te ayude a resolver algn
algoritmo contctame!!!

Suscrbete a mi canal:
https://www.youtube.com/channel/UCoqQCv_pqjpobIEWBd9kABQ

Suscrbete a mi blog:
http://explicandoalgoritmos.blogspot.mx/

Correo de Contacto:
marcosanchezd.job@gmail.com

S-ar putea să vă placă și