Para el curso usaremos Visual Studio Code (aunque podríamos usar un editor más ligero): https://code.visualstudio.com/
Vamos a utilizar dos extensiones:
https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
https://marketplace.visualstudio.com/items?itemName=danielpinto8zz6.c-cpp-compile-run
sudo apt install build-essential
Para poder compilar un programa de C/C++ en Windows se necesita tener el compilador MinGW instalado https://winlibs.com/
Compilar es el proceso de transformar un programa informático escrito en un lenguaje en un conjunto de instrucciones en otro formato o lenguaje. Un compilador es un programa de computadora que realiza dicha tarea.
Normalmente, un compilador transforma código escrito en un lenguaje de alto nivel como C++ en código ejecutable — llamado código binario o código máquina.
El compilador que usaremos para nuestro curso se llama gcc.
https://developer.mozilla.org/es/docs/Glossary/Compile
La ejecución es el proceso mediante el cual se llevan a cabo las instrucciones de un programa en el ordenador.
Durante la ejecución, el sistema operativo carga el archivo ejecutable en la memoria RAM, asigna recursos como CPU y dispositivos de entrada/salida según sea necesario, y comienza a ejecutar las instrucciones del programa en secuencia.
a) Verifica la versión de gcc que tienes instalada en tu ordenador:
g++ --version
b) Mi primer programac en C++: Escribe un programa que imprima la frase "Hola mundo" en C++ y compilalo:
Escribiendo el programa:
//main.cpp
#include <stdio.h>
int main() {
printf("Hola mundo");
return 0;
}
Compilando el programa:
g++ main.cpp
Ejecutando el programa:
./a.out
Nota: Este programa está escrito al estilo de C pero es compatible con C++.
// Comentario: Inclusión de bibliotecas o cabeceras necesarias
#include <stdio.h>
// Función principal del programa
int main() {
// Declaración de variables
int edad;
// Código del programa
printf("Ingrese su edad: ");
scanf("%d", &edad);
printf("Su edad es: %d\n", edad);
// Indicación de la finalización del programa
return 0;
}
En C++, una variable es un espacio reservado en la memoria que se utiliza para almacenar datos.
int main(){
/*Ejemplos de declaración de variables*/
int x=0;//se declara una variable de tipo int, de nombre x
int y(5);//se declara la variable y con valor 5, de tipo int
char c='c';//se declara una variable de tipo char de nombre c
}
Tipo de dato | Descripción | Tamaño | Rango de valores |
---|---|---|---|
bool |
Booleano | 1 byte | Verdadero o falso |
char |
Carácter | 1 byte | -128 a 127 |
int |
Entero | 4 bytes | -2147483648 a 2147483647 |
float |
Flotante | 4 bytes | ±1.8e-38 a ±3.4e38, 6 dígitos de precisión |
double |
Doble precisión | 8 bytes | ±2.2e-308 a ±1.8e308, 15 dígitos de precisión |
void |
Sin valor | - | - |
wchar_t |
Carácter ancho | 2 o 4 bytes | 1 carácter ancho |
- Enumerados: Permiten agrupar constantes simbólicas. Por ejemplo, puedes definir un tipo
dias
con los valoreslunes
,martes
, etc., y cada uno de estos valores se asocia internamente con un número entero. - Matrices: Permiten almacenar múltiples valores del mismo tipo en una sola variable.
- Punteros: Almacenan la dirección de memoria de otra variable.
- Estructuras: Permiten agrupar variables
- signed: Las variables con signo pueden almacenar números enteros positivos, negativos y cero1.
- unsigned: Las variables sin signo pueden almacenar solo valores enteros no negativos1.
- short: Modifica los valores mínimos que puede contener un tipo de datos1.
- long: Modifica los valores máximos que puede contener un tipo de datos1.
Tipos de datos básicos:
a) Tipo de datos carácter: Ingresa tu nombre y muestralo junto a un mensaje de bienvenida.
#include <stdio.h>
int main() {
char nombre[50];
printf("Por favor, ingresa tu nombre: ");
scanf("%s", nombre);
printf("Hola, %s Bienvenido al curso de C++\n", nombre);
return 0;
}
b) Tipo de datos entero: Ahora vamos a combinar tu nombre con tu edad, ¡ya la ingresaste en el primer programa!
#include <stdio.h>
int main() {
char nombre[50];
int edad;
printf("Por favor, ingresa tu nombre: ");
scanf("%s", nombre);
printf("Ingresa su edad: ");
scanf("%d", &edad);
printf("Hola, %s. Bienvenido al curso de C++. Tu edad es %d \n", nombre, edad);
return 0;
}
c) Usemos un tipo booleano: Cuentame si te gusta el lenguaje C y C++
#include <stdio.h>
int main() {
bool me_gusta_c;
printf("Cuentame: Te gusta el lenguaje C C++\n");
printf("(1) Si te gusta\n");
printf("(0) No te gusta\n");
scanf("%d", &me_gusta_c);
printf("(1) te gusta (0) no te gusta: Tu respuesta --> %d \n", me_gusta_c);
return 0;
}
d) Trabajemos con el tipo flotante: Veamos que tan buen alumno eres, para eso ingresa tus 3 mejores calificaciones.
#include <stdio.h>
int main() {
float c1, c2, c3, pm;
printf("Ingresa tu primera mejor calificacion: ");
scanf("%f", &c1);
printf("Ingresa tu segunda mejor calificacion: ");
scanf("%f", &c2);
printf("Ingresa tu tercera mejor calificacion: ");
scanf("%f", &c3);
pm = (c1 + c2 + c3) / 3.0;
printf("El promedio de tus tres mejores calificaciones es: %.2f\n", pm);
return 0;
}
Tipos de datos complejos:
e) Uso de una estructura: Mejoremos nuestro ejemplo b a traves del uso de una estructura.
#include <stdio.h>
// Definición de la estructura
struct Estudiante {
char nombre[50];
int edad;
};
int main() {
// Declaración de una variable de tipo estructura
struct Estudiante estudiante;
printf("Por favor, ingresa tu nombre: ");
scanf("%49s", estudiante.nombre);
printf("Por favor, ingresa tu edad: ");
scanf("%d", &estudiante.edad);
printf("Hola, %s. Bienvenido al curso de C++. Tu edad es %d.\n", estudiante.nombre, estudiante.edad);
return 0;
}
f) Usemos una matriz: Simplifiquemos el ejemplo d asiganando nuestras 3 mejores calificaciones a una variable de tipo matriz.
#include <stdio.h>
int main() {
float calificaciones[3], pm;
printf("Ingresa tus tres mejores calificaciones:\n");
scanf("%f", &calificaciones[0]);
scanf("%f", &calificaciones[1]);
scanf("%f", &calificaciones[2]);
pm = (calificaciones[0] + calificaciones[1] + calificaciones[2]) / 3.0;
printf("El promedio de tus tres mejores calificaciones es: %.2f\n", pm);
return 0;
}
g) Usando un puntero: Usando un puntero en lugar de un array; la asignación de memoria malloc() y el uso de la libreria stdlib.h los veremos mas detenidamente en el dearrollo del curso.
#include <stdio.h>
#include <stdlib.h>
int main() {
// Usando un puntero en lugar de un array
char *nombre;
printf("Por favor, ingresa tu nombre: ");
nombre = (char *)malloc(50 * sizeof(char));
scanf("%s", nombre);
printf("Hola, %s. Bienvenido al curso de C++\n", nombre);
free(nombre);
return 0;
}
h) Enumerado: Definición del tipo de datos enum para representar los días de la semana.
#include <stdio.h>
enum DiasSemana {
LUNES,
MARTES,
MIERCOLES,
JUEVES,
VIERNES,
SABADO,
DOMINGO
};
int main() {
enum DiasSemana dia;
dia = MIERCOLES;
printf("Hoy es %d\n", dia);
return 0;
}
Secuencia de escape | Significado |
---|---|
\a | Alerta (beep) |
\b | Retroceso (backspace) |
\f | Salto de página (form feed) |
\n | Nueva línea (newline) |
\r | Retorno de carro (carriage return) |
\t | Tabulación (horizontal tab) |
\v | Tabulación vertical (vertical tab) |
\ | Barra invertida (backslash) |
' | Apóstrofo o comilla simple |
" | Comillas dobles |
? | Signo de interrogación |
\0 | Carácter nulo |
Código de formato | Descripción |
---|---|
%d | Entero con signo decimal |
%i | Entero con signo decimal |
%u | Entero sin signo decimal |
%f | Número de punto flotante |
%c | Carácter |
%s | Cadena de caracteres |
%p | Puntero |
%x | Entero hexadecimal sin signo (minúsculas) |
%X | Entero hexadecimal sin signo (mayúsculas) |
%o | Entero octal sin signo |
%e | Notación científica en minúsculas |
%E | Notación científica en mayúsculas |
%g | Elige automáticamente %f o %e |
%G | Elige automáticamente %f o %E |
%% | Imprime un signo de porcentaje literal |