Publicado el 7 de Noviembre del 2018
6.262 visualizaciones desde el 7 de Noviembre del 2018
473,1 KB
92 paginas
Creado hace 7a (14/12/2017)
Tabla de contenido
Introducción
Descripción del tutorial
Compiladores
Estructura de un programa
Tipos de datos
Asignaciones
Inicialización
Deducción de tipo
String
Operaciones con strings
Constantes
Expresiones tipadas
Definiciones de preprocesador
Operadores
Operadores aritméticos, bit a bit, evaluación y lógicos
Asignación compuesta
Incremento y decremento
Asignacion ternaria
Operador coma, casting y sizeof
Entrada y salida básica
Salida estandar (cout)
Entrada estandar (cin)
cin y strings
stringstream
Entrada y salida compatible con C
Sentencias y control de flujo
if-else
Bucles
while
do-while
1.1
1.1.1
1.2
1.3
1.4
1.4.1
1.4.2
1.4.3
1.4.4
1.4.4.1
1.4.5
1.4.5.1
1.4.5.2
1.5
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.6
1.6.1
1.6.2
1.6.2.1
1.6.2.2
1.6.2.3
1.7
1.7.1
1.7.2
1.7.2.1
1.7.2.2
2
for
for-in
Funciones
Declaración
Llamadas a funciones
Referencias y punteros
Uso de referencias
Punteros
Operadores
Punteros como argumentos
Arrays
Acceso
Arrays y punteros
Arrays y funciones
Array multidimensionales
Vector
Uso
Acceso
Métodos y Funciones
Vector Y Funciones
Vectores multidimensionales
Struct
Definición de Structs
Uso de Structs
Punteros de Structs
Structs de Structs
1.7.2.3
1.7.2.4
1.8
1.8.1
1.8.2
1.9
1.9.1
1.9.2
1.9.3
1.9.4
1.10
1.10.1
1.10.2
1.10.3
1.10.4
1.10.5
1.10.5.1
1.10.5.2
1.10.5.3
1.10.5.4
1.10.5.5
1.11
1.11.1
1.11.2
1.11.3
1.11.4
3
Introducción
Introducción a C++
Introducción
C++ es un lenguaje de programación diseñado a mediados de los años 80 por Bjarne
Stroustrup. La intención de su creación fue el extender al lenguaje de programación C
mecanismos que permiten la manipulación de objetos. En ese sentido, desde el punto de
vista de los lenguajes orientados a objetos, C++ es un lenguaje híbridos.
Este tutorial está dirigido a aquellas personas que nunca han programado en C++ y estén a
punto de estrenar sus habilidades programadoras en este amplio lenguaje.
C++ está considerado un lenguaje multiparadigma, entre las que se encuentra la orientación
a objetos, imperativo, o la programación genérica. En esta introducción al lenguaje
aprenderemos a definir variables, y crear nuestros propios tipos de datos y operadores,
manejar las estructuras de control, y la entrada y salida del programa, y a dominar las bases
de la creación e implementación de clases y clases genéricas.
Al final de esta Hour of Code, espero que C++ os haya convencido y sea de vuestro gusto
para vuestros próximos proyectos, prácticas o para rellenar las aptitudes de LinkedIn.
Sin más dilación comenzamos con el tutorial.
4
Descripción del tutorial
Descripción del tutorial
Para realizar este tutorial se ha dividido en diversas partes según el contenido que se de
como, tipos de datos, sentencias de control... Por cada uno de estos títulos encontrarás
una pequeña descripción inicial, y distintos códigos de ejemplo.
También se le propondrán ejercicios, que se mostrarán de la siguiente manera:
Ejercicio
¿Cómo harías para operar sobre tipos de coma flotante?
Y preguntas sobre ejemplos de código :
Pregunta
¿Es posible sumar un entero a un float, o a un caracter?¿Cuál es el resultado
final?
5
Compiladores
Compiladores
Un compilador es un programa informático que traduce un programa escrito en un lenguaje
de alto nivel al lenguaje del ordenador.
Para aquellos que ya habéis trabajado con otros lenguajes compilados como C o Java,
estaréis familiarizados con esto. Compilar un programa de C++ no es muy distinto,
supongamos el siguiente código ejemplo de nuestro archivo helloworld.cpp . Por fortuna es
nuestro conocido "Hello World" en C++.
// mi primer programa en C++
#include <iostream>
int main()
{
std::cout << "Hello World!";
}
Para compilar este programa tenéis varias posibilidades según el sistema operativo sobre el
que trabajéis estas son las opciones:
Compilador
GCC
Clang
$ g++ -std=c++11 helloworld.cpp -o HelloWorld
Instrucción
$ clang++ -std=c++11 -stdlib=libc++ helloworld.cpp -o HelloWorld
Opciones especiales:
-std=. : Esta opción nos ofrece usar un estandar u otro para compilar. Por ejemplo -
std=c++11 en el caso de usar declaraciones o sentencias especiales de este estandar,
como veremos más adelante.
-o : nos deja elegir el nombre del ejecutable del programa compilado.
Estos compiladores también están integrados en diversos IDEs que facilitan la
programación. Tales como:
6
Compiladores
IDE
Code::blocks
Visual Studio Express
Dev-C++
Sublime 2/3
Atom
Visual Studio Code
Clion
Plataforma
Windows/Linux/MacOS
Windows
Windows
Windows/Linux/MacOS
Windows/Linux/MacOS
Windows/Linux/MacOS
Windows/Linux/MacOS
7
Estructura de un programa
Estructura de un programa
Revisemos el código anterior:
// mi primer programa en C++
#include <iostream>
int main()
{
std::cout << "Hello World!";
}
Salida:
Hello World
Las estructuras del programa que podemos ver son las siguientes:
// mi primer programa en C++ : // indica que la línea es un comentario
#include <iostream> : Esta línea que comienza con un # indica que es una línea que
procesa el compilador. La directiva #include <iostream> hace que la biblioteca
iostream se tenga en cuenta en la compilación del programa.
int main() : Declaración de una función, en este caso es la función main , al igual que
en C esta función es la que se ejecuta en primer lugar. Entre los () se declaran de
forma opcional los parámetros.
{ and } : las respectivas líneas #5 { y #7 } indican el inicio y final de la
declaración de un conjunto de sentencias dentro de una función.
std::cout << "Hello World!"; : declaración de operación.
8
Tipos de datos
Tipos de datos
Como en la mayoría de los lenguajes el operador para la declaración de variables es el = .
a = 5;
b = 2;
a = a-1;
result = a - b;
El tipado de C++ el tipado es fuerte, estático y nominativo. Recordando, esto significa que
no se pueden usar una variable definida con un tipo concreto como si fuera de otro
distinto(fuerte), una vez declarado el tipo de una variable este no puede cambiar (estático) y
los tipos de las variables son declaradas por el programador (nominativo).
Tipos fundamentales
Grupo
Caracter
Entero (signed)
Entero (unsigned)
Punto flotante
Booleano
Tipo vacío
Puntero nulo
Nombre de tipo
char
signed (short,long{0,2}) int, char
unsigned (short,long{0,2}) int, char
float, double, long double
Tamaño
8bits
8~64bits
8~64bits
bool
void
decltype(nullptr)
Pero veamos que tipos de datos hay en C++ y como podemos generar los nuestros propios.
9
Asignaciones
Asignaciones
Declaración y operaciones sobre variables
#include <iostream>
using namespace std;
int main ()
{
// Variable declarations:
int a, b;
int result;
// Variable operations:
a = 5;
b = 2;
a = a + 1;
result = a - b;
// Print result:
cout << result;
// Finalization of program:
return 0;
}
Salida
4
En el caso anterior hemos dado un ejemplo en el que operamos con las distintas variables
declaradas. Como has podido observar hemos operado sobre enteros y luego hemos
imprimido por pantalla el resultado.
Ejercicio
¿Cómo harías para operar sobre tipos de coma flotante?
Pregunta
¿Es posible sumar un entero a un float, o a un caracter?¿Cuál es el resultado
final?
10
Asignaciones
11
Inicialización
Inicialización
Hemos visto que para inicializar una variable se hace uso de la declaración:
int x = 0;
Pero existen más opciones. Como son las sentencias:
int x(0); // Don't mixed up with function declaration
int x{0};
Aviso: Este último inicializador sólo está disponible a partir del estándar C++11 , esto
significa que para compilarlo necesitaremos usar la opción -std=c++11 con dicho estándar
o posteriores.
Código de ejemplo:
// Variable initilizations
#include <iostream>
using namespace std;
int main ()
{
int a=5; // Initial value: 5
int b(3); // Initial value: 3
int c{2}; // Initial value: 2
int result; // Variable without initial value
a = a + b;
result = a - c; // Initialization of variable `result`
cout << result;
return 0;
}
Salida
6
12
Inicialización
Modifique el ejemplo anterior para que a, b, y c sean variables de punto flotante
inicializadas en 5.0, 3.4, 2.11
Pruebe si puede utilizarse para inicializar caracteres.
13
Deducción de tipo
Deducción de tipo
Como punto final para explicar los tipos fundamentales, ahora vamos a ver como un tipo
puede deducir el tipo de la variable que se le asigna. Estas son las declaraciones auto y
decltype(foo) .
Ejemplos de uso:
int a = 0;
auto foo = a; // Same result as: int bar = foo;
decltype(a) bar; // Same effect as: int bar;
14
String
Strings
Los string representan un conjunto ordenado de caracteres, literalmente, una cadena. En
C++ nos encontramos con la clase string la cual nos permite guardar esa secuencia de
caracteres.
La primera diferencia con los tipos que hemos ido viendo hasta ahora, es que esta clase
necesita importar su código desde su propia biblioteca estandar <string> , por lo tanto
deberemos incluirla en la cabecera de nuestro programa. A diferencia de C, a los strings no
se les trata como un array de caracteres terminado por \0 , por lo tanto cuando los
declaremos no será necesario declararlo como char cadena[] , ni reservar un espacio de
más para nuestro carácter de finalización.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string mystring;
mystring = "This is a string";
cout << mystring;
return 0;
}
Salida
This is a string
Como hemos visto en el ejemplo anterior, los string se declaran y se le asignan valores de
igual forma que los anteriores tipos.
Pruebe a asignar nuestra variable mystring el valor This is a string , e
imprimirlo por pantalla.
Inicialice dos nuevos string cadena y caracteres , mediante los operadores de
inicialización ( . ) y { . } que hemos visto con anterioridad.
15
Comentarios de: Tutorial de C++ (0)
No hay comentarios