Notepad
Alicis Matthew
1
Video 1: Curso C++. ¿Por qué aprender C++?
Muy popular
• Primeras posiciones en los índices de popularidad.
• Gran comunidad en foros como Stack overflow, GitHub, etc.
• Mucho tiempo en el mercado. Millones de aplicaciones escritas en C++ y funcionando.
Muy utilizado por importantes empresas tecnológicas.
• Microsoft, Adobe, Amazon, Apple, PayPal, MySql
• Utilizado en motores de juegos
Potente
• Orientado a procedimientos
• Orientado a objetos
• Rápido
• Escalable
Muy solicitado en ofertas de empleo
2
Video 2: Curso C++. Temario e instalación de editor.
Temario
Estructura de un programa en C++
• Directiva #include
• Comentarios
• La función main()
• Namespaces
Variables, constantes y tipos
• Tipos primitivos
• Declaración e iniciación de variables y constantes
Arrays y Vectores
Operadores
• Aritméticos
• Lógicos
Estructuras de control de flujo
• Condicionales
• Bucles
Trabajo con Strings
3
Funciones
Punteros y referencias
POO
• Clases
• Herencia
• Polimorfismo
Punteros inteligentes (Smart Pointers)
Control de errores y excepciones
Flujo de datos
• Acceso a ficheros externos
• Entrada y salida
Librería Standard de templates (STL)
Tipos enumerados
Expresiones lambda
Conexión a bases de datos (BBDD)
4
Video 3 Curso C++. Compilador y primer programa.
Un compilador de C++ es un software que traduce el código fuente de C++ a un código
ejecutable que la computadora puede entender.
• Instalar Mingw desde el enlace: https://github.com/niXman/mingw-builds-
binaries/releases
• Seleccionar la versión: x86_64-15.1.0-release-mcf-seh-ucrt-rt_v12-rev0.7z
• Descomprimir y agregar el directorio de Mingw/bin a variables de entorno.
• Comprobar la instalación con el comando: g++ --version
5
6
Video 4: Curso C++. Compilación.
El sentido de la compilación
Es necesario compilar un programa en C++ porque C++ es un lenguaje de programación de
alto nivel que el ordenador no puede entender directamente. El compilador traduce el
código C++ a un lenguaje de máquina (código binario) que la CPU puede ejecutar.
El código maquina es inviable para programar debido a su complejidad.
7
Video 5: Curso C++. Disección del primer programa.
Disección y explicación del primer programa
Directiva: Es una instrucción que nos permite añadir
contenido y bibliotecas externas a nuestro programa. Una biblioteca es un conjunto de
clases y funciones que nos permiten realizar diferentes tareas que necesitemos a la hora
de programar. Una biblioteca es como “un maletín de herramientas que necesitamos para
realizar tareas”
En este ejemplo en concreto, queremos escribir un mensaje en consola. Para esa tarea,
necesitamos una herramienta. La función COUT que viene en la biblioteca de Iostream.
En C++ existen las sentencias o declaraciones. Se asemejan a
las frases que usamos en los lenguajes reales. Todas deben terminar en ;. La declaración
Usingnamespace hace uso del espacio de nombres STD.
Los espacios de nombres sirven para evitar colisiones o conflictos con los nombres. Las
bibliotecas tienen infinidades de clases y funciones. Cuando manejamos muchas
bibliotecas es común que haya dos funciones con el mismo nombre. Eso puede crear un
conflicto.
8
Se pueden utilizar funciones con el mismo nombre siempre y cuando estén ubicados en
espacios diferentes.
Si no utilizas el espacio de nombres STD debes
especificarlo en cada sentencia que lo utilice.
Puedes utilizar los Slash para invalidar
sentencias. Esto es útil para hacer pruebas sin tener que borrar el código.
Función. Comienza con una llave de apertura y termina con una llave de cierre. Sirve para
aglutinar bloques de código. Una función va a ejecutar el código que hay en su interior,
entre las llaves de apertura y cierre en orden secuencial de arriba abajo.
Esta función en concreto es la función principal de todo programa C++. En un programa
siempre hay varias funciones, pero siempre habrá la función MAIN. La cual es el punto de
entrada de cualquier programa.
9
Los paréntesis después de la función MAIN es una zona de parámetros. No todas las
funciones deben tenerlos. Existen funciones predefinidas en el lenguaje de C++ y podemos
crear las nuestras.
La instrucción COUT (Console Out) sirve para imprimir un texto, el cual debe ir entre
comillas. endl sirve para crear un salto de línea.
Es necesario hacer uso correcto del tabulador y los espacios para crear un código más
legible.
Todas las funciones devuelven un valor, exceptuando aquellas que comienzan con la
palabra void. Ejemplo: Podemos ver las funciones como las maquinas de vending. Al
solicitar un producto con un código en el teclado la maquina devuelve el producto en la
bandeja de abajo. Las funciones al igual que las maquinas de vending nos devuelven un
valor.
10
Con la sentencia return 0, la función nos devuelve el valor 0.
el teclado de la maquina podría asociarse con la zona de parámetros. Dependiendo
de lo que se introduzca en dicha zona será el resultado que nos devuelve la función.
La instrucción endl sirve para generar un salto de línea.
11
Video 6: Curso C++. Tipos y variables.
Tipos de datos
• Caracteres
• Enteros
• Decimales
• Booleanos
Tipos de datos caracteres: Utilizados para representar caracteres individuales como por
ejemplo “F”, “B”, “@”. También enteros pequeños.
Nombre Descripción Tamaño Rango de valores
Char Carácter o entero 1 byte -128 a 127/
pequeño unsigned 0- 255
Char8_t Caracteres Unicode 1 byte
8bits
Char16_t Caracteres Unicode 2 bytes
16 bits
Char32_t Caracteres Unicode 4 bytes
32 bits
Wchar_t Caracteres Unicode 4 bytes
12
Tipos de datos Enteros: Utilizados para representar números enteros.
Nombre Descripción Tamaño Rango de valores
Short Nº entero pequeño 2 bytes -32.768 a 32.767 /
unsigned
Int Nº entero 4 bytes -2.147,483,648 a
2,147,483,647 /
unsigned
Long Nº entero largo 4 bytes -2,147,483,648 a
2,147,483,647
/unsigned
Long long Nº entero muy 8 bytes -9.223.372.775.808
largo a
9,223,375,775,807 /
unsigned
Un unsigned short en C++ es un tipo de datos entero sin signo, lo que significa que no
puede almacenar números negativos.
13
Explicación del código:
#include <iostream>: Incluye la librería iostream para poder realizar la entrada y salida de
datos.
unsigned short valorSinSigno;: Declara una variable llamada valorSinSigno de tipo unsigned
short.
valorSinSigno = 5000;: Asigna el valor 5000 a la variable.
std::cout << "El valor sin signo es: " << valorSinSigno << std::endl;: Imprime el valor de la
variable en la consola.
valorSinSigno = 65536;: Intenta asignar un valor fuera del rango de unsigned short. Esto
causará un desbordamiento y el valor se reiniciará a 0.
14
std::cout << "El valor sin signo después del desbordamiento es: " << valorSinSigno <<
std::endl;: Imprime el valor de la variable después del desbordamiento.
Salida del programa:
El valor sin signo es: 5000
El valor sin signo después del desbordamiento es: 0
Tipo de dato Bytes Rango
unsigned char 1
0 a 255
unsigned short int 2 0 a 65535
unsigned int 4 0 a 4294967295 (2^32 - 1)
unsigned long int 4o8 0 a 4294967295 o
18446744073709551615
(2^64 - 1)
Tipos de datos decimales: Utilizados para representar números decimales (coma flotante)
Tamaño y rango de valores dependen del compilador y plataforma
Nombre Descripción Tamaño Rango de valores
15
Float * Parte decimal 7 4 bytes 1,2e -38 a 3,4e 38
digitos
Double Parte decimal 15 8 bytes 2,2e -308 a 1,8e 308
digitos
Long double Parte decimal 19 8 bytes 3,3e -4932 a 1.2e
digitos 4932
Tipos de datos booleanos
Utilizados para representar verdadero o falso (true o false)
0 es falso
Cualquier otro número es verdadero.
Nombre Descripción Tamaño Rango de valores
Bool Valores lógicos 1 byte True/ false
verdadero/falso
Variables
Una variable es un espacio en la memoria del ordenador donde se almacenará un valor que
podrá cambiar (variar) durante la ejecución de un programa.
16
RAM: Random acces memory. Memoria volatile. Cuando apagas el ordenador la memoria
RAM se borra,
La memoria RAM esta identificada por bloques. Cuando necesitamos obtener por ejemplo
obtener el salario de una persona. Ese salario se almacenara de manera temporal en la ram
Ese espacio es el que se conoce como variable.
El valor dentro de la variable puede cambiar durante la ejecución del programa.
En C++ Todas las variables tienen un tipo. Es necesario especificar de que tipo es la
variable.
Las variables se deben declarar (crear) siempre antes de utilizarlas
17
El flujo de ejecución de un programa en C++ es de arriba hacia abajo.
18
19
Video 7 Curso C++. Declaración e inicialización de variables.
Declaración e inicialización de variables
Hay lenguajes de programación que son del tipo WORA (Write once run anywhere) Los
programas escritos en una plataforma se ejecuta de igual forma en todas las plataformas,
gracias al entorno framework. C++ no es de este tipo de lenguajes, de modo que es
sensible a la plataforma en la que se ejecuta.
Ventajas de C++:
• Mayor eficiencia
• Menor consumo de recursos
Inconvenientes de C++:
• El resultado puede no ser el mismo en todas las plataformas
Declaración de variables: Reglas
• Primer carácter debe ser una letra o guion bajo.
• No se permiten espacios en blanco
• Intentar no crear nombres con muchos caracteres
• Evitar utilizar caracteres tipo $
• No utilizar palabras reservadas
20
• No se puede declarar la misma variable 2 veces con el mismo nombre en el mismo
ámbito
• C++ es Case sensitive
Buenas prácticas para declaración de variables.
• Se coherente con tus propias convenciones
• Utiliza nombres descriptivos, ni demasiado cortos ni demasiado largos
• Intenta declarar variables cercanas a la zona de uso
• Evita nombres de variables que comiencen por guion bajo
inicialización de variables.
int z; sin inicializar
int z = 5; Inicialización tradicional
int z (5); Inicialización de constructor
int z {5} Inicialización de lista
21
Video 8 Curso C++. Ejemplo sencillo con variables
22
23
Video 9 Curso C++. Declaración de constantes.
Constantes
Una constante es un espacio en la memoria del ordenador donde se almacenará un valor
que no podrá cambiar (variar) durante la ejecución de un programa
Las constantes en C++ tienen tipo. C++ es un lenguaje fuertemente tipado.
Las constantes se deben declarar e inicializar al mismo tiempo.
Tipos de constantes en C++
Constantes literales
• \n \t \b etc
Constantes declaradas
• Palabra reservada const
Expresiones constantes
• Palabra reservada constexpr
Constantes enumeradas
• Palabra reservada enum
Constantes definidas
• Directiva #define (obsoleto)
24
25
Video 10 Curso C++. Ejercicio práctico sencillo
¿Cuantos metros quieres instalar con calidad media?
¿Cuantos metros quieres instalar con calidad alta?
Precio m calidad media = 35.5 $
Precio m calidad alta = 55.3 $
Iva 21%
Días de validez del presupuesto = 10 días
Mi solución:
26
27
Video 11 Curso C++. Arrays I. Qué son y sintaxis básica
Arrays (Arreglos)
Es una estructura de datos que contiene una colección de valores del mismo tipo
Es parecido a almacenar un valor en una variable pero en lugar de almacenar un único valor
almacenamos varios valores que deben ser de un mismo tipo dentro de una estructura que
es un array.
Sirven para almacenar valores que tienen una relación entre si, por ejemplo si queremos
almacenar los salarios de 30 empleados, en vez de crear 30 variables creamos un array en
el que almacenamos todos los salarios.
Sintaxis
Declaración: int mi_matriz [n];
(tipo de dato) int – (nombre del array) mi_matriz (cantidad de elementos que va a manejar
el array) [n];
Una vez que se almacenan los elementos en un array ese numero de elementos permanece
inalterable durante toda la ejecución del programa (no así en los vectores) el valor que
adquiere cada bloque si puede cambiar.
28
Int mi_matriz [5] {15.25.8.-7.92};
Valor – nombre – cantidad de bloques – los números que tendrán los bloques
Si indicas el valor de menos bloques de los que contiene el array, el resto adquiere el valor
de cero.
Si almacenamos objetos se almacenaría el valor null en lugar de los ceros.
const double salarios {20} // se le da el valor de 20 bloques a salarios
double mi_matriz [salarios] {2700.35}; // de este modo los 20 bloques se inicializan con el
valor 2700.35 el cual puede cambiar posteriormente.
29
Int mi_matriz [] {15,17,29,19,52} // se infiere que el array tendrá 5 valores aunque no se ha
especificado, por el número de bloques a los que se le especifica un valor.
Las posiciones en un array siempre empiezan por el cero:
Si al principio solo especificas la cantidad de bloques que va a tener un array pero no el
valor de cada bloque. La forma en la que se especifica es la siguiente:
Int mi_matriz [5];
mi_matriz [0] =15
o bien
mi matriz [3] = -7
Acceso:
Si ya almacenaste el valor de los bloques puedes consultarlos: mi_matriz [0]; dicho
comando nos devolverá el valor del bloque: 15.
30
Video 12 Curso C++. Declaración e inicialización de arrays en
código.
Creacion de arrays en C++
31
Como reemplazar o cambiar un valor:
32
Video 13 Curso C++. Arrays bidimensionales
33
34
35
36