Introducción al laboratorio de
Programación I
Manuel Montenegro
montenegro@fdi ucm es
[email protected]
Despacho B12
Compilación
Compilació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
)
(código máquina).
á
i
Código fuente
C++
C++
Compilador
Código objeto
Máquina
Máquina
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
2
Paso I Edición del programa
Paso I – Edición del programa
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
3
Paso II Compilación
Paso II - Compilación
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
4
Paso III Ejecución
Paso III - Ejecución
Procedimiento engorroso en programas grandes.
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
5
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++
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
6
Entorno Dev C++
Entorno Dev-C++
Puede obtenerse en la dirección:
http://www.bloodshed.net/dev/devcpp.html
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
7
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
defecto.
t
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
8
Ejecución de Dev C++
Ejecución de Dev-C++
Para crear un
programa:
File
File → New →
New
Source File
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
9
Programa “Hola mundo”
Programa Hola, mundo
#include <iostream>
using namespace std;
int main() {
cout << "Hola mundo" << endl;
cout << Hola, mundo << endl;
return 0;
0
t
}
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
10
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)
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
11
Programa “Hola mundo” corregido
Programa Hola, mundo corregido
#include <iostream>
using namespace std;
int main() {
cout << "Hola, mundo" << endl;
system("pause");
return 0;
}
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
12
Ejecución del programa
Ejecución del programa
Podemos ejecutar el programa mediante:
Execute → Run (Ctrl+F10)
Execute → Compile & Run (F9)
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
13
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
it
ejecución de la función principal, independientemente de su situación
f
j
en el programa.
ió d l
l
i d
t d
di
t
ió
i
i
ió
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 (;).
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
14
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.
d
d
di ti
t
lid
Las distintas salidas pueden encadenarse:
L
cout << "Hola," << "mundo";
dl indicamos que las salidas
Mediante endl indicamos que las salidas
Mediante
posteriores se impriman en la siguiente línea.
cout << "Linea 1" << endl << "Linea 2";
cout << Linea 1
<< endl << Linea 2 ;
cout << endl << "Linea 3";
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
15
Variables
Variables
#include <iostream>
using namespace std;
;
g
p
int main() {
int edad;
int edad;
Asignación
Declaración de variable
cout << "Hola, mundo" << endl;
edad = 34;
edad = 34;
cout << "Mi edad es" << edad << endl;
system("pause");
y
);
( p
return 0;
}
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
16
Variables
Variables
El resultado de ejecutar este programa es:
Hola, mundo
Mi 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;
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
17
Directiva #include
Directiva #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 archivo iostream.h forma parte de la librería
El
í
estándar de C++
d l
hi
f
lib
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
18
Librerías estándar de C/C++
Librerías estándar de C/C++
Contenido
Nombre
iostream Entrada/Salida estándar
fstream
fstream
cmath
ctime
cctype
string
Entrada/Salida mediante ficheros
Entrada/Salida mediante ficheros
Funciones matemáticas: log, cos, tan,…
Funciones para obtener la hora y fecha actuales
Funciones relacionadas con caracteres
Manejo de cadenas de caracteres
…
p
y
…
http://www cplusplus com/reference/
http://www.cplusplus.com/reference/
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
19
Operaciones aritméticas
Operaciones aritméticas
#include <iostream>
using namespace std;
int main() {
int edad, dias;
Op Significado
+
-
*
/
%
S
Suma
Resta
Multiplicación
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;
system("pause");
")
t ("
return 0;
}
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
20
Tipos de errores
Tipos de errores
Errores de compilación
Ejemplos: sintaxis incorrecta, uso de variables no
declaradas, …
S d t
t
Se detectan antes de la ejecución del programa.
ió d l
d l
t
j
Errores en tiempo de ejecución
Ejemplos: divisiones por cero, …
Aparece un error durante la ejecución del programa
advirtiendo de tal circunstancia
advirtiendo de tal circunstancia.
Errores lógicos
El
El programa no funciona de acuerdo a lo esperado.
No se reflejan en ningún mensaje de error.
d
d
d
f
i
l
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
21
Depuración
Depuració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
IDE
Compilador
Depurador
(GDB)
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
22
Configuración de Dev C++
Configuración de Dev-C++
Tools → Compiler Options
Hacer click en Settings
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
23
Configuración de Dev C++
Configuración de Dev-C++
En la sección Linker, activar la opción Generate
i
f
d b
debugging information.
ti
i
Volver a compilar mediante: Execute → Rebuild All (Ctrl + F11)
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
24
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)
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
25
Modo depuración
Modo depuración
Se activa mediante la opción Debug → Debug (F8)
El programa se ejecutará normalmente hasta llegar
Cuando el programa se detiene, puede ejecutarse
a un punto de ruptura, en el cual se detendrá.
C
t
d ti
instrucción por instrucción:
Debug → Next Step (F7): Avanza hasta la siguiente
Debug → Next Step (F7): Avanza hasta la siguiente
d
d
l
j
sentencia.
punto de ruptura.
Debug → Continue (Ctrl+F7): Avanza hasta el próximo
Debug → Run to cursor (Mayus+F4): Avanza hasta la
posición actual del cursor
posición actual del cursor.
Debug → Stop Execution (Ctrl+Alt+F2): Aborta la
ejecución del programa y abandona el modo depuración.
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
26
Inspección de variables
Inspección de variables
Cuando el programa está detenido en modo
depuración puede observarse el valor de una
determinada variable mediante la opción:
Debug → Add Watch.
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
27
Comentarios de: Introducción al laboratorio de Programación I (1)