Sie sind auf Seite 1von 5

Practica_2 NET: Introduccin a C#

Introduccin a C#: Manejo de Excepciones, Conversiones de tipo


Objetivos

Crear un programa C#, Compilar y ejecutar un programa C#


Usar el Visual Studio Debugger
Aadir tratamiento de excepciones a un programa C#, y estudiar la conversin de tipos

Desarrollo:
Ejercicio 1: Crear un programa C# simple
Se escribir un programa C#. El programa preguntar cmo por un nombre y luego le saludar por
este nombre.
Cmo crear una nueva aplicacin C# de consola
1. Levantar Microsoft Visual Studio .NET
2. Men Archivo/Nuevo/Proyecto
3. Tipo de proyecto: Visual C#. Plantillas: Aplicacin de consola
4. Nombre: Practica_2a
5. Escribir la ubicacin deseada para el proyecto en el cuadro Ubicacin
6. Cambiar el nombre de la clase a Saludar
7. Guardar el proyecto.
Cmo escribir instrucciones para preguntar y saludar al usuario
1. Insertar la siguiente lnea en el mtodo Main despus de los comentarios (si los hizo)
string miNombre;
2. Escribir una instruccin que pregunte el nombre a los usuarios.
3. Escribir otra instruccin que lea la respuesta del usuario desde el teclado y la asigne al string
miNombre
4. Aadir otra instruccin que imprima Hola, miNombre en pantalla, donde miNombre es
el nombre escrito por el usuario
5. Una vez terminado, el mtodo Main debe contener lo siguiente:

static void Main(string[] args)


{
string miNombre;
Console.Write("Escriba su nombre: ");
miNombre = Console.ReadLine();
Console.WriteLine("Hola {0}", miNombre);
}
6. Qu pasa si se elimina {0}?, Para qu sirve?
7. Guardar
Compilar y ejecutar
1. Men Generar/Generar solucin (o pulsar CTRL+SHIFT+B)
2. Corregir los posibles errores de compilacin y volver a compilar si es necesario.
3. Men Depurar/Iniciar sin depurar (o pulsar CTRL+F5)
4. En la ventana de consola que se abrir, escribir el nombre, pulsar Enter
5. Despus de ver el saludo, pulsar una tecla cuando aparezca el mensaje Pulse cualquier tecla
para continuar

Desarrollo de Aplicaciones para Internet PIIC101 Advance 2012

1 de 5

Practica_2 NET: Introduccin a C#


Ejercicio 2: Agregar manejo de excepciones
Se escribir un programa que utiliza manejo de excepciones para capturar errores inesperados en
tiempo de ejecucin. El programa pide al usuario dos valores enteros, divide el primero por el
segundo y muestra el resultado
Crear un nuevo programa C#
1. Levantar Visual Studio .NET si no se est ejecutando.
2. Men Archivo/Nuevo/proyect0
8. Tipo de proyecto: Visual C#. Plantillas: Aplicacin de consola
3. Nombre: Practica_2b
4. Escribir la ubicacin deseada para el proyecto en el cuadro Ubicacin
5. Cambiar el nombre de la clase a Dividir
6. Guardar el proyecto.
Escribir instrucciones para pedir dos enteros al usuario
1. En el mtodo Main, escribir una instruccin que pida al usuario el primer entero.
2. Escriba otra instruccin que lea la respuesta del usuario desde el teclado y la asigne a una
variable llamada temp de tipo string.
3. Aadir la siguiente instruccin para convertir el valor de la cadena de temp en un entero y
almacenar el resultado en i:
int i = Int32.Parse(temp);
4. Aadir al cdigo instrucciones para:
a. Pedir al usuario el segundo entero.
b. Leer la respuesta del usuario desde el teclado y asignarla a temp
c. Convertir el valor de temp en un entero y almacenar el resultado en j
El cdigo debera ser parecido al siguiente:

Console.Write("Numerador: ");
string temp = Console.ReadLine( );
int i = Int32.Parse(temp);
Console.Write("Denominador: ");
temp = Console.ReadLine( );
int j = Int32.Parse(temp);
5. Grabar
Cmo dividir el primer entero por el segundo y mostrar el resultado
1. Crear una nueva variable entera k que reciba el valor resultante de dividir i entre j, e insrtelo
al final del mtodo anterior. El cdigo debera ser:

int k = i / j;
6. Agregar una sentencia para mostrar el valor de k.
7. Grabar

Desarrollo de Aplicaciones para Internet PIIC101 Advance 2012

2 de 5

Practica_2 NET: Introduccin a C#


Cmo probar el programa
1. Men Depurar/Iniciar sin depurar (o pulsar CTRL+F5)
2. Escribir 10 como valor del primer entero y pulsar INTRO
3. Escribir 5 como valor del segundo entero y pulsar INTRO
4. Comprobar que el valor de k es 2
5. Pulsar CTRL+F5 para volver a ejecutar el programa
6. Escribir 10 como valor del primer entero y pulsar INTRO.
7. Escribir 0 como valor del segundo entero y pulsar INTRO.
8. El programa provoca el lanzamiento de una excepcin (divisin por cero).
9. Pulsar No para que desaparezca el cuadro de dilogo de la depuracin Just-in-Time
Cmo aadir tratamiento de excepciones al programa
1. Poner el cdigo del mtodo Main dentro de un bloque try:

try
{
Console.WriteLine (...);
...
int k = i / j;
Console.WriteLine(...);
}
2. Aadir al Main una instruccin catch despus del bloque try. La instruccin catch tiene que
imprimir un mensaje corto:

catch(Exception e){
Console.WriteLine("Excepcin lanzada: {0}" , e);
}
...
3. Grabar
Cmo mostrar los decimales que resultan de la divisin
1. Se debe hacer un cast: forzar a una variable de un tipo a que se comporte como si fuera de
otro tipo

float k = (float)i / j;
2. Se debe cambiar el tipo de k que recibe el resultado de la divisin. Ahora es float
3. Se hace un cast al tipo float, ya sea al numerador o al denominador.
4. Al efectuar la operacin, se visualiza la parte decimal.
Cmo probar el cdigo para tratamiento de excepciones
1. Pulsar CTRL+F5 para volver a ejecutar el programa
5. Escribir 10 como valor del primer entero y pulsar INTRO
6. Escribir 0 como valor del segundo entero y pulsar INTRO
7. El programa sigue provocando el lanzamiento de una excepcin (divisin por cero), pero esta
vez el error es capturado y aparece el mensaje

Desarrollo de Aplicaciones para Internet PIIC101 Advance 2012

3 de 5

Practica_2 NET: Introduccin a C#


Ejercicio 3: Conversin de tipos y manejo de excepciones
1. Crear una nueva aplicacin de consola, llamada Practica_2c
2. Crear una estructura de de captura de distintas excepciones, de la siguiente forma:

try
{
// Pide el numerador
// Numerador, de string a decimal
// Pide el denominador
// Denominador, de string a decimal
// Operacin de division
}
catch (DivideByZeroException err){
Console.WriteLine("No se puede dividir por cero - " +
err.Message);
}
catch (InvalidCastException err){
Console.WriteLine("Entrada Invalida - " + err.Message);
}
catch (Exception err){
Console.WriteLine("No se puede realizar la operacion - "
+ err.Message);
}
La estructura soporta 3 tipos de excepciones. Error al dividir por cero, error de casting
(conversin de tipo) u otro tipo de error. Adems de mostrar un mensaje, muestra la
propiedad Message del objeto Exception capturado, que brinda informacin Amistosa al
usuario sobre el error.
3. Pedir al usuario el ingreso del numerador. Console.ReadLine() devuelve un string, este debe
ser transformado luego a decimal, utilizando Decimal.Parse().

Console.Write("Numerador: ");
string usrInput = Console.ReadLine();
decimal numerador = Decimal.Parse(usrInput);
4. Pedir el numerador y el denominador
5. Realizar la divisin, guardando el valor en una variable resultado que luego ser mostrada
junto a un mensaje, de la siguiente forma:

decimal resultado = numerador / denominador;


Console.WriteLine();
Console.WriteLine(numerador.ToString("0.00") + " / " +
denominador.ToString("0.00") + " = ");
Console.WriteLine(resultado.ToString("0.00"));
Observar que el resultado se pasa a string, indicando la cantidad de decimales con los que se
debe mostrar.
Desarrollo de Aplicaciones para Internet PIIC101 Advance 2012

4 de 5

Practica_2 NET: Introduccin a C#


6. Finalmente, incluir todo el bloque de cdigo en un ciclo do while, que de la opcin de
ejecutar otro clculo
7. Ejecutar la aplicacin. Ingresar valores correctamente. Luego generar dos excepciones: Una
intentando dividir por cero, la otra ingresando una cadena de texto no vlida, es decir que no
sea numrica. Observar los mensajes. Luego entrar en modo debugging, y observar el objeto
excepcin.
8. Para lograr una excepcin de casting, se deben realizar unas modificaciones en el cdigo. Para
generar la divisin, reemplazar el cdigo por el siguiente

object resultado = numerador / denominador;


Console.WriteLine();
Console.WriteLine(numerador.ToString("0.00") + " / " +
denominador.ToString("0.00") + " = ");
Console.WriteLine((string)resultado);
Al dividir se obtiene un decimal, que se est guardando en una variable del tipo object, luego,
si se intenta hacer casting del resultado a string, esto arroja un error de InvalidCast. Probar el
cdigo. El error no se generar en tiempo de compilacin, sino en tiempo de ejecucin.
9. Para lograr que el cdigo anterior sea correcto, en lugar de hacer casting del resultado a
string, hacerlo a decimal, al ejecutar la aplicacin el resultado ser el correcto.

Desarrollo de Aplicaciones para Internet PIIC101 Advance 2012

5 de 5

Das könnte Ihnen auch gefallen