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 '[Link] 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\[Link]
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\[Link]
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\[Link]
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\[Link]
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\[Link]
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\[Link]
de
'[Link]
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
'[Link]' nErrores\[Link]
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
'[Link](D nErrores\[Link]
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 [Link].
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 = [Link];
nombreCompleto = nombre + " " + apellidos;
return nombreCompleto;
}
public int CalcularEdad(DateTime FechaNacimiento)
{
int edadEstudiante = [Link] - [Link];
return edadEstudiante; //para calcular la edad solo requiere el dato de
fecha y el "return" para devolver dato.
//int edadCalcular = [Link] <
[Link](edadEstudiante) ? edadEstudiante - 1 :
edadEstudiante;*****Estas lineas de codigo son inaccesdibles o inecesarias para
regresar un dato de tipo string
//[Link]("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;
[Link]("Capture el nombre del alumno:");
nombre = [Link]();
[Link]("Capture los apellidos de lalumno:");
apellidos = [Link]();//el error se corrigue al cambiar
double por string
[Link]([Link](nombre,
apellidos));//este error se corrige al ingresar parametros"nombre, apellidos" dentro
de los paréntesis.
[Link]("Indique la fecha de nacimiento (dd/mm/aa):");
fechaNac = [Link]([Link]()) ;//este error se
cambia el "ToDouble" por "ToDateTime" ya que es un dato de fecha y no numérico
[Link]("La Edad Del Estudiante Es " +
[Link](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
[Link]();
}
}
}
}
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:
[Link]. (2020). Procedimiento para detectar errores de análisis (C#). [online] Available
at: [Link]
parsing-errors [Accessed 6 Mar. 2020].
[Link]. (2020). Herramientas y técnicas de depuración - Visual Studio. [online]
Available at: [Link]
studio?view=vs-2019 [Accessed 6 Mar. 2020].
[Link]. (2020). Corregir los errores del programa y mejorar el código - Visual Studio.
[online] Available at: [Link]
errors?view=vs-2019 [Accessed 6 Mar. 2020].
[Link]. (2020). Tipos de error - Visual Basic. [online] Available at:
[Link]
types [Accessed 6 Mar. 2020].
[Link]. (2020). Aprende Programación C# con Visual Studio desde cero..
[online] Available at: [Link]
studio?src=googleads&gclid=Cj0KCQiAhojzBRC3ARIsAGtNtHV5HRhT-
JM5NYrmJgc5r2lQCeu_8I2L9FmaODLdd4e6B9zgqA3ce9EaAjJUEALw_wcB [Accessed 6 Mar.
2020].
3 de marzo de 2020 12