elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Una pequeña ayudita :)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Una pequeña ayudita :)  (Leído 2,969 veces)
yrrtni

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Una pequeña ayudita :)
« en: 25 Octubre 2008, 14:52 pm »

He estado tratando de aprender C# a mi propia cuenta a traves de manuales que he encontrado en internet. Bueno ahorita estoy en el capitulo #4 de un libro que me habla de sentencias ifs,while,switches,etc. Entonces uno de los ejercicios me pide lo siguiente:

"El programa debe recibir como entrada dos valores:
año: entero, es el año
Dia:  entero, es el dia del año, contando desde el primero de enero del año indicado en la variable  año, validar que se ingrese un día entre 1 y 365 o entre 1 y 366 si es bisiesto.

Proceso: Calcular el mes del año en que se encuentra el día indicado por la variable "Dia", y también calcular a que día del mes corresponde. Tomar en cuenta los años bisiestos.

Salida:
1-Dia del mes en que se encuentra
2-Nombre del Mes en que se encuentra el dia indicado

=======================================
Ejemplo:
Entrada:  año=2008, Dia=100
Salida:    9 de Abril
=======================================

Ayuda: Un año es bisiesto si se cumplen las dos condiciones siguientes:
1- Es divisible por 4.
2- Es no divisible por 100, o es divisible por 400."

Entonces yo lo logre hacer pero con muchas ifs anidadas :S mi programa es el siguiente:

Código:
namespace Calendario
{
    class Program
    {
        static void Main(string[] args)
        {
            int año, dia, x, y;/*La variable x se utiliza para calcular los dias de los meses
                                La variable y toma el valor del dia*/

            Console.WriteLine("Por favor ingrese el año: ");
            año = Convert.ToInt32(Console.ReadLine());
            if ((año % 4 == 0 && año % 100 != 0) || año % 400 == 0)//Se calcula si el año es bisiesto
            {
           
                Console.WriteLine("Por favor ingrese el dia a evaluar: ");
                dia = Convert.ToInt32(Console.ReadLine());
           
                if ((dia >= 1 && dia <= 366))
                {
                    if (dia >= 1 && dia <= 31)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        Console.WriteLine("Salida: {0} de Enero", dia);
                        Console.Read();
                    }
                    if (dia > 31 && dia <= 60)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 31;
                        Console.WriteLine("Salida: {0} de Febrero", x);
                        Console.Read();
                    }
                    if (dia > 60 && dia <= 91)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 60;
                        Console.WriteLine("Salida: {0} de Marzo", x);
                        Console.Read();
                    }
                    if (dia > 91 && dia <= 121)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y-91;
                        Console.WriteLine("Salida: {0} de Abril", x);
                        Console.Read();
                    }
                    if (dia > 121 && dia <= 152)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y-121;
                        Console.WriteLine("Salida: {0} de Mayo", x);
                        Console.Read();
                     }
                    if (dia > 152 && dia <= 182)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 152;
                        Console.WriteLine("Salida: {0} de Junio", x);
                        Console.Read();
                     }
                    if (dia > 182 && dia <= 213)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 182;
                        Console.WriteLine("Salida: {0} de Julio", x);
                        Console.Read();
                     }
                    if(dia>213 && dia<=244)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 213;
                        Console.WriteLine("Salida: {0} de Agosto", x);
                        Console.Read();
                    }
                    if(dia>244 && dia<=274)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 244;
                        Console.WriteLine("Salida: {0} de Septiembre", x);
                        Console.Read();
                    }
                    if(dia>274 && dia<=305)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 274;
                        Console.WriteLine("Salida: {0} de Octubre", x);
                        Console.Read();
                    }
                    if(dia>305 && dia<=335)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 305;
                        Console.WriteLine("Salida: {0} de Noviembre", x);
                        Console.Read();
                    }
                    if(dia>335 && dia<=366)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 335;
                        Console.WriteLine("Salida: {0} de Diciembre", x);
                        Console.Read();
                    }
                }
                else
                {
                    Console.Clear();
                    Console.WriteLine("El dia ingresado es incorrecto");
                    Console.Read();
                }


            }
            else
            {
           
                Console.WriteLine("Por favor ingrese el dia a evaluar: ");
                dia = Convert.ToInt32(Console.ReadLine());
                if ((dia >= 1 && dia <= 365))
                {
                    if (dia >= 1 && dia <= 31)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        Console.WriteLine("Salida: {0} de Enero", dia);
                        Console.Read();
                    }
                    if (dia > 31 && dia <= 59)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 31;
                        Console.WriteLine("Salida: {0} de Febrero", x);
                        Console.Read();
                    }
                    if (dia > 59 && dia <= 90)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 59;
                        Console.WriteLine("Salida: {0} de Marzo", x);
                        Console.Read();
                    }
                    if (dia > 90 && dia <= 120)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 90;
                        Console.WriteLine("Salida: {0} de Abril", x);
                        Console.Read();
                    }
                    if (dia > 120 && dia <= 151)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 120;
                        Console.WriteLine("Salida: {0} de Mayo", x);
                        Console.Read();
                    }
                    if (dia > 151 && dia <= 181)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 151;
                        Console.WriteLine("Salida: {0} de Junio", x);
                        Console.Read();
                    }
                    if (dia > 181 && dia <= 212)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 181;
                        Console.WriteLine("Salida: {0} de Julio", x);
                        Console.Read();
                    }
                    if (dia > 212 && dia <= 243)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 212;
                        Console.WriteLine("Salida: {0} de Agosto", x);
                        Console.Read();
                    }
                    if (dia > 243 && dia <= 273)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 243;
                        Console.WriteLine("Salida: {0} de Septiembre", x);
                        Console.Read();
                    }
                    if (dia > 273 && dia <= 304)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 273;
                        Console.WriteLine("Salida: {0} de Octubre", x);
                        Console.Read();
                    }
                    if (dia > 304 && dia <= 334)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 304;
                        Console.WriteLine("Salida: {0} de Noviembre", x);
                        Console.Read();
                    }
                    if (dia > 334 && dia <= 365)
                    {
                        Console.Clear();
                        Console.WriteLine("Entrada: Año {0} , Dia {1}", año, dia);
                        y = dia;
                        x = y - 334;
                        Console.WriteLine("Salida: {0} de Diciembre", x);
                        Console.Read();
                    }

                }
                else
                {
                    Console.Clear();
                    Console.WriteLine("El dia ingresado es incorrecto");
                    Console.Read();
                 
                }
            }
            Console.Read();

        }
    }
}

Como pueden ver si me hizo enorme >.< tons la ayuda que pido es que si por favor alguien me pasa eso a manera de switch(me imagino que el codigo se hace mas pequeño) O alguna sugerencia para hacerlo mas pequeño. Agradezco la ayuda de todos de antemano.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pequeña ayudita porfavor (threads/hilos) :)
Programación C/C++
Thorn14 7 3,746 Último mensaje 10 Enero 2014, 08:24 am
por Thorn14
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines