SlideShare uma empresa Scribd logo
1 de 20
DEPURACIÓN DE UN PROGRAMA
EN C++
Material apoyo de ProgramaciónAvanzada
Introducción
 Rara vez los programas funcionan bien la
primera vez que se ejecutan.
 Los errores que se producen en los programas
han de ser detectados, aislados y corregidos.
 El proceso de encontrar errores se denomina
“depuración” del programa.
01/09/2015 2Mtl. Lourdes Cahuich
 La corrección del error es probablemente la
etapa más fácil, siendo la detección y
aislamiento del error las tareas más difíciles.
01/09/2015 3Mtl. Lourdes Cahuich
01/09/2015 4Mtl. Lourdes Cahuich
Errores posibles
 Existen diferentes situaciones en las cuales se
suelen introducir errores en un programa:
1. Violación (no cumplimiento) de las reglas
gramaticales del lenguaje de programación
2. Los errores en el diseño del algoritmo en el que
está basado el programa.
 Aquí describiremos los errores más comunes
y sugerir posibles causas de error.
01/09/2015 5Mtl. Lourdes Cahuich
Errores de sintaxis
 Los errores de sintaxis son aquellos que se
producen cuando el programa violan las
reglas de gramática del lenguaje.
 Errores de sintaxis típicos son:
 Escritura incorrecta de palabras reservadas
 Omisión de signos de puntuación (comillas, punto
y coma…)
 Los errores de sintaxis son los más fáciles de
ubicar, ya que son detectados y aislados por
el compilador.
01/09/2015 6Mtl. Lourdes Cahuich
Errores más comunes de
sintaxis
 Puntos y comas después de la cabecera “main()”
 Olvido del carácter llave de apertura o cierre ({,})
 Omisión de puntos y coma al final de una
sentencia
 Olvido de la doble barra inclinada antes de un
comentario
 Olvido de las dobles comillas al cerrar una
cadena.
 Etc.
01/09/2015 7Mtl. Lourdes Cahuich
Errores lógicos
 Estos son errores del programador en el
diseño del algoritmo y posterior programa.
 Los errores lógicos son más difíciles de
encontrar y aislar, ya que no suelen ser
detectados por el compilador.
01/09/2015 8Mtl. Lourdes Cahuich
Ejemplo
 Observa la siguiente línea de código
total_grados_celsius=fahrenheit_a_celsius * temperatura_cel;
 Es una sentencia perfectamente legal en C++ pero la
ecuación no responde a ningún cálculo válido para
obtener el total de grados Celsius en una sala.
01/09/2015 9Mtl. Lourdes Cahuich
Errores lógicos
 Se pueden detectar errores lógicos
comprobando el programa en su totalidad,
comprobando su salida con los resultados
previstos.
 Se pueden prevenir errores con un estudio
detallado del algoritmo antes de que el
programa se ejecute.
01/09/2015 10Mtl. Lourdes Cahuich
Errores lógicos
 Una vez que se ha determinado que un
programa contiene un error lógico, encontrar
el error es una de las tareas más difíciles de la
programación.
 El depurador (debugger), es un programa
diseñado para la detección, verificación y
corrección de errores.
01/09/2015 11Mtl. Lourdes Cahuich
Errores de regresión
 Estos errores se crean accidentalmente
cuando se intenta corregir un error lógico.
 Siempre que se corrige un error se debe
comprobar totalmente la exactitud
(corrección) para asegurarse que se fija el
error que se está tratado y no produce otro
error.
01/09/2015 12Mtl. Lourdes Cahuich
Errores de regresión
 Los errores de regresión son comunes, pero
son fáciles de leer y corregir.
 Una ley no escrita es que: “un error se ha
producido, probablemente, por el último
código modificado”
01/09/2015 13Mtl. Lourdes Cahuich
Mensajes de error
 Los compiladores emiten mensajes de error durante
las fases de compilación, de enlace o de ejecución
del programa.
 Se agrupan en tres bloques:
1. Errores fatales. Pueden indicar un error interno del
compilador, la compilación se detiene
inmediatamente
2. Errores de sintaxis. Errores típicos de sintaxis,
errores de línea de órdenes y errores de acceso a
memoria o disco.
3. Advertencias. No impiden la compilación, indican
condiciones sospechosas pero legítimas como parte
del lenguaje.
01/09/2015 14Mtl. Lourdes Cahuich
Errores en tiempo de
ejecución
 Los errores de ejecución se deben,
normalmente, a un error en el algoritmo que
resuelve el problema.
 Un ejemplo típico es una división de enteros
cuyo código está bien escrito, pero si el
divisor es cero, se produce un error de
ejecución “fatal” que detiene el programa.
01/09/2015 15Mtl. Lourdes Cahuich
Tipos de errores de
ejecución
 Aquellos que son detectados por el sistema
en tiempo de ejecución del programa C++
 y aquellos que permiten la terminación del
programa pero producen resultados
incorrectos
01/09/2015 16Mtl. Lourdes Cahuich
 Un error en tiempo de ejecución puede tener
como resultado que el programa obligue a la
computadora a realizar una operación ilegal
tal como dividir un número por cero o
manipular datos no válidos o no definidos.
 Cuando ocurre este tipo de error, la
computadora detendrá la ejecución de su
programa y emitirá (visualizará) un mensaje
de error
 Divide error, line number…
01/09/2015 17Mtl. Lourdes Cahuich
 Si se intenta manipular datos no válidos o
indefinidos, su salida puede contener
resultados extraños.
 Se puede producir un “desbordamiento
aritmético” cuando un programa intenta
almacenar un número que es mayor que el
tamaño máximo que puede manipular su
computadora.
01/09/2015 18Mtl. Lourdes Cahuich
Escribe y ejecuta el siguiente
código
01/09/2015 19Mtl. Lourdes Cahuich
¿Qué sucede?
 ¿Qué resultado produce?
 ¿Da el mismo resultado?
 ¿Genera algún error?
 ¿Cuál es el error en el código?
01/09/2015 20Mtl. Lourdes Cahuich

Mais conteúdo relacionado

Mais procurados

Generaciones de los lenguajes de programacion pptx
Generaciones de los lenguajes de programacion pptxGeneraciones de los lenguajes de programacion pptx
Generaciones de los lenguajes de programacion pptxyenicamejo
 
Taller Scrum 3 conclusiones
Taller Scrum 3 conclusionesTaller Scrum 3 conclusiones
Taller Scrum 3 conclusionesVerónica Vera
 
Microprocesador
MicroprocesadorMicroprocesador
Microprocesadorsammyrasam
 
Herramientas para el mantenimiento de software
Herramientas para el mantenimiento de software Herramientas para el mantenimiento de software
Herramientas para el mantenimiento de software Martin Mtz Ü
 
Clase10 ejemplos asm con tasm y tlink
Clase10 ejemplos asm con tasm y tlinkClase10 ejemplos asm con tasm y tlink
Clase10 ejemplos asm con tasm y tlinkInfomania pro
 
Fallas y soluciones comunes del computador
Fallas y soluciones comunes del computador Fallas y soluciones comunes del computador
Fallas y soluciones comunes del computador stefamika
 
Gestiona informacion mediante software en linea
Gestiona informacion mediante software en lineaGestiona informacion mediante software en linea
Gestiona informacion mediante software en lineabautister
 
Diagramas de flujo de problemas de hardware
Diagramas de flujo de problemas de hardwareDiagramas de flujo de problemas de hardware
Diagramas de flujo de problemas de hardwarecristian favela
 
Introducción a los sistemas de cómputo
Introducción a los sistemas de cómputoIntroducción a los sistemas de cómputo
Introducción a los sistemas de cómputoMedardoPerez
 
208812010 soporte-tecnico-a-distancia
208812010 soporte-tecnico-a-distancia208812010 soporte-tecnico-a-distancia
208812010 soporte-tecnico-a-distanciaRichard Tex Tex
 
Manual de fallas y soluciones de un equipo de computo
Manual de fallas y soluciones de un equipo de computoManual de fallas y soluciones de un equipo de computo
Manual de fallas y soluciones de un equipo de computoVíctor Cabrera Zumaya
 
Unidad 2 concepto de Programa,Proceso y Procesador
Unidad 2  concepto de Programa,Proceso y ProcesadorUnidad 2  concepto de Programa,Proceso y Procesador
Unidad 2 concepto de Programa,Proceso y ProcesadorMario Alberto Antonio Lopez
 
Software de programación
Software de programaciónSoftware de programación
Software de programaciónPaulina Santana
 
Versiones de Linux
Versiones de LinuxVersiones de Linux
Versiones de LinuxXi Houlang
 
Tipos de software
Tipos  de softwareTipos  de software
Tipos de softwareEIYSC
 

Mais procurados (20)

Generaciones de los lenguajes de programacion pptx
Generaciones de los lenguajes de programacion pptxGeneraciones de los lenguajes de programacion pptx
Generaciones de los lenguajes de programacion pptx
 
Taller Scrum 3 conclusiones
Taller Scrum 3 conclusionesTaller Scrum 3 conclusiones
Taller Scrum 3 conclusiones
 
Microprocesador
MicroprocesadorMicroprocesador
Microprocesador
 
Herramientas para el mantenimiento de software
Herramientas para el mantenimiento de software Herramientas para el mantenimiento de software
Herramientas para el mantenimiento de software
 
Clase10 ejemplos asm con tasm y tlink
Clase10 ejemplos asm con tasm y tlinkClase10 ejemplos asm con tasm y tlink
Clase10 ejemplos asm con tasm y tlink
 
Fallas y soluciones comunes del computador
Fallas y soluciones comunes del computador Fallas y soluciones comunes del computador
Fallas y soluciones comunes del computador
 
Gestiona informacion mediante software en linea
Gestiona informacion mediante software en lineaGestiona informacion mediante software en linea
Gestiona informacion mediante software en linea
 
Diagramas de flujo de problemas de hardware
Diagramas de flujo de problemas de hardwareDiagramas de flujo de problemas de hardware
Diagramas de flujo de problemas de hardware
 
Historia de un mp4
Historia de un mp4Historia de un mp4
Historia de un mp4
 
Introducción a los sistemas de cómputo
Introducción a los sistemas de cómputoIntroducción a los sistemas de cómputo
Introducción a los sistemas de cómputo
 
Intel y amd
Intel y amdIntel y amd
Intel y amd
 
208812010 soporte-tecnico-a-distancia
208812010 soporte-tecnico-a-distancia208812010 soporte-tecnico-a-distancia
208812010 soporte-tecnico-a-distancia
 
Manual de fallas y soluciones de un equipo de computo
Manual de fallas y soluciones de un equipo de computoManual de fallas y soluciones de un equipo de computo
Manual de fallas y soluciones de un equipo de computo
 
SISTEMAS OPERATIVOS
SISTEMAS OPERATIVOSSISTEMAS OPERATIVOS
SISTEMAS OPERATIVOS
 
Unidad 2 concepto de Programa,Proceso y Procesador
Unidad 2  concepto de Programa,Proceso y ProcesadorUnidad 2  concepto de Programa,Proceso y Procesador
Unidad 2 concepto de Programa,Proceso y Procesador
 
Software de programación
Software de programaciónSoftware de programación
Software de programación
 
Versiones de Linux
Versiones de LinuxVersiones de Linux
Versiones de Linux
 
Exposición de Lenguajes de Programación
Exposición de Lenguajes de ProgramaciónExposición de Lenguajes de Programación
Exposición de Lenguajes de Programación
 
Tipos de software
Tipos  de softwareTipos  de software
Tipos de software
 
Hardware y software
Hardware y softwareHardware y software
Hardware y software
 

Destaque

Manejo de bits
Manejo de bitsManejo de bits
Manejo de bitsUVM
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datosUVM
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funcionesUVM
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlUVM
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadoresUVM
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3UVM
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++UVM
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoUVM
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreUVM
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadoresUVM
 
Función main()
Función main()Función main()
Función main()UVM
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuarioUVM
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicosUVM
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funcionesUVM
 

Destaque (14)

Manejo de bits
Manejo de bitsManejo de bits
Manejo de bits
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datos
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funciones
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stl
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadores
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agosto
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembre
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadores
 
Función main()
Función main()Función main()
Función main()
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuario
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicos
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funciones
 

Semelhante a Depuración de un programa en c++

Semelhante a Depuración de un programa en c++ (20)

2.2 depuracion de un programa en c
2.2 depuracion de un programa en c2.2 depuracion de un programa en c
2.2 depuracion de un programa en c
 
Tema 3 tipos de errores
Tema 3 tipos de erroresTema 3 tipos de errores
Tema 3 tipos de errores
 
PRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓNPRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓN
 
Proceso para la obtención de un programa ejecutable
Proceso para la obtención de un programa ejecutableProceso para la obtención de un programa ejecutable
Proceso para la obtención de un programa ejecutable
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Errores
ErroresErrores
Errores
 
Manejo de Excepciones
Manejo de ExcepcionesManejo de Excepciones
Manejo de Excepciones
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Diapositiva de taller de informatica educativa
Diapositiva de taller de informatica educativaDiapositiva de taller de informatica educativa
Diapositiva de taller de informatica educativa
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
PASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTMLPASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTML
 
Informatica
InformaticaInformatica
Informatica
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Errores en c++
Errores en c++Errores en c++
Errores en c++
 
Parcial 1
Parcial 1Parcial 1
Parcial 1
 
Problemas comunes del pc
Problemas comunes del pcProblemas comunes del pc
Problemas comunes del pc
 
Problemas comunes del pc
Problemas comunes del pcProblemas comunes del pc
Problemas comunes del pc
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 

Mais de UVM

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programaciónUVM
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaUVM
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempoUVM
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosUVM
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglosUVM
 
Objetos y arreglos en C#
Objetos y arreglos en C#Objetos y arreglos en C#
Objetos y arreglos en C#UVM
 
Una solución para agregar estructura de repetición
Una solución para agregar estructura de repetición Una solución para agregar estructura de repetición
Una solución para agregar estructura de repetición UVM
 
Repaso previo a 2º examen parcial
Repaso previo a 2º examen parcialRepaso previo a 2º examen parcial
Repaso previo a 2º examen parcialUVM
 
Polimorfismo
PolimorfismoPolimorfismo
PolimorfismoUVM
 
Namespaces y C#
Namespaces y C#Namespaces y C#
Namespaces y C#UVM
 
Tipos de herencia
Tipos de herenciaTipos de herencia
Tipos de herenciaUVM
 
Herencia 1ª parte
Herencia 1ª parteHerencia 1ª parte
Herencia 1ª parteUVM
 
Agregando comportamiento al objeto – estructuras de repetición
Agregando comportamiento al objeto – estructuras de repeticiónAgregando comportamiento al objeto – estructuras de repetición
Agregando comportamiento al objeto – estructuras de repeticiónUVM
 
Agregando comportamiento al objeto – estructuras de decision
Agregando comportamiento al objeto – estructuras de decisionAgregando comportamiento al objeto – estructuras de decision
Agregando comportamiento al objeto – estructuras de decisionUVM
 
Presentación de proyectos semestrales 01-15
Presentación de proyectos semestrales 01-15Presentación de proyectos semestrales 01-15
Presentación de proyectos semestrales 01-15UVM
 
Creación de archivos de clases en c#
Creación de archivos de clases en c#Creación de archivos de clases en c#
Creación de archivos de clases en c#UVM
 

Mais de UVM (16)

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programación
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación Avanzada
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempo
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicos
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglos
 
Objetos y arreglos en C#
Objetos y arreglos en C#Objetos y arreglos en C#
Objetos y arreglos en C#
 
Una solución para agregar estructura de repetición
Una solución para agregar estructura de repetición Una solución para agregar estructura de repetición
Una solución para agregar estructura de repetición
 
Repaso previo a 2º examen parcial
Repaso previo a 2º examen parcialRepaso previo a 2º examen parcial
Repaso previo a 2º examen parcial
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Namespaces y C#
Namespaces y C#Namespaces y C#
Namespaces y C#
 
Tipos de herencia
Tipos de herenciaTipos de herencia
Tipos de herencia
 
Herencia 1ª parte
Herencia 1ª parteHerencia 1ª parte
Herencia 1ª parte
 
Agregando comportamiento al objeto – estructuras de repetición
Agregando comportamiento al objeto – estructuras de repeticiónAgregando comportamiento al objeto – estructuras de repetición
Agregando comportamiento al objeto – estructuras de repetición
 
Agregando comportamiento al objeto – estructuras de decision
Agregando comportamiento al objeto – estructuras de decisionAgregando comportamiento al objeto – estructuras de decision
Agregando comportamiento al objeto – estructuras de decision
 
Presentación de proyectos semestrales 01-15
Presentación de proyectos semestrales 01-15Presentación de proyectos semestrales 01-15
Presentación de proyectos semestrales 01-15
 
Creación de archivos de clases en c#
Creación de archivos de clases en c#Creación de archivos de clases en c#
Creación de archivos de clases en c#
 

Último

PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxNadiaMartnez11
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxroberthirigoinvasque
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
Diapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaDiapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaAlejandraFelizDidier
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxpvtablets2023
 

Último (20)

PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Diapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaDiapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundaria
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
 

Depuración de un programa en c++

  • 1. DEPURACIÓN DE UN PROGRAMA EN C++ Material apoyo de ProgramaciónAvanzada
  • 2. Introducción  Rara vez los programas funcionan bien la primera vez que se ejecutan.  Los errores que se producen en los programas han de ser detectados, aislados y corregidos.  El proceso de encontrar errores se denomina “depuración” del programa. 01/09/2015 2Mtl. Lourdes Cahuich
  • 3.  La corrección del error es probablemente la etapa más fácil, siendo la detección y aislamiento del error las tareas más difíciles. 01/09/2015 3Mtl. Lourdes Cahuich
  • 5. Errores posibles  Existen diferentes situaciones en las cuales se suelen introducir errores en un programa: 1. Violación (no cumplimiento) de las reglas gramaticales del lenguaje de programación 2. Los errores en el diseño del algoritmo en el que está basado el programa.  Aquí describiremos los errores más comunes y sugerir posibles causas de error. 01/09/2015 5Mtl. Lourdes Cahuich
  • 6. Errores de sintaxis  Los errores de sintaxis son aquellos que se producen cuando el programa violan las reglas de gramática del lenguaje.  Errores de sintaxis típicos son:  Escritura incorrecta de palabras reservadas  Omisión de signos de puntuación (comillas, punto y coma…)  Los errores de sintaxis son los más fáciles de ubicar, ya que son detectados y aislados por el compilador. 01/09/2015 6Mtl. Lourdes Cahuich
  • 7. Errores más comunes de sintaxis  Puntos y comas después de la cabecera “main()”  Olvido del carácter llave de apertura o cierre ({,})  Omisión de puntos y coma al final de una sentencia  Olvido de la doble barra inclinada antes de un comentario  Olvido de las dobles comillas al cerrar una cadena.  Etc. 01/09/2015 7Mtl. Lourdes Cahuich
  • 8. Errores lógicos  Estos son errores del programador en el diseño del algoritmo y posterior programa.  Los errores lógicos son más difíciles de encontrar y aislar, ya que no suelen ser detectados por el compilador. 01/09/2015 8Mtl. Lourdes Cahuich
  • 9. Ejemplo  Observa la siguiente línea de código total_grados_celsius=fahrenheit_a_celsius * temperatura_cel;  Es una sentencia perfectamente legal en C++ pero la ecuación no responde a ningún cálculo válido para obtener el total de grados Celsius en una sala. 01/09/2015 9Mtl. Lourdes Cahuich
  • 10. Errores lógicos  Se pueden detectar errores lógicos comprobando el programa en su totalidad, comprobando su salida con los resultados previstos.  Se pueden prevenir errores con un estudio detallado del algoritmo antes de que el programa se ejecute. 01/09/2015 10Mtl. Lourdes Cahuich
  • 11. Errores lógicos  Una vez que se ha determinado que un programa contiene un error lógico, encontrar el error es una de las tareas más difíciles de la programación.  El depurador (debugger), es un programa diseñado para la detección, verificación y corrección de errores. 01/09/2015 11Mtl. Lourdes Cahuich
  • 12. Errores de regresión  Estos errores se crean accidentalmente cuando se intenta corregir un error lógico.  Siempre que se corrige un error se debe comprobar totalmente la exactitud (corrección) para asegurarse que se fija el error que se está tratado y no produce otro error. 01/09/2015 12Mtl. Lourdes Cahuich
  • 13. Errores de regresión  Los errores de regresión son comunes, pero son fáciles de leer y corregir.  Una ley no escrita es que: “un error se ha producido, probablemente, por el último código modificado” 01/09/2015 13Mtl. Lourdes Cahuich
  • 14. Mensajes de error  Los compiladores emiten mensajes de error durante las fases de compilación, de enlace o de ejecución del programa.  Se agrupan en tres bloques: 1. Errores fatales. Pueden indicar un error interno del compilador, la compilación se detiene inmediatamente 2. Errores de sintaxis. Errores típicos de sintaxis, errores de línea de órdenes y errores de acceso a memoria o disco. 3. Advertencias. No impiden la compilación, indican condiciones sospechosas pero legítimas como parte del lenguaje. 01/09/2015 14Mtl. Lourdes Cahuich
  • 15. Errores en tiempo de ejecución  Los errores de ejecución se deben, normalmente, a un error en el algoritmo que resuelve el problema.  Un ejemplo típico es una división de enteros cuyo código está bien escrito, pero si el divisor es cero, se produce un error de ejecución “fatal” que detiene el programa. 01/09/2015 15Mtl. Lourdes Cahuich
  • 16. Tipos de errores de ejecución  Aquellos que son detectados por el sistema en tiempo de ejecución del programa C++  y aquellos que permiten la terminación del programa pero producen resultados incorrectos 01/09/2015 16Mtl. Lourdes Cahuich
  • 17.  Un error en tiempo de ejecución puede tener como resultado que el programa obligue a la computadora a realizar una operación ilegal tal como dividir un número por cero o manipular datos no válidos o no definidos.  Cuando ocurre este tipo de error, la computadora detendrá la ejecución de su programa y emitirá (visualizará) un mensaje de error  Divide error, line number… 01/09/2015 17Mtl. Lourdes Cahuich
  • 18.  Si se intenta manipular datos no válidos o indefinidos, su salida puede contener resultados extraños.  Se puede producir un “desbordamiento aritmético” cuando un programa intenta almacenar un número que es mayor que el tamaño máximo que puede manipular su computadora. 01/09/2015 18Mtl. Lourdes Cahuich
  • 19. Escribe y ejecuta el siguiente código 01/09/2015 19Mtl. Lourdes Cahuich
  • 20. ¿Qué sucede?  ¿Qué resultado produce?  ¿Da el mismo resultado?  ¿Genera algún error?  ¿Cuál es el error en el código? 01/09/2015 20Mtl. Lourdes Cahuich