Introducción al laboratorio de Programación I
Manuel Montenegromontenegro@fdi ucm [email protected]
Despacho B12
CompilaciónCompilación Es el proceso de transformación de un programa
escrito en un lenguaje de alto nivel (en nuestro caso C++) a un lenguaje inteligible por el ordenador ( ódi á i )(código máquina).
Código fuenteC++
Código objetoMáquinaCompilador
C++ Máquina
2Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Paso I Edición del programaPaso I – Edición del programa
3Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Paso II CompilaciónPaso II - Compilación
4Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Paso III EjecuciónPaso III - Ejecución
Procedimiento engorroso en programas grandes.
5Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
IDEIDE Un entorno integrado de desarrollo (IDE) es un
conjunto de herramientas para un programador. Proporciona varias utilidades de edición, así como
una interfaz para el compilador.
IDE
Compilador
Depurador
En el curso utilizaremos el entorno Dev-C++
6Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Entorno Dev C++Entorno Dev-C++ Puede obtenerse en la dirección:
http://www.bloodshed.net/dev/devcpp.html
7Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Instalación de Dev C++Instalación de Dev-C++ Opciones en el programa de instalación: Tipo de instalación: completa (Full) Es muy recomendable instalarlo en la carpeta por
d f tdefecto.
8Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Ejecución de Dev C++Ejecución de Dev-C++ Para crear un
programa:
File NewFile → New →Source File
9Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Programa “Hola mundo”Programa Hola, mundo
#include <iostream>
using namespace std;
int main() {cout << "Hola mundo" << endl;cout << Hola, mundo << endl;
t 0return 0;}
10Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Programa “Hola mundo”Programa Hola, mundo Guardar el archivo:
File → Save (Ctrl + S) Es necesario que el nombre de archivo tenga la extensión .cpp
Compilar con: Execute Compile (Ctrl + F9) Execute → Compile (Ctrl + F9)
11Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Programa “Hola mundo” corregidoPrograma Hola, mundo corregido
#include <iostream>
using namespace std;
int main() {cout << "Hola, mundo" << endl;
system("pause");return 0;
}
12Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Ejecución del programaEjecución del programa Podemos ejecutar el programa mediante: Execute → Run (Ctrl+F10) Execute → Compile & Run (F9)
13Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Breve explicación del programa (I)Breve explicación del programa (I) int main()
Indica que el siguiente bloque de sentencias (delimitado por { ... }) es el contenido de la función principal del programa.
La ejecución de un programa en C++ siempre comienza con la j ió d l f ió i i l i d di t t d it ióejecución de la función principal, independientemente de su situación
en el programa.
En nuestro ejemplo, la función main se compone de tres sentencias:
cout << "Hola, mundo" << endl;cout << Hola, mundo << endl;system("pause");return 0;
Cada sentencia siempre va finalizada por el símbolo (;).
14Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Breve explicación del programa (II)Breve explicación del programa (II) cout << "…" cout es una variable que representa la salida estándar
(en nuestro caso, la pantalla). Esta sentencia envía el texto delimitado entre comillas
dobles (“”) a la pantalla.L di ti t lid d d Las distintas salidas pueden encadenarse:cout << "Hola," << "mundo";
Mediante dl indicamos que las salidas Mediante endl indicamos que las salidas posteriores se impriman en la siguiente línea.cout << "Linea 1" << endl << "Linea 2";cout << Linea 1 << endl << Linea 2 ;
cout << endl << "Linea 3";
15Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
VariablesVariables
#include <iostream>
using namespace std;g p ;
int main() {int edad;
Declaración de variableint edad;
cout << "Hola, mundo" << endl;edad = 34;
Asignación
edad = 34;cout << "Mi edad es" << edad << endl;
system("pause");y ( p );return 0;
}
16Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
VariablesVariables El resultado de ejecutar este programa es:
Hola, mundoMi edad es34
Corrección:
cout << "Mi edad es " << edad << endl;
¿Qué ocurre si cambiamos esta sentencia por la siguiente?
cout << "Mi edad es " << "edad" << endl;
17Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Directiva #includeDirectiva #include Toda identificador que se utilice ha de ser declarado
previamente. int edad, dias;
¿Dónde se encuentran declarados cout y endl? La directiva #include <iostream> indica que se
incluya el fichero iostream.h, donde se encuentran las definiciones de estas dos variables, junto con otras definiciones relacionadas con la entrada y salida.El hi f d l lib í El archivo iostream.h forma parte de la librería estándar de C++
18Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Librerías estándar de C/C++Librerías estándar de C/C++
Nombre Contenidoiostream Entrada/Salida estándarfstream Entrada/Salida mediante ficherosfstream Entrada/Salida mediante ficheroscmath Funciones matemáticas: log, cos, tan,…ctime Funciones para obtener la hora y fecha actualesp ycctype Funciones relacionadas con caracteresstring Manejo de cadenas de caracteres
… …
http://www cplusplus com/reference/http://www.cplusplus.com/reference/
19Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Operaciones aritméticasOperaciones aritméticasOp Significado
S#include <iostream>
using namespace std;
+ Suma- Resta* Multiplicación
int main() {int edad, dias;
/ División% Módulo (resto de una división)
cout << "Hola, mundo" << endl;edad = 34;dias = edad * 365;dias edad 365;cout << "Mi edad es" << edad << endl;cout << "Esto son " << dias << " dias" << endl;
t (" ")system("pause");return 0;
}
20Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Tipos de erroresTipos de errores Errores de compilación Ejemplos: sintaxis incorrecta, uso de variables no
declaradas, …S d t t t d l j ió d l Se detectan antes de la ejecución del programa.
Errores en tiempo de ejecución Ejemplos: divisiones por cero, … Aparece un error durante la ejecución del programa
advirtiendo de tal circunstanciaadvirtiendo de tal circunstancia. Errores lógicos
El f i d d l d El programa no funciona de acuerdo a lo esperado. No se reflejan en ningún mensaje de error.
21Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
DepuraciónDepuración Es el proceso de identificar y corregir los errores de
programación. En C++ se realiza normalmente mediante la
ejecución, instrucción a instrucción, del programa. Las herramientas que nos permiten hacer esto son
los depuradores.
IDE
Compilador
IDEDepurador
(GDB)
22Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Configuración de Dev C++Configuración de Dev-C++ Tools → Compiler Options Hacer click en Settings
23Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Configuración de Dev C++Configuración de Dev-C++ En la sección Linker, activar la opción Generate
d b i i f tidebugging information.
Volver a compilar mediante: Execute → Rebuild All (Ctrl + F11)
24Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Puntos de ruptura (Breakpoints)Puntos de ruptura (Breakpoints) Líneas del código en las que la ejecución del
programa se detendrá en modo depuración. Debug → Toggle breakpoint (Ctrl+F5)
25Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
Modo depuraciónModo depuración Se activa mediante la opción Debug → Debug (F8) El programa se ejecutará normalmente hasta llegar
a un punto de ruptura, en el cual se detendrá.C d l d ti d j t Cuando el programa se detiene, puede ejecutarse instrucción por instrucción: Debug → Next Step (F7): Avanza hasta la siguiente Debug → Next Step (F7): Avanza hasta la siguiente
sentencia. Debug → Continue (Ctrl+F7): Avanza hasta el próximo
punto de ruptura. Debug → Run to cursor (Mayus+F4): Avanza hasta la
posición actual del cursorposición actual del cursor. Debug → Stop Execution (Ctrl+Alt+F2): Aborta la
ejecución del programa y abandona el modo depuración.
26Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)