Introducción al laboratorio de Programación I

Anuncio
Introducción al laboratorio de
Programación I
Manuel Montenegro
montenegro@fdi ucm es
montenegro@fdi.ucm.es
Despacho B12
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 máquina).
(código
á i )
Código fuente
C++
Compilador
Código objeto
Máquina
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
2
Paso I – Edición del programa
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
3
Paso II - Compilación
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
4
Paso III - Ejecución

Procedimiento engorroso en programas grandes.
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
5
IDE


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.
Compilador
IDE
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++
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++
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 t
defecto.
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
8
Ejecución de Dev-C++
Dev C++

Para crear un
programa:
File → New →
Source File
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
9
Programa “Hola
Hola, mundo
mundo”
#include <iostream>
using namespace std;
int main() {
cout << "Hola
cout << Hola, mundo
mundo" << endl;
return
t
0
0;
}
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
10
Programa “Hola
Hola, mundo
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)
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
11
Programa “Hola
Hola, mundo
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

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)

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
ejecución
j
ió d
de lla ffunción
ió principal,
i i l iindependientemente
d
di t
t d
de su situación
it
ió
en el programa.
En nuestro ejemplo, la función main se compone de tres
sentencias:
cout << Hola, mundo << endl;
cout << "Hola, mundo"
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)

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
Las
distintas
ti t salidas
lid pueden
d encadenarse:
d
cout << "Hola," << "mundo";

Mediante endl
dl indicamos que las salidas
posteriores se impriman en la siguiente línea.
cout << "Linea
Linea 1"
1 << endl << "Linea
Linea 2";
2 ;
cout << endl << "Linea 3";
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
15
Variables
#include <iostream>
using namespace std;
g
p
;
int main() {
int edad;
Declaración de variable
Asignación
cout << "Hola, mundo" << endl;
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

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

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
hi iostream.h forma
f
parte de
d la
l librería
lib í
estándar de C++
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
18
Librerías estándar de C/C++
Nombre
Contenido
iostream
Entrada/Salida estándar
fstream
Entrada/Salida mediante ficheros
cmath
Funciones matemáticas: log, cos, tan,…
ctime
para obtener la hora y fecha actuales
Funciones p
cctype
Funciones relacionadas con caracteres
string
Manejo de cadenas de caracteres
…
…
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
Op
#include <iostream>
using namespace std;
int main() {
int edad, dias;
Significado
+
S
Suma
-
Resta
*
Multiplicación
/
División
%
Módulo (resto de una división)
cout << "Hola, mundo" << endl;
edad = 34;
dias = edad * 365;
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

Errores de compilación



Errores en tiempo de ejecución



Ejemplos: sintaxis incorrecta, uso de variables no
declaradas, …
S detectan
Se
d t t antes
t de
d la
l ejecución
j
ió d
dell programa.
Ejemplos: divisiones por cero, …
Aparece un error durante la ejecución del programa
advirtiendo de tal circunstancia
circunstancia.
Errores lógicos


El programa no ffunciona
i
d
de acuerdo
d a llo esperado.
d
No se reflejan en ningún mensaje de error.
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
21
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.
Compilador
IDE
Depurador
(GDB)
Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)
22
Configuración de Dev-C++
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++
Dev C++

En la sección Linker, activar la opción Generate
d b
debugging
i information.
i f
ti

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)

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



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
Cuando
d ell programa se d
detiene,
ti
puede
d ejecutarse
j
t
instrucción por instrucción:




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 cursor
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

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
Descargar