Está en la página 1de 7

algoritmo

 inicio
 calcular:
o x:=1;
o acum1:=0;
o cont1:=0;
o acum2:=0;
o cont2:=0;
o max:=0;
o nombremax:=0;
 while (x=1) do
 inicio
o imprimir :'ingrese los datos de los empleados'
 for y:=1 to 10 do
 inicio
o imprimir: 'ingrese el nombre'
o ingresar: w
o calcular: nombre[y]:=w
o imprimir: 'ingrese las horas de trabajo'
o ingresar: h
o calcular: horas[y]:=h
o imprimir: 'ingrese la base de pago'
o ingresar: b
o calcular: base[y]:=b
o imprimir: 'ingrese la edad'
o ingresar: e
o calcular: edad[y]:=e
 if h<=40 then
o inicio
o imprimir: 'el pago total es igual a $'
o imprimir: h*b
o calcular: ptotal[y]:=h*b
o fin
 if h>40 then
o inicio
o imprimir: 'el pago total es igual a $'
o calcular: ptotal[y]:=(40*b)+((h-40)*b*1.5)
o imprimir: ptotal[y]
o fin
 if ptotal[y]<=200 then
o inicio
 calcular: impuesto:=ptotal[y]*0.10
 imprimir: 'el impuesto es igual a $',impuesto
 calcular: pago_neto:=ptotal[y]-impuesto
 imprimir: 'el pago neto es igual a $',pago_neto
o fin
 if ptotal[y]>200 then
o inicio
 calcular: impuesto:=(200*0.10)+((ptotal[y]-200)*0.20)
 imprimir: 'el impuesto es igual a $',impuesto
 calcular: pago_neto:=ptotal[y]-impuesto
 imprimir: 'el pago neto es igual a $',pago_neto
o fin
 if e<55 then
o inicio
 calcular:
o acum1:=acum1+ptotal[y];
o cont1:=cont1+1;
o fin
 if e>=55 then
o inicio
 calcular:
o acum2:=acum2+ptotal[y];
o cont2:=cont2+1;
o fin
 readkey;
 if ptotal[y]>max then
o inicio
 calcular:
o max:=ptotal[y];
o nombremax:=y;
o fin
 fin(ciclo for)
 clrscr;
 imprimir: 'el pago total promedio para los empleados de al menos 55 años es igual a '
 imprimir: acum2/cont2
 imprimir: 'el pago total promedio para los empleados de menos de 55 años es igual a '
 imprimir: acum1/cont1
 imprimir: 'el nombre y el pago total para el empleado con maximo pago total es igual a '
 imprimir: nombre[nombremax]
 imprimir: '$',max
 readkey;
 imprimir: 'presione 1 si desea volver a repetir el programa'
 imprimir: 'o presione cualquier otro numero para salir'
 ingresar: x
 fin(ciclo while)
 fin.
pseudocodigo

program compania_xyz;

uses crt;

var x,y,z,c,nombremax:integer;

h,b,e,impuesto,pago_neto,acum1,cont1,acum2,cont2,pagomax,max:real;

w:string;

nombre:array [1..10] of string;

horas:array [1..10] of real;

base:array [1..10] of real;

edad:array [1..10] of real;

ptotal:array [1..10] of real;

ptotal2:array [1..10] of real;

nombre2:array [1..10] of string;

edad2:array [1..10] of real;

begin

clrscr;

x:=1;

acum1:=0;

cont1:=0;

acum2:=0;

cont2:=0;

max:=0;

nombremax:=0;
while (x=1) do

begin

writeln('ingrese los datos de los empleados');

for y:=1 to 10 do

begin

writeln('ingrese el nombre');

readln(w);

nombre[y]:=w;

writeln('ingrese las horas de trabajo');

readln(h);

horas[y]:=h;

writeln('ingrese la base de pago');

readln(b);

base[y]:=b;

writeln('ingrese la edad');

readln(e);

edad[y]:=e;

if h<=40 then

begin

write('el pago total es igual a $');

writeln(h*b:0:0);

ptotal[y]:=h*b;

end;

if h>40 then

begin

write('el pago total es igual a $');

ptotal[y]:=(40*b)+((h-40)*b*1.5);

writeln(ptotal[y]:0:0);
end;

if ptotal[y]<=200 then

begin

impuesto:=ptotal[y]*0.10;

writeln('el impuesto es igual a $',impuesto:0:0);

pago_neto:=ptotal[y]-impuesto;

writeln('el pago neto es igual a $',pago_neto:0:0);

end;

if ptotal[y]>200 then

begin

impuesto:=(200*0.10)+((ptotal[y]-200)*0.20);

writeln('el impuesto es igual a $',impuesto:0:0);

pago_neto:=ptotal[y]-impuesto;

writeln('el pago neto es igual a $',pago_neto:0:0);

end;

if e<55 then

begin

acum1:=acum1+ptotal[y];

cont1:=cont1+1;

end;

if e>=55 then

begin

acum2:=acum2+ptotal[y];

cont2:=cont2+1;

end;

readkey;

if ptotal[y]>max then

begin

max:=ptotal[y];
nombremax:=y;

end;

end;

clrscr;

writeln('el pago total promedio para los empleados de al menos 55 años es igual a ');

writeln(acum2/cont2:0:0);

writeln('el pago total promedio para los empleados de menos de 55 años es igual a ');

writeln(acum1/cont1:0:0);

writeln('el nombre y el pago total para el empleado con maximo pago total es igual a ');

writeln(nombre[nombremax]);

writeln('$',max:0:0);

readkey;

writeln('presione 1 si desea volver a repetir el programa');

writeln('o presione cualquier otro numero para salir');

readln(x);

end;

end.

También podría gustarte