Tnego un ejercico que hize y me presenta 3 errores me pueden ayudar

Iniciado por joalbela, 31 Mayo 2009, 01:09 AM

0 Miembros y 1 Visitante están viendo este tema.

joalbela

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int n, nt, cedula, cont = 0, categoria, sb;
            double sal, fp, eps, st, ingresos, deducciones, sueldo;
            string proc;
            Console.WriteLine("ingrese la cantidad de personas a procesar");
            n = int.Parse(Console.ReadLine());
            {
                for (cont = 1; cont <= n; cont = cont + 1)

                    Console.WriteLine("Digite cedula: ");
                cedula = int.Parse(Console.ReadLine());
                Console.WriteLine("Digite numero de días trabajados: ");
                nt = int.Parse(Console.ReadLine());
                Console.WriteLine("Digite categoria 1,2,3:");
                switch (proc)
                {
                    case "a":
                        if (categoria == 1)
                        {
                            sb = 100;
                        }
                        else
                        {
                        }
                        break;
                    case "b":
                        if (categoria == 2)
                        {
                            sb = 200;
                        }
                        else
                        {
                        }
                        break;
                    case "c":
                        sb = 300;
                        break;

                }

                Console.WriteLine("El salario :");
                sal = (sb / 30) * nt;
                Console.WriteLine("El fondo de pensiones:");
                fp = sal * 0.03;
                Console.WriteLine("La eps: ");
                eps = sal * 0.05;
                Console.WriteLine("El subsidio de transporte:");

                if (categoria < 2)
                {
                    st = 50;
                }
                else
                {
                    st = 0;
                }
                Console.WriteLine("Los ingresos del empleado:");
                ingresos = sal + st;
                Console.WriteLine("Las deducciones son iguales a:");
                deducciones = fp + eps;
                Console.WriteLine("El sueldo es igual a:");
                sueldo = ingresos - deducciones;

                Console.ReadKey();

            }
        }
    }
}
:huh:
Jorge MB

Jorgitoh

El codigo lo copiaste tal cual?.

Como primer instancia tas abriendo una llave antes del For:

n = int.Parse(Console.ReadLine());
            {
                for (cont = 1; cont <= n; cont = cont + 1)

Fijate si arreglando eso se te solucionan los 3 errores y sino postea directamente la descripcion del error asi es mas facil ayudarte.

Saludos.

SLUGER

Yo uso VC# y Ademas de el error que jorgitoh te señalo a mi me aparece que es porque usas las varables locales no asignadas "proc", "categoria" y "sb" intenta asignarle un valor 0.
Ejemplo:
int categoria = 0, sb = 0;
string proc = "";

Jorgitoh

Ahora que lo veo de vuelta, con ayuda del comentario de arriba veo que falta lo fundamental del switch. Fijate que estas pidiendo que ingrese una categoria, pero luego esa categoria nunca la levantas. Ademas no se entiende muy bien el significado del proc frente a la categoria, ya que si levantas la categoria con el ReadLine para que vas a hacer un switch con el proc si podes hacerlo directamente con la categoria.

Fijate de agregar el ReadLine que te falta para luego realizar el switch. El error de arriba tambien es valido.

Saludos.

SLUGER

Cita de: Jorgitoh en 31 Mayo 2009, 03:57 AM
Ahora que lo veo de vuelta, con ayuda del comentario de arriba veo que falta lo fundamental del switch. Fijate que estas pidiendo que ingrese una categoria, pero luego esa categoria nunca la levantas. Ademas no se entiende muy bien el significado del proc frente a la categoria, ya que si levantas la categoria con el ReadLine para que vas a hacer un switch con el proc si podes hacerlo directamente con la categoria.

Fijate de agregar el ReadLine que te falta para luego realizar el switch. El error de arriba tambien es valido.

Saludos.
Tienes razon, ademas el codigo esta totalmente lleno de cosas inesezarias, por ejemplo los else's de esta parte:

if (categoria == 1)
                        {
                            sb = 100;
                        }
                        else
                        {
                        }
                        break;
                    case "b":
                        if (categoria == 2)
                        {
                            sb = 200;
                        }
                        else
                        {
                        }

El bucle debe ser haci, declarando la variable dentro del parentecis y aumentando con " ++ ":

                for (int cont = 1; cont <= n; cont++)


Los Console.WriteLine para que los pones? si ni muestra ni pide datos.
Console.WriteLine("El salario :");
                sal = (sb / 30) * nt;
                Console.WriteLine("El fondo de pensiones:");
                fp = sal * 0.03;
                Console.WriteLine("La eps: ");
                eps = sal * 0.05;
                Console.WriteLine("El subsidio de transporte:");

                if (categoria < 2)
                {
                    st = 50;
                }
                else
                {
                    st = 0;
                }
                Console.WriteLine("Los ingresos del empleado:");
                ingresos = sal + st;
                Console.WriteLine("Las deducciones son iguales a:");
                deducciones = fp + eps;
                Console.WriteLine("El sueldo es igual a:");
                sueldo = ingresos - deducciones;


Haces un switch de una variable vacia y creo que son todos.

salu2, SLUGER

joalbela

Jorge MB