Sei sulla pagina 1di 12

PROGRAMACIÓN NET I

02/Marzo/2020.
UNaDM.
Ing. En Desarrollo De software

DS-DPRN1-2001-B1-002

Programación net I
Unidad 2.

ACTIVIDAD 2: Detección de errores en un programa en C#

Matricula: ES1822036710

Copyright © 2020

3 de marzo de 2020 1
PROGRAMACIÓN NET I

Contenido
ACTIVIDAD 2 (Detección de errores en un programa en C#) ............................................................ 3
Errores de funcionamiento y analízalos. ........................................................................................... 4
Dos ejecuciones del programa funcionando (ventanas de la consola): ........................................... 8
Concluciones: .................................................................................................................................... 11
Referencias: ...................................................................................................................................... 12

3 de marzo de 2020 2
PROGRAMACIÓN NET I

ACTIVIDAD 2 (Detección de errores en un programa en C#)


Indicaciones de la actividad 1. Lee y analiza detenidamente el siguiente código, ingrésalo a C# sin
cambio alguno y ejecútalo.

3 de marzo de 2020 3
PROGRAMACIÓN NET I

Errores de funcionamiento y analízalos.


Grave Códi Descripción Proyecto Archivo Lín Estad
dad go ea o
supri
mido
Error CS0 'estudiante.ObtenerNombr Deteccion C:\Users\KAYN\Desktop\Progrt 8 Activo
161 eCompleto(string, string)': Errores amacion Net\Programas
no todas las rutas de NET\DeteccionErrores\Deteccio
acceso de código nErrores\Program.cs
devuelven un valor
Error CS0 El nombre Deteccion C:\Users\KAYN\Desktop\Progrt 15 Activo
103 'fechaNacimiento' no existe Errores amacion Net\Programas
en el contexto actual NET\DeteccionErrores\Deteccio
nErrores\Program.cs
Error CS0 El nombre Deteccion C:\Users\KAYN\Desktop\Progrt 16 Activo
103 'fechaNacimiento' no existe Errores amacion Net\Programas
en el contexto actual NET\DeteccionErrores\Deteccio
nErrores\Program.cs
Error CS0 El nombre 'edad' no existe Deteccion C:\Users\KAYN\Desktop\Progrt 17 Activo
103 en el contexto actual Errores amacion Net\Programas
NET\DeteccionErrores\Deteccio
nErrores\Program.cs
Error CS0 No se puede convertir Deteccion C:\Users\KAYN\Desktop\Progrt 32 Activo
029 implícitamente el tipo Errores amacion Net\Programas
'string' en 'double' NET\DeteccionErrores\Deteccio
nErrores\Program.cs
Error CS7 No se ha dado ningún Deteccion C:\Users\KAYN\Desktop\Progrt 34 Activo
036 argumento que Errores amacion Net\Programas
corresponda al parámetro NET\DeteccionErrores\Deteccio
formal requerido 'nombre' nErrores\Program.cs
de
'estudiante.ObtenerNombr
eCompleto(string, string)'
Error CS0 No se puede convertir Deteccion C:\Users\KAYN\Desktop\Progrt 37 Activo
029 implícitamente el tipo Errores amacion Net\Programas
'double' en NET\DeteccionErrores\Deteccio
'System.DateTime' nErrores\Program.cs
Error CS0 Se requiere una referencia Deteccion C:\Users\KAYN\Desktop\Progrt 38 Activo
120 de objeto para el campo, Errores amacion Net\Programas
método o propiedad NET\DeteccionErrores\Deteccio
'estudiante.CalcularEdad(D nErrores\Program.cs
ateTime)' no estáticos

3 de marzo de 2020 4
PROGRAMACIÓN NET I

Errores Detectados 8:
Estos errores son causados por no escribir el código correctamente e
interactuando con metodos diferentes que no son compatibles con lo que se desea
ejecutar.
1.- Error public string no devuelve la ruta de acceso por lo cual no hay datos
definidos que devuelven el mismo por un “return”
2.-Error DateTime el cual no devuelve un parámetro y no determina la edad por
tipo de código anexado después el cual no tiene función alguna solo se corrige
con el mismo “return”.
3.- 'fechaNacimiento' no existe al ejecutar el programa pues el código es incorrecto
(FechaNacimiento) cambiando “F” o se podría crear una variable más, pero este
se repara al usar el arreglo del error anterior.
4.- El nombre 'edad' no existe en el contexto actual en el código innecesario se
puede usar la variable edadEstudiante si embargo no es necesario.
5.- los tipos de 'string' en 'double' no se convierten dado que uno es una cadena
de caracteres y double es numero decimal.
6.- Los parámetros formales requeridos 'nombre' de 'estudiante.
ObtenerNombreCompleto (string, string)' faltando entre los paréntesis el (nombre,
apellidos); para devolver estos datos en pantalla.
7.- es un error parecido al error 5 pues no dato de tipo DateTime no puede ser un
double ya que uno es para fechas y otro numérico decimal.
8.- Error 'estudiante. Calcular Edad(DateTime)' no es estático lo cual es un error
que falta de código incluyendo Console.WriteLine.

3 de marzo de 2020 5
PROGRAMACIÓN NET I

3. Detecta en que línea o líneas está el problema. Una vez detectados los errores, modifica hasta
que funcione correctamente.

3 de marzo de 2020 6
PROGRAMACIÓN NET I

using System;

namespace DeteccionErrores
{

class estudiante
{
public string ObtenerNombreCompleto(string nombre, string apellidos)//El
error de public string es que es requeria un "return" para devolver datos.
{
string nombreCompleto = string.Empty;
nombreCompleto = nombre + " " + apellidos;
return nombreCompleto;
}
public int CalcularEdad(DateTime FechaNacimiento)
{
int edadEstudiante = DateTime.Now.Year - FechaNacimiento.Year;
return edadEstudiante; //para calcular la edad solo requiere el dato de
fecha y el "return" para devolver dato.
//int edadCalcular = DateTime.Now <
FechaNacimiento.AddYears(edadEstudiante) ? edadEstudiante - 1 :
edadEstudiante;*****Estas lineas de codigo son inaccesdibles o inecesarias para
regresar un dato de tipo string
//Console.WriteLine("La edad del estudiante es:" + edadEstudiante +
"años"); Ya que cad cada metodo realiza funciones en conjunto para calcular la edad
y eso se puede declarar en la clase.
}

class Program
{
static void Main(string[] args)
{
estudiante alumno = new estudiante();
string nombre, apellidos; //los datos de tipo cadena-caracter no
pueden ser del tipo numero double solo se cambia a un solo string separado por
comas.
DateTime fechaNac;

Console.WriteLine("Capture el nombre del alumno:");


nombre = Console.ReadLine();
Console.WriteLine("Capture los apellidos de lalumno:");
apellidos = Console.ReadLine();//el error se corrigue al cambiar
double por string

Console.WriteLine(alumno.ObtenerNombreCompleto(nombre,
apellidos));//este error se corrige al ingresar parametros"nombre, apellidos" dentro
de los paréntesis.

Console.WriteLine("Indique la fecha de nacimiento (dd/mm/aa):");


fechaNac = Convert.ToDateTime(Console.ReadLine()) ;//este error se
cambia el "ToDouble" por "ToDateTime" ya que es un dato de fecha y no numérico
Console.WriteLine("La Edad Del Estudiante Es " +
alumno.CalcularEdad(fechaNac) + " Años");//este código estaba incompleto pues no
regresaba ningún dato con solo tener "CalcularEdad(fechaNac)";

3 de marzo de 2020 7
PROGRAMACIÓN NET I

Console.ReadKey();
}
}
}
}

Dos ejecuciones del programa funcionando (ventanas de la consola):

3 de marzo de 2020 8
PROGRAMACIÓN NET I

3 de marzo de 2020 9
PROGRAMACIÓN NET I

3 de marzo de 2020 10
PROGRAMACIÓN NET I

Concluciones:
En el código que podría generar más de un error se podría tratar como una
excepción pero los errores detectados son reparados modificando el código y
complementándolo con un informe de errores que recibiremos nos dará la
siguiente información:
- Mensaje de error que emite el sistema
- Aplicación que generó el error
- Pila de llamadas
- Método (o manejador de evento) que generó el error

3 de marzo de 2020 11
PROGRAMACIÓN NET I

Referencias:
Docs.microsoft.com. (2020). Procedimiento para detectar errores de análisis (C#). [online] Available
at: https://docs.microsoft.com/es-es/dotnet/csharp/programming-guide/concepts/linq/how-to-catch-
parsing-errors [Accessed 6 Mar. 2020].

Docs.microsoft.com. (2020). Herramientas y técnicas de depuración - Visual Studio. [online]


Available at: https://docs.microsoft.com/es-es/visualstudio/debugger/write-better-code-with-visual-
studio?view=vs-2019 [Accessed 6 Mar. 2020].

Docs.microsoft.com. (2020). Corregir los errores del programa y mejorar el código - Visual Studio.
[online] Available at: https://docs.microsoft.com/es-es/visualstudio/ide/find-and-fix-code-
errors?view=vs-2019 [Accessed 6 Mar. 2020].

Docs.microsoft.com. (2020). Tipos de error - Visual Basic. [online] Available at:


https://docs.microsoft.com/es-es/dotnet/visual-basic/programming-guide/language-features/error-
types [Accessed 6 Mar. 2020].

Formacion.masterdevs.es. (2020). Aprende Programación C# con Visual Studio desde cero..


[online] Available at: https://formacion.masterdevs.es/p/programacion-visual-
studio?src=googleads&gclid=Cj0KCQiAhojzBRC3ARIsAGtNtHV5HRhT-
JM5NYrmJgc5r2lQCeu_8I2L9FmaODLdd4e6B9zgqA3ce9EaAjJUEALw_wcB [Accessed 6 Mar.
2020].

3 de marzo de 2020 12

Potrebbero piacerti anche