intro a C++

27
Introducción al laboratorio de Programación I Manuel Montenegro montenegro@fdi ucm es montenegro@fdi.ucm.es Despacho B12

description

PROGRAMACION

Transcript of intro a C++

Page 1: intro a C++

Introducción al laboratorio de Programación I

Manuel Montenegromontenegro@fdi ucm [email protected]

Despacho B12

Page 2: intro a C++

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)

Page 3: intro a C++

Paso I Edición del programaPaso I – Edición del programa

3Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)

Page 4: intro a C++

Paso II CompilaciónPaso II - Compilación

4Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)

Page 5: intro a C++

Paso III EjecuciónPaso III - Ejecución

Procedimiento engorroso en programas grandes.

5Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)

Page 6: intro a C++

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)

Page 7: intro a C++

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)

Page 8: intro a C++

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)

Page 9: intro a C++

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)

Page 10: intro a C++

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)

Page 11: intro a C++

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)

Page 12: intro a C++

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)

Page 13: intro a C++

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)

Page 14: intro a C++

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)

Page 15: intro a C++

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)

Page 16: intro a C++

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)

Page 17: intro a C++

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)

Page 18: intro a C++

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)

Page 19: intro a C++

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)

Page 20: intro a C++

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)

Page 21: intro a C++

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)

Page 22: intro a C++

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)

Page 23: intro a C++

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)

Page 24: intro a C++

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)

Page 25: intro a C++

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)

Page 26: intro a C++

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)

Page 27: intro a C++

Inspección de variablesInspecció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.

27Programación I – Dpto. de Sistemas Informáticos y Computación (UCM)