PDA

Ver la Versión Completa Con Imagenes : AYUDA


Ayudante De Santa
06-11-2015, 22:19:08
Los mejores licores
hernanal321
23-03-2010, 18:58:26
QUIEN ME PODRIA HACER EL FAVOR DE COLABORARME CON ESTE EJERCICIO POR QUE LA VERDAD NO E PODIDO DAR CON EL ESTOY MANEJANDO C#

_ calcular la utilidad para cada uno de los 200 empleados que tienen la compañía miguelito s.a

_ se bebe tener en cuenta en cuenta que un trabajador percibe en el respectivo reparto qnual de utilidades un porcentaje de su salario mensual que depende de la antigüedad en la empresa de acuerdo con la siguiente tabla.

TIEMPO porcentaje
Menor de un año 5%
Entre 1 y 2 años 7%
Mas de 2 años menos de 5 10%
Entre 5 a 10 años 15%
Mas de 10 años 20%

Además se desea saber el total de utilidad pasado a sus empleados, en numero de empleados que hay cada uno de los rangos de tiempo y monto total pasado c/u de ellos .

Ayudante De Santa
06-11-2015, 22:19:08
Los mejores licores
[Joe Black]
24-03-2010, 07:33:39
pero que es lo que no entiendes, son solo condiciones de acuerdo a los trabajadores que tenes...tenes guardado los trabajadores en un arreglo o en una base de datos?....es solo irlos recorriendo y mirar su antiguedad en la compañia y su salario y de acuerdo a eso le asignas el porcentaje respectivo......la verdad eso esta muy facil y la idea es que vos lo hagas y no esperar que otro te haga la tarea....

hernanal321
25-03-2010, 13:16:38
la verdad es que no entiendo nada de ese tema ese es el pequeño problema que tengo te agradesco mucho si me puedes ayudar

[Joe Black]
25-03-2010, 16:13:57
pero es que la info que das es muy corta......como tenes a los trabajadores...en un arreglo??...o estan almacenados en una tabla en una base de datos.??....

hernanal321
26-03-2010, 19:12:08
bueno se que lo primero lo saco con casos pero en la parte que tengo problemas es en esta parte

Además se desea saber el total de utilidad pasado a sus empleados, en numero de empleados que hay cada uno de los rangos de tiempo y monto total pasado c/u de ellos .

[Joe Black]
27-03-2010, 09:28:24
Necesitas contadores para lo de cuantos hay...cada vez que le vayas asignando su monto pues aumentas en 1 en contador que corresponde a cada rango...mande el ejemplo concreto...que la verdad la info que das es muy escueta....

hernanal321
29-03-2010, 19:41:55
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string emp;
int dur,I,acum,c1,c2,c3,c4,c5;
double a1,a2,a3,a4,a5,sbm,uti;
System.Console.WriteLine("ingrese nombre de empleado");
emp = System.Console.ReadLine();

System.Console.WriteLine("ingrese la cantidad de años trabajados ");
dur = System.Convert.ToInt32(System.Console.ReadLine());

System.Console.WriteLine("ingrese su salario basico");
sbm = System.Convert.ToInt32(System.Console.ReadLine());
for (I = 1; I == 200; I++)
{
if (dur < 1)
{
uti = sbm * 0.05 / 100;
c1 = c1 + 1;
a1 = a1 + uti;
}
if (dur >= 1)&&(dur <= 2)
{
uti=sbm*0.07/100;
c2=c2+1;
a2=a2+uti;
}
if(dur >= 2)&&(dur <= 5)
{
uti=sbm*0.10/100;
c3=c3+1;
a3=a3+uti;
}
if (dur >= 5) && (dur <= 10)
{
uti=sbm*0.15/100;
c4=c4+1;
a4=a4+uti;
}
if (dur >= 10)
{
uti=sbm*0.20/100;
c5=c5+1;
a5=a5+uti;
}
}

System.Console.ReadLine();



}
}
}

BUENO MIRA ASI PIENSO YO PERO LO QUE PASA ES QUE CUANDO LO EJECUTO ME APARESEN ERRORES QUE LA VERDAD NO SE QUE ES LO QUE PASA
GRACIAS Y SE ME PUEDES AYUDAR CON EL TE LO AGRADECERIA MUCHO

[Joe Black]
30-03-2010, 08:15:02
Bueno errores que veo por encima los siguientes:



for (I = 1; I == 200; I++) : No veo porque haces este for, si solo hay un empleado que es lo que ingresas....lo que debes hacer es que cada vez que ingresas un empleado debes volver a llamar a la rutina para que te pida de nuevo ingresar los datos, e ir guardando en un arreglo la info de cada empleado....




c1 = c1 + 1; a1 = a1 + uti; : Esto te puede sacar error pues definiste C1 y A1 pero no los inicializaste....Lo ideal es que las definas como variables globales y las inicialices en 0




Ojo en los if que a todos los valores les estas dando <= o >=, te pongo un ejemplo si la variable dur es igual a 2, que If toma??...como esta podria tomar if (dur >= 1)&&(dur <= 2) o if(dur >= 2)&&(dur <= 5)......




Me imagino que los c1,c2,c3,c4 son los acumuladores de los trabajadores que pertenecen a cada rango...eso esta bn...pero no veo que los uses despues, donde debes mostrar las estadisticas de los empleados...




Te aconsejo que crees una funcion donde esta la rutina para preguntar el nombre, salario y cantidad de años del empleado....




En el main lo que haces entonces es recorrer el arreglo de empleados, mostrarlos uno por uno, y al final mostrar las estadisticas.......



Aqui va el codigo de la funcion donde debes ingresar cada empleado......



static void IngresarOtroEmpleado()
{
System.Console.WriteLine("ingrese nombre de empleado");
emp = System.Console.ReadLine();

System.Console.WriteLine("ingrese la cantidad de años trabajados ");
dur = System.Convert.ToInt32(System.Console.ReadLine());

System.Console.WriteLine("ingrese su salario basico");
sbm = System.Convert.ToInt32(System.Console.ReadLine());

while(empleados.size() == 200) // empleados es el arreglo donde vas guardando
// la info de los empleados
do {
if (dur < 1)
{
uti = sbm * 0.05 / 100;
c1 = c1 + 1;
a1 = a1 + uti;
empleado.save(empl, dur, sbm, uti); // arreglo para almacenar
//empleados
ingresarOtroEmpleado(); // funcion donde vuelves a llamar
// a la funcion para ingresar otro empleado
}
if (dur >= 1)&&(dur < 2)
{
uti=sbm*0.07/100;
c2=c2+1;
a2=a2+uti;
empleado.save(empl, dur, sbm, uti); // arreglo para almacenar
//empleados
ingresarOtroEmpleado(); // funcion donde vuelves a llamar
// a la funcion para ingresar otro empleado
}
if(dur >= 2)&&(dur < 5)
{
uti=sbm*0.10/100;
c3=c3+1;
a3=a3+uti;
empleado.save(empl, dur, sbm, uti); // arreglo para almacenar
//empleados
ingresarOtroEmpleado(); // funcion donde vuelves a llamar
// a la funcion para ingresar otro empleado
}
if (dur >= 5) && (dur < 10)
{
uti=sbm*0.15/100;
c4=c4+1;
a4=a4+uti;
empleado.save(empl, dur, sbm, uti); // arreglo para almacenar
//empleados
ingresarOtroEmpleado(); // funcion donde vuelves a llamar
// a la funcion para ingresar otro empleado
}
if (dur >= 10)
{
uti=sbm*0.20/100;
c5=c5+1;
a5=a5+uti;
empleado.save(empl, dur, sbm, uti); // arreglo para almacenar
//empleados
ingresarOtroEmpleado(); // funcion donde vuelves a llamar
// a la funcion para ingresar otro empleado
}
}
}
Haz esos cambios y me dices si tienes alguna duda......puede que la sintaxis que pongo no este bn pues no me se muy bn la de C#, asi que acomoda lo que este mal.....

hernanal321
30-03-2010, 10:05:13
bueno hice los cambios que me dices pero cuando estoy ejecutando me sale error en el final del if me pide punto y coma y en el && igualmente y lo de guardar la info del empleado en el mientras no te entiendo muy bien que es lo que me quieres decir
muchas gracias voy a seguir haciendole haber que pasa y si alguna cosa te aviso

[Joe Black]
30-03-2010, 10:23:50
Umm creo que es porque te faltan un parentesis, es decir, los if deben quedar asi

if((dur >= 2)&&(dur < 5))....

bueno pues asi es en java y C# tiene una sintaxis muy parecida.....

Lo de ir guardando la info de cada empleado es porque tu al final necesitas una estadistica de todos cierto??...entonces la idea es que mostres algo asi...

Nombre Empleado Salario Basico Años en empresa Utilidad

Juanito Perez 100000 2 100500
Pepito Gomez 100000 8 101000

Estadisticas

Persona en rango de 1 a 2 años : 0
Persona en rango de 2 a 5 : 1
....
...
.......


Entonces si cada vez que ingresas un empleado y su respectiva info lo almacenas en un arreglo pues al final te quedara mas facil hacer las estadisticas..........

hernanal321
30-03-2010, 21:37:20
hermano me sirvio mucho eso pero sabes el while no me quiere funcionar bein no se que hacerle

[Joe Black]
31-03-2010, 07:38:05
Y que tipo de error te sale o que??....