Documente Academic
Documente Profesional
Documente Cultură
2. Comentarios ........................................................................................................................................ 16
1. Identificadores .................................................................................................................................... 17
3. Declaración de variables.................................................................................................................... 21
4. Constantes........................................................................................................................................... 22
10. Tipos de deducción: auto y decltype ............................................... Error! Bookmark not defined.
CAPITULO 4. Operadores.............................................................................................................................. 24
11. Operadores Bitwise ( &, |, ^, ~, <<, >> ) ........................................ Error! Bookmark not defined.
1. Estructura secuencial.......................................................................................................................... 27
8. Instrucción (While).............................................................................................................................. 32
1. Definición ............................................................................................................................................ 45
3. Caracteres............................................................................................................................................ 45
2. Matrices ............................................................................................................................................... 43
CAPITULO 1. Introducción al lenguaje C++
Se dice programación a la implementación de un algoritmo en un lenguaje determinado de
programación, para diseñar un programa se requiere de un conocimiento previo del algoritmo.
¿Qué es un algoritmo?
¿Qué es un programa?
(SOFTWARE en inglés) Es una secuencia de instrucciones que a través de un ordenador puede ser
ejecutada o interpretada, Cada programa tiene su propio código fuente, de cual se derivan
programas ejecutables (por ejemplo compilados), le facilita al programador estudiar y desarrollar sus
algoritmos.
Las computadoras solo ejecutan un conjunto de operaciones básicas muy rápidamente. Con este
conjunto básico es que se construyeron los programas que nos permiten posteriormente hacer
tareas más complejas, ejemplo las app’s para teléfonos móviles, programas que son implementados
para la automatización en las diferentes compañías o empresas.
Los lenguajes de programación representan en forma simbólica, palabras claves, reglas sintácticas;
que son interpretadas por un programador. Cada lenguaje de programación utiliza compilador.
El lenguaje de programación C++ es compilado, así que en este caso necesitamos un compilador,
que será el encargado de transformar nuestro código fuente en código que la computadora pueda
ejecutar.
Las herramientas a instalar dependerán del sistema operativo utilizado. A continuación se listan
algunas posibilidades para el sistema operativo Windows o GNU/Linux, no es imprescindible utilizar
estas herramientas en particular, cualquier compilador puede servir.
2.1 Windows
Uno de los entornos de desarrollo más conocidos entre los programadores de C++ sobre Windows,
tanto novatos como expertos, es el codeblocks y Dev-C++. Ambos entornos pueden utilizarse tanto
para C como para C++. También hay otras alternativas como los compiladores de Borland o de
Microsoft (Microsoft Visual C++)
2.2 GNU/Linux
El nombre C++ fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado
fuera del laboratorio científico.
Antes se había usado el nombre “C con clases”. En C++, la expresión significa “Incremento de C” y
se refiere a que C++ es una extensión de C.
Codeblocks es compatible con otros compiladores es decir si se tiene uno anterior se puede
configurar sin problemas. También se puede descargar una versión que tiene compilador MinGW
variación del famoso GCC.
1. Cuando se inicia por primera vez Codeblocks se presentará una pantalla de bienvenida que
provee información y ayuda para su uso. Para salir de esta pantalla se desmarca la vírgula
que está al lado de la etiqueta Show tips at startup. Esta pantalla aparecerá solo la primera
vez.
2. Después de haber cerrado las ventanas secundarias se obtiene el ambiente de trabajo
Esta pantalla tiene varias partes.
3. Para empezar a crear un
programa el primer paso es
crear un proyecto. Desde la
pestaña File-new-Project, ver fig.
(3.1), o directamente del enlace
Create a new project que se
muestra en la fig. (3.2) y
obtenemos la ventana new from
template ver fig. (3.3).
5. Esta sección nos muestra los proyectos y programas que vamos creando, clic en next.
9. En la parte izquierda de la
pantalla, en la pestaña
Projects, nos muestra el
proyecto que creamos de
nombre (Saludo).
Desplegamos del archivo
(sources), posteriormente doble clic en main.cpp, se nos abrirá el programa principal. Ver fig.
(3.8)
E S
N A
PROCESO
T L
R I
A D
D A
A
1. Partes de un programa
La mejor forma de aprender un lenguaje de programación es escribiendo programas. Típicamente, el
primer programa que los principiantes escriben es un programa designado “Hola Mundo", lo cual
simplemente imprime “Hola Mundo” en la pantalla de la computadora. Aunque es muy simple,
contiene todos los componentes fundamentales que los programas C + + tienen:
Estos slashs (//) indican que el resto de la línea es comentario insertado por el programador pero no tiene
efecto en el comportamiento del programa. Los programadores los usan para incluir cortos observaciones
o explicaciones cortas con referencia al código o programa. En este caso, son unas descripciones
introductorias breves del programa.
Línea 2: #include<iostream>
El signo hash (#) es conocido como el preprocesador. Son líneas especiales aclaradas antes de empezar
la compilación del programa. En este caso, la librería (#include <iostream>), instruye el preprocesador
para incluir una sección de código estándar C++, conocido como la cabecera iostream (input-output-
flow), esto permite realizar operaciones estándar de entrada y salida, tal como la escritura de la salida de
este programa (Hola Mundo). #include<nombre de fichero>
Línea 3: Una línea en blanco.
Las líneas en blanco no tienen efecto en un programa. Simplemente mejoran legibilidad del código.
Línea 4: using namespace std;
Esta línea hace referencia al recurso que utiliza los espacios y nombres, todos estos elementos declarados
pertenecen a la biblioteca estándar. Con la instrucción using namespace std estamos indicando que
vamos a usar este espacio de nombres.
Un espacio de nombres es básicamente es un conjunto de nombres de recursos (clases, métodos,
funciones, etc.) en el cual todos los nombres son únicos.
Esta línea se incluirá en la mayoría de programas que usaremos posteriormente.
Línea 5: int main()
Esta línea indica la declaración de una función. Esencialmente, una función es un grupo de códigos y
declaraciones que reciben un nombre: En este caso, esto le proporciona el nombre “main” que significa
principal. Aprenderemos con más detalle sobre las funciones en un posterior capítulo, pero
esencialmente, su definición es introducida con una sucesión de un tipo entero (int), un nombre (main) y
un par de paréntesis (()), incluyendo parámetros opcionales.
Línea 6 y
9: “{”y “}”llaves.
La llave abierta ({) en la línea 6 indica el comienzo de la función principal (main), y la llave de cierre (}) en
la línea 9, indica su fin. Todo el código dentro de las llaves es el cuerpo de la función y toda función usa
las llaves para indicar el comienzo y fin de sus definiciones.
Línea 7: cout<<"Hola Mundo!";
Esta línea muestra por pantalla ¡Hola mundo!
La declaración cout es un objeto que se declara en la librería iostream, es por eso que se debe incluir este
archivo (#include <iostream>) al principio del programa.
Esta declaración tiene tres partes:
Primera parte, cout, character output (salida de caracteres) que identifica el dispositivo.
Segunda parte, el operador de la inserción (<<), indica la salida de información.
Tercera parte, una frase dentro de las comillas (“Hola Mundo!”), Es el contenido insertado en la salida.
Observe que la declaración acaba con un punto y coma (;). Este carácter indica el fin de la instrucción.
Todas las declaraciones en C++ siempre deben finalizar con punto y coma. Uno de los errores sintaxis más
comunes en C++ es olvidar el punto y coma.
Línea 8: return 0;
El return permite que la función devuelva un valor. Este valor debe ser del mismo tipo que se haya
utilizado al definir la función.
En este caso el retorno del valor entero va a ser nulo.
Las declaraciones son ejecutadas en la misma orden que aparecen dentro del cuerpo de una función.
Las declaraciones, std: : cout, identifica el dispositivo standard character output (salida estándar de
caracteres).
El programa ha sido estructurado en líneas diferentes y debidamente endentado, con el fin de hacer
más fácil de entender para los seres humanos la lectura. Pero C++ no tiene reglas estrictas sobre la
sangría o sobre cómo dividir instrucciones en líneas diferentes.
1 int main()
2 {
1 std::cout << " Hola Mundo!";
2 }
Podemos escribir:
int main(){ std::cout<<"Hola Mundo!";}
Todo en una sola línea, y esto tendría exactamente el mismo significado como el código precedente.
En este caso, el programa realizó dos inserciones en std::cout en dos sentencias diferentes. Otra vez,
la separación en líneas diferentes de código simplemente le proporciona una mejor legibilidad al
programa.
Salto de línea \n significa que no se mostrará el mensaje en una sola línea, como en el ejemplo
anterior. Si no en dos líneas como se muestra en la pantalla de salida actual.
Ya que el programa anterior podría haber sido perfectamente válido definido de esta manera:
int main()
{
std::cout<<
"Hola Mundo!";
std::cout
<<" Soy un programa C++";
}
2. Comentarios
Como vemos anteriormente los comentarios, no afecta la operación del programa; Sin embargo,
proveen una herramienta importante para documentar en seguida dentro del código fuente lo que el
programa hace y cómo funciona.
C++ utiliza dos formas de comentar código:
1 // Comentario de la línea
2 /* comentario de un Bloque */
La primera de ellas, conocido como comentario de línea, lo descarta todo de donde el par de slashs
(//) se encuentran hasta el fin de esa misma línea.
El segundo, conocido como comentario del bloque, descarta todo dentro del /*comentario */ con la
posibilidad de incluir múltiples líneas.
Vamos a añadir los comentarios a nuestro segundo programa:
1. Identificadores
C++ requiere que especifiques el tipo y el identificador para cada variable definida
Un identificador es un nombre que se usa para identificar ya sea una función, clase, módulo, etc.
Un identificador válido:
PERMITIDO NO PERMITIDO
A, s,… (letras) /, *, -, +, $, %,… Símbolos
Hola, indent,… (palabras o formación de Útil, hä, año,… Signos de puntuación
letras )
Nota_Final,… (Unido dos palabras con Nota final, Los espacios no pueden ser parte
guion baja) del identificador.
Pero tales identificadores en la mayoría de los casos son palabras reservadas del compilador o
identificadores externos.
C++ usa una serie de palabras claves para identificar operaciones y descripciones de datos; Los
identificadores por consiguiente, creados por un programador no pueden corresponder a estas
palabras claves. Las palabras claves reservadas estándar, no puede un programador hacer el uso de
los identificadores ya creadas por defecto, entre ellos están:
alignas, alignof, and, and_eq, asm, auto, bitand, bitor, bool, break, case,
catch, char, char16_t, char32_t, class, compl, const, constexpr, const_cast,
continue, decltype, default, delete, do, double, dynamic_cast, else, enum,
explicit, export, extern, false, float, for, friend, goto, if, inline, int,
long, mutable, namespace, new, noexcept, not, not_eq, nullptr, operator, or,
or_eq, private, protected, public, register, reinterpret_cast, return, short,
signed, sizeof, static, static_assert, static_cast, struct, switch, template,
this, thread_local, throw, true, try, typedef, typeid, typename, union,
unsigned, using, virtual, void, volatile, wchar_t, while, xor, xor_eq.
Muy Importante: El lenguaje C++ es un "caso sensible". Eso significa que un identificador escrito en
mayúsculas no es lo mismo que otro identificador escrito con el mismo nombre pero en letras
minúsculas. Así, por ejemplo, la variable de “RESULTADO” no equivale a la variable de “resultado” o
la variable de “Resultado”. Éstos son tres identificadores muy distintos o tres variables diferentes.
Podemos ver que los datos enteros de tipo signed son equivalentes a los enteros sin utilizar el
calificador:
1 #include<iostream> SALIDA:
2
3 using namespace std; 5
int main()
4
{
5 int Variable = 5;
6 cout<<Variable;//cout sirve para imprimir un valor
7
8 return 0;
9 }
Pueden representar valores reales, como: 3.14 o 0.01, con niveles diferentes de precisión, a merced del
cual de los tres tipos en coma flotante es usado.
1 #include<iostream> SALIDA:
2
3 using namespace std; 5.5
int main()
4
{
5 int a,b; //declarando dos variables de tipo entero
6 a = 2; b = 3;//asignando valores a la variable declarada
7 float c = 0.5; //define un número real
8 cout<<a + b + c;//al visualizar, suma las tres variables
9
10 return 0;
11 }
Tipo Booleano:
El tipo booleano o lógico, conocido en C++ como bool, sólo puede representar uno de dos estados,
verdadero (1) o falso (0).
1 #include<iostream> SALIDA:
2
3 using namespace std; 1
4 int main()
5 {
6 float x = 1.5;
7 int y = (int)x; //Asignando la variable declarada a una nueva
8 bool z = bool(1);
9 y ==1?; cout<<z: cout<<"No";//esta línea lo vamos a
10 //ver en los próximos capítulos
11 return 0;
12 }
Tipo carácter:
Solo Pueden representar un carácter, algo como 'A' o ' $ '. El tipo básico es char, lo cual es un carácter
de un byte. Otros tipos son también provistos para caracteres más largos.
SINTAXIS:
Ejemplo
1 #include<iostream> SALIDA:
2 using namespace std;
3 int main() EL CODIGO ASCII DE A ES 65
4 {
5 char c = 'A';
6 int x = c;
7 cout<<"EL CODIGO ASCII DE "<<c<<" ES "<<x;
8 return 0;
9 }
Para permitir al usuario que ingrese un valor utiliza cin en combinación con el operador extracción
(>>).
int num, a;
cin>> num;
Al igual que cout, las extracciones con cin pueden ser encadenadas para solicitar más de una
entrada en una misma declaración: cin >> x >> y;
Cuando el programa es ejecutado, esperará tanto con sea necesario hasta que el usuario ingrese un
número, y luego presione la tecla enter.
Ejemplo 2. Programa que sume dos números ingresados, puede aceptar múltiples entradas de
usuario.
1 #include<iostream> Input:
2 using namespace std;
3 int main() Ingrese un numero: 5
4 { Ingrese otro numero: 6
5 int a, b;
6 cout<<"Ingrese un numero: "; cin >>a; Output:
7 cout<<"\nIngrese otro numero: "; cin >>b;
8 cout<<"\nLa suma es: "<<a + b<<endl; La suma es 11
9 return 0;
10 }
4. Constantes
En C++ se pueden definir constantes de dos formas, la primera es por medio de comando define y
la segunda es usando la palabra clave const.
Sintaxis:
Ejemplo.
1 #include<iostream> Output:
2 #define PI 3.1416/*Definimos una constante
3 llamada PI*/ Imprimiendo el valor de PI:
4 using namespace std; 3.1416
5 int main()
6 {
7 cout<<"Imprimiendo el valor de PI : "<<PI;
8 return 0;
9 }
Uso de const para declarar constantes en C++
La instrucción const nos permite declarar constantes de una manera más adecuada. Y se declara
dentro de nuestro código como un tipo cualquiera.
Sintaxis:
1 #include<iostream> Output:
2 using namespace std;
3 const char nuevaLinea = '\n'; /*Definimos una Imprimiendo el valor de PI:
4 constante nuevaLinea*/ 3.1416
5 int main()
6 {
7 const float PI=3.1416; /*Definimos una
8 constante llamada PI*/
9 cout<<"Imprimiendo el valor de PI : "<<PI;
10 cout<<nuevaLinea;
11 return 0;
12 }
Ejemplo 2. Programa que calcula el área de una circunferencia, usando la librería <cmath>. La
librería cmath nos sirve para el cálculo de una potencia.
Sintaxis
Sintaxis:
nombreVariable = pow(base,exponente);
EJEMPLO:
y = 2 + (x = 5);
x = 5;
y = 2 + x;
x = y = z = 5;
2. Operadores aritméticos
C++ soporta los siguientes operadores aritméticos.
OPERADOR SÍMBOLO
Adición +
Sustracción -
Multiplicación *
División /
Módulo %
int x = 5;
x += 4; // equivalente a x = X + 4
x -= 3; // equivalente a x = X – 3
x *= 4; // equivalente a x = X * 4
x /= 3; // equivalente a x = X / 3
x %= 4; // equivalente a x = X % 4
4. Incrementos y decrementos (++, --)
Incremento
x = 4; x = 3;
y = ++x; y = x++;
// x contiene 4, y contiene 4 // x contiene 4, y contiene 3
Decremento
operator description
== Igual a
!= Diferente a
< Menor que
> Mayor que
<= Menor o igual que
>= Menor o igual que
Ejemplo
Ejemplo:
El operador && Corresponde a la operación lógica Y o AND. Da como resultado verdadero si ambos
opeandos son verdaderas, lo demás falso.
|| OPERADOR (or)
a b a || b
true true true
true false true
false true true
false false false
Por ejemplo:
Sintaxis:
Si la condición es verdadera, toda la expresión se evalúa como resut1, de lo contrario como result2.
Estructura secuencial.
Estructura alternativa o condicional.
Estructura iterativa o repetitiva.
1. Estructura secuencial
La estructura secuencial está formada por una secuencia de instrucciones que se ejecutan en orden
una a continuación de la otra.
Cada una de las instrucciones están separadas por el carácter punto y coma (;). No obstante, en
algunos casos nos interesará agrupar en un bloque una serie de instrucciones, como veremos al
explicar las estructuras de selección y de iteración. El bloque de sentencia se define por el carácter
llave de apertura ({) para marcar el inicio del mismo y el carácter llave del cierre (}) para marcar el final.
Sintaxis:
1 {
2
3 instruccion 1;
4 instruccion 2;
6 .
7 ..
8 instruccion n;
}
Sin embargo, en caso de que el bloque de sentencias este constituido por una única sentencia no es
obligatorio el uso de las llaves de apertura y cierre ({}).
Esta instrucción hace que se ejecuten unas sentencias u otras dependiendo del valor que toma
condición. La instrucción if puede ser simple o doble.
Sintaxis:
1 if(condicion 1)
2 instruccion 1;
3 else if(condicion 2)
4 instruccion 2;
5 else if(condicion 3)
6 instruccion 3;
7 else if(condicion 4)
8 instruccion 4;
9 else
10 instruccion 5;
instruccion 6;
instruccion 7;
Otro ejemplo de estructura condicional múltiple en C++. Programa que lee la calificación numérica
obtenida por un alumno en un examen que muestra la nota equivalente en texto.
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
unsigned int nota;
cout<<"Introduzca una calificacion numerica(entre 0 y 100): ";
cin>>nota;
cout<<"El alumno tiene una calificacion ";
if(nota==100)
cout<<"Matricula de honor"<<endl;
else if(nota>=90)
cout<<"Sobresaliente"<<endl;
else if(nota>=70)
cout<<"Muy bueno"<<endl;
else if(nota>50)
cout<<"bien "<<endl;
else
cout<<"Reprobado"<<endl;
system("pause"); 21
}
4. Instrucción (switch)
a. Instrucción switch.
1 switch(expresion)
2 {
Case constante 1:
instrucciones; break;
Case constante 2:
instrucciones; break;
…
efault:
instruccion 2;
}
En una instrucción switch, expresión debe ser una expresión con valor entero, y constante 1,
constante 2, deben ser constantes enteras, constantes de tipo carácter o una expresión constante de
valor entero.
Expresión también puede ser de tipo char ya que los caracteres individuales deben valores enteros.
Dentro de una case puede aparecer una sola instrucción o un bloque de instrucciones.
La instrucción switch evalúa la expresión entre paréntesis y compara su valor con las constantes de
cada case. Se ejecutarán las instrucciones de aquel case cuya constante coincida con el valor de la
expresión, y continúa hasta el final del bloque o hasta una instrucción que transfiera el control fuera
del bloque de switch (una instrucción break o return). Si no existe una constante igual al valor de la
expresión entonces se ejecutan las sentencias que están a continuación de default, si existe (no es
obligatorio que exista, y no tiene porqué ponerse siempre al final).
Ejemplo de uso de la instrucción switch en C++. Programa que lee dos números y una operación y
realiza la operación entre esos números.
#include<iostream> Input
using namespace std; 6 9
int main() Output:
{
int A,B,resultado; El numero mayor es 9
char operador;
cout<<"Introduzca un numero: ";
cin>>A;
cout<<"Introduzca otro numero: ";
cin>>B;
cout<<"Introduzca un operador(+,-,*,/):";
cin>>operador;
resultado=0;
switch(operador)
{
case '+': resultado=A+B; break;
case '-': resultado=A-B; break;
case '*': resultado=A*B; break;
case '/': resultado=A/B;
break;//suponiendo B!=0
default: cout<<"Operador no
valido"<<endl;
}
cout<<"El resultado es: ";
cout<<resultado<<endl;
return 0;
}
Otro ejemplo de switch en C++. Programa que determina si un carácter leído es o no una vocal en
ese caso como la sentencia a ejecutar por todas las etiquetas casi es la misma, esta sentencia se
pone una única vez a final.
#include<iostream> Input
using namespace std; 6 9
int main(void) Output:
{
char car; El numero mayor es 9
cout<<"Introduzca un caracter: ";
cin>>car;
switch(car)
{
case 'a':
case 'A':
case 'e':
case 'E':
case 'i':
case 'I':
case 'o':
case 'O':
case 'u':
case 'U':
cout<<car<<" es una vocal"<<endl;break;
default: cout<<car<<" No es una
vocal"<<endl;
}
return 0;
}
Instrucciones N;
}
Ejecuta una instrucción o un bloque de instrucciones cero o más veces, dependiendo del valor de la
condición.
Se evalúa la condición y si es cierta, se ejecuta la instrucción o bloque de instrucciones y se vuelve a
evaluar la condición; pero si la condición es falsa, se pasa a ejecutar la siguiente instrucción después
del valle.
Ejemplo de instrucción while en C++. Programa que lee números enteros hasta que se lee un
número negativo. Se muestra la suma de todos los números leídos excepto el número negativo.
#include<iostream> Input
using namespace std; 6 9
int main(void) Output:
{
int num,suma=0; El numero mayor es 9
cout<<"Introduzca un numero";
cin>>num;
while(num>0)
{
suma+=num;
cout<<"Introduzca un numero ";
cin>>num;
}
cout<<endl<<"La suma es "<<suma<<endl;
return 0;
}
Instrucciones N;
} while(condición);
Ejecuta una instrucción o un bloque de instrucciones, una o más veces dependiendo del valor de la
condición.
Se ejecuta la instrucción o bloque de instrucciones y a continuación se ejecuta la condición. Si la
condición es cierta se vuelve a ejecutar la instrucción o bloque de instrucciones, y si es falsa, pasa a
ejecutarse la siguiente instrucción después de do-while.
Cuando se utiliza una instrucción do-while el bloque de instrucciones se ejecuta al menos una vez,
ya que la condición se evalúa al final. En cambio, con una instrucción while, puede suceder que el
bloque de instrucciones no llegue a ejecutarse nunca si la condición inicialmente es falsa.
Ejemplo de instrucción do-while en C++. Programa que lee números enteros mientras que el
número ingresado sea menor a uno o mayor a diez.
#include<iostream> Input
using namespace std; 6
int main(void)
{
int num;
do
{
cout<<"Introduzca un numero entre 1 y
10: ";
cin>>num;
}while(num < 1 || num > 10);
return 0;
}
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int N,i=1,s=0,c;
6 cin>>N;
7 do{
8 if(i%2==0)
9 c=i+6;
10 else
11 c=i+3;
12 cout<<'\t'<<c;
13 s=s+c;
14 i++;
15 }while(i<=N);
16 cout<<'\n'<<"la sumatoria es: "<<s;
17 }
8. Instrucción (for)
1.1 Instrucción for.
Un bucle for hace que una instrucción o bloque de instrucciones se repitan un número
determinado de veces mientras se cumpla la condición
1 for(inicialización;condicion;incremento/decremento);
{
2
Instrucciones 1;
3 ..
4 Instrucciones N;
5 }
A continuación de la palabra for entre paréntesis debe haber siempre tres zonas separadas
por punto y coma:
1. Zona de inicialización
2. Zona de condición
3. Zona de incremento o decremento
En alguna ocasión puede no ser necesario escribir alguna de ellas. En ese caso se pueden
dejar en blanco, pero los puntos y comas deben aparecer.
El funcionamiento de un bucle for el siguiente:
1. Se inicializa la variable o las variables de control.
2. Se evalúa la condición.
3. Si la condición es cierta se ejecutan las instrucciones. Si es falsa, finaliza la ejecución del
bucle y continúa el programa en la siguiente instrucción después del for.
4. Se actualiza la variable o variables de control (incremento/decremento).
5. Se pasa al punto 2).
Esta instrucción es especialmente indicada para bucles donde se conozca el número de
repeticiones que se van a hacer.
Como regla práctica podríamos decir que las instrucciones while y do-while se utilizan
generalmente cuando no se conocen a priori el número de pasadas, y la instrucción for
se utiliza generalmente cuando si se conoce el número de pasadas.
Ejemplo. Programa que muestra los números naturales del 1 al 10
Ejemplo de
#include<iostream> EJEMPLO DE SALIDA
using namespace std; 1
int main(void) 2
{ 3
int n; 4
for(n=1;n<=10;n++) 5
{ 6
cout<<n<<endl; //endl salto de línea 7
} 8
return 0; 9
} 10
N números impares. Dado un número entero, el programa debe mostrar N primeros números
impares.
Ejemplo:
ENTRADA SALIDA
N=6 1, 3, 5, 7, 9, 11
1 #include<iostream>
2 using namespace std;
3 int main(void)
4 {
5 int N,impar=1;
6 cin>>N;
7 for(int i=1;i<=N;i++)
8 {
9 cout<<impar<<'\t'; // ‘\t’ tabulación separa en el momento de
imprimir
10 impar = impar+2; // su equivalencia es: impar+=2;
11 }
12 return 0;
13 }
Multiplos de TRES. Realizar un programa en C++ para saber la cantidad de múltiplos de 3 que se
encuentran en un rango dado A y B.
Ejemplo de entrada:
ENTRADA SALIDA
A = 20 4 numeros son múltiplos de tres
B = 32
1 #include<iostream>
2 using namespace std;
3 int main()
4 {
5 int A,B;
6 short int cont=0;///Contador de multiplos de 3
7 cin>>A>>B;
8 for(int i=A;i<=B;i++){
9 if(i%3==0) cont++;
10 }
11 cout<<cont<<" numeros son multiplos de tres";
12 }
SERIES: Realizar un programa para generar los siguientes series, para N números enteros.
Ejemplo: 1 3 7 13 21… N
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int N;
6 cin>>N;
7 short int j=1,k=2;
8 for(int it = 1; it < N; it++)
9 {
10 cout<<j<<'\t';
11 j=(k*it)+j;
12 }
13 return 0;
14 }
Ejemplo: 1 4 9 16 25 36… N
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int N;
6 cin>> N;
7 short int x = 1,y = 1;
8 for(int it = 1 ; it < N ; it++)
9 {
10 cout<<y<<'\t';
11 x + = 2; y + = x;
12 }
13 return 0;
14 }
Ejemplo: 1 2 6 15 31… N
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int N,se = 1;
6 cin>> N;
7
8 for(int i = 1 ; i < N ; i++)
9 {
10 cout<<se<<'\t';
11 se=(i*i)+se;
12 }
13 return 0;
14 }
4 8 6 10 8 12 10… N
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int N, i = 1, s = 0;
6 cin>> N;
7
8 for(int i = 1 ; i < N ; i++)
9 {
10 cout<<se<<'\t';
11 se=(i*i)+se;
12 }
13 return 0;
14 }
0 1 2 3 6 5 12 7 20… N
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int n,im=-1,s=0,b=0;
6 cin>>n;
7 for(int i=1;i<=n;i++)
8 {
9 if(i%2==0)
10 {
11 im+=2;
12 cout<<'\t'<<im;
13 }
14 else
15 {
16 b=b+2;
17 cout<<'\t'<<s;
18 s=s+b;
19 }
20 }
21 return 0;
22 }
Serie de FIBONACCI
1 1 2 3 5 8 13… N
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int N,a=1,b=1,c=1;
6 cin>>N;
7 for(int j=1;j<=N;j++)
8 {
9 cout<<'\t'<<a;
10 c = a+b;
11 a=b;
12 b=c;
13 }
14 }
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int N;
6 cin>>N;
7 for(int j=1;j<=N;j++)
8 {
9 cout<<'\t'<<(2* j -1)/(2*j)a;
10 }
11 }
Ejercicios:
Realizar un programa para realizar la tabla de multiplicar dato “N” hasta 10.
Ejemplo:
N=3
ENTRADA SALIDA
3 3*1=3
3*2=6
3*3=9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 14
3 * 9 = 27
3 * 10 = 30
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 short int N; cin>>N;
6 for(int m=1;m<=10;m++)
7 {
8 cout<<N<<" * "<<m<<" = "<<m*N<<'\n';
9 }
10 return 0;
11 }
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int short Num,inv = 0;cin>>Num;
6 while(!Num == 0)
7 {
8 inv=Num % 10+inv*10;
9 Num /= 10;
10 }
11 cout<<inv;
12 return 0;
13 }
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int num,i=0,m;cin>>num;
6 m=num;
7 while(m!=0)
8 {
9 i=i*10+m%10;
10 m/=10;
11 }
12 if(i==num)
13 cout<<"Es capicua";
14 else
15 cout<<"No es capicua";
16 return 0;
17 }
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int num,cont=0;
6 cin>>num;
7 for(int a=1;a <= num;a++)
8 {
9 if(num % a = = 0)
10 {
11 cont++;
12 }
13 }
14 if(cont == 2)
15 cout<<"Es primo\n";
16 else
17 cout<<"No es primo\n";
18 return 0;
19 }
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int N,cont = 0,np = 2,cp = 0;
6 cin>>N;
7 do
8 {
9 for(int x=1;x <= np;x ++)
10 {
11 if(np % x = = 0)
12 {
13 cont++;
14 }
15 }
16 if(cont = = 2)
17 {
18 cout<<'\t'<<np;//imprime N primos
19 cp ++;//contador de primos
20 }
21 cont = 0;
22 np ++;
23 }while(N > cp);
24 cout<<'\n';
25 return 0;
26 }
CAPITULO 7. Arreglos
Un arreglo es un conjunto de datos del mismo tipo ordenados de forma lineal uno después del otro, los
elementos o los componentes de un arreglo, se referencian mediante un índice de desplazamiento para
acceder a una posición utiliza una iteración.
1. Arreglos unidimensionales
Los arreglos unidimensionales o vectores, son utilizados para almacenar una colección de datos, o una
colección de variables, todas del mismo tipo.
Su declaración será:
Por ejemplo:
1 int miVect[5];
En el ejemplo anterior, la variable “miVect” fue declarada como un arreglo de cinco valores enteros
[especificando en los corchetes].
Los valores son proporcionados en una lista separada por comas, rodeada de {llaves}.
El número de valores dentro de las llaves {} no debe exceder el número de elementos declarados dentro de
los corchetes.
Cada elemento, o miembro, del arreglo tiene un índice, que marca la posición específica del elemento.
El primer elemento del arreglo tiene al 0 (cero) como índice, el segundo tiene 1 como índice.
11 33 5 22 35
[0] [1] [2] [3] [4]
Es necesario iterar sobre los elementos de un arreglo, ya sea para acceder al elemento o realizar
operaciones.
Vamos a declarar un arreglo, que va almacenar 5 enteros, y le asignaremos un valor a cada elemento
utilizando el bucle FOR.
#include<iostream> Input
using namespace std; 6 9
int main() Output:
{
float arr[4]={ 2.5, 3.8, 45.5, 12.2}; El numero mayor es 9
for(int i=0;i<5;i++)
{
cout<<arr[i]<<”\t”<<endl;
}
return 0;
}
2. Matrices
La matriz es un array bidimensional con doble subíndice, no es más que una serie de vectores:
Subíndice de columna
Diagonal principal
Triangular superior Subíndice de filas
Triangular inferior Nombre del arreglo
En el ejemplo se observa una matriz de 3x3, la tabla puede ser de dimensión MxN. Las matrices
permiten almacenar múltiples valores en una misma variable.
Ejemplo:
Valores
1 2
3 4
Para imprimir todos los elementos de la matriz necesitamos dos bucles for para recorrer por cada
elemento e ir imprimiendo las variables de cada instrucción iterativa, ambos bucles tienen
inicializado con (0), significa que está apuntando al primer elemento de la matriz en posición (0,0)
1. Definición
Se define como secuencia de caracteres, generalmente todos estos textos están en ASCII. Este un
tema que además de ser fácil es bastante importante ya que gran parte de la información está
basado en texto.
3. Caracteres
4. La sintaxis de C++ para carácter es:
Nombretipo nombreVariable = “micaracter”;
EJEMPLO:
char saludo2[ ] = “hola ”; //caracter
16 return 0;
17 }
Ejemplo: Si tenemos un tipo string de nombre STR al cual le asignaremos la palabra “cadena” y
queremos que se nos retorne la letra que está en la posición 4, se cuenta desde cero.
1 #include <iostream>
2 #include <string>
3 using namespace std;
4 int main()
5 {
6 string STR;
7 STR = "cadena";
8 cout<<STR[4]<<endl;
9 //Salida n
10 return 0;
11 }
La tabla ascci es una buena referencia para distinguir los símbolos, ya sea numéricas o alfabéticas.
En el siguiente ejemplo tenemos dos cadenas (cad1 y cad2) que son iguales y el programa nos indicará en la
el consola.
1 #include <iostream>
2 #include <string>
3 using namespace std;
4 int main()
5 {
6 string cad1 = "hola";
7 string cad2 = "hola";
8 if(cad1==cad2)//comparamos si las cadenas son
iguales
9 cout<<cad1<<" es igual a "<<cad2;
10 return 0;
11 }
8. Concatenación de strings
El operador (+) nos permite concatenar dos o más cadenas.
Entonces si tengo dos cadenas diferentes cad1=“Julio”, cad2 = “Cesar” debemos unirlo e imprimir en
una sola cadena, el código es el siguiente.
1 #include <iostream>
2 #include <string>
3 using namespace std;
4 int main()
5 {
6 string cad1 = "Julio";
7 string cad2 = "Cesar";
8 cad1 +=cad2;//cad1=cad1+cad2 equivalente
9 cout<<cad1<<endl;
10 return 0;
11 }
Ejemplo.
1 #include <iostream>
2 #include <string>
3 using namespace std;
4 int main()
5 {
6 string cadena = "asdfghjk";
7 if(cadena.find("cad")==string::npos)
8 cout<<"Cadena no encontrada"<<endl;
9 else
10 cout<<"Cadena encontrada.."<<endl;
11 //Retorna la posicion del primer caracter de "fgh"
12 cout<<cadena.find_first_of("fgh")<<endl; // salida 3
13 //Retorna el ultimo posicion de la subcadena
14 cout<<cadena.find_last_of("fgh")<<endl; // salida 5
15 //Retorna la posicion del primer caracter de la cadena
16 cout<<cadena.find_first_not_of("fgh")<<endl; // salida 0
17 //Retona la ultima posicion de la cadena
18 cout<<cadena.find_last_not_of("fgh")<<endl; // salida 7
19 return 0;
20 }
Ejemplo.
1 #include <iostream>
2 #include <string>
3 using namespace std;
4 int main()
5 {
6 string cad1 = "Hola Mundo";
7 string cad2;
8 ///Asignamos a cad2 la subcadena que está desde la
posicion 5 "M"
9 cad2 = cad1.substr(5,5);
10 cout<<"El contenido de cad1 es: "<<cad1<<endl;
11 cout<<"El contenido de cad2 es: "<<cad2<<endl;
12 return 0;
13 }
Para obtener un tamaño en caso de string, tenemos dos métodos .length() y .size() ninguno recibe
parámetros, ambos tienen un retorno de tipo enterto int.
1 #include <iostream>
2 #include <string>
3 using namespace std;
4 int main()
5 {
6 string cad="hola";
7 cout<<"Longitud con .length(): "<<cad.length()<<endl;
8 // salida 4
9 cout<<"longitud con .size(): "<<cad.size()<<endl;
10 //salida 4
11 return 0;
12 }
Para variar el tamaño de una cadena, usaremos el método .resize(), esto recibe como parámetro un
número entero que indica el nuevo tamaño de la cadena, podemos acortarla o hacerla más larga
dependiendo de la necesidad.
El código es lo siguiente.
1 #include <iostream>
2 #include <string>
3 using namespace std;
4 int main()
5 {
6 string c = "hola";
7 //longitud de la cadena
8 cout<<"longitud: "<<c.length()<<endl;
9 //Aplicamos el resize() duplicando la longitud
10 c.resize(c.length()*2);
11 //imprimiendo la nueva longitud
12 cout<<"\nLa nueva longitud con resize() es:
"<<c.size()<<endl;
13 //la cadena permanece inalterada
14 cout<<"la cadena continua siendo: "<<c<<endl;
15 return 0;
16 }
Ejemplo.
1 #include <iostream>
2 #include <string>
3 using namespace std;
4 int main()
5 {
6 string cad = "";
7 if(cad.empty())///determina si la cadena se enccuentra
vacia
8 cout<<"\nLa cadena se encuentra vacia...";
9 else
10 cout<<"\nLa cadena contiene datos";
11 return 0;
12 }
12. Leer espacios con el método getline
El operador de extracción sobre cin no sirve para leer cadenas de caracteres con espacios en blanco.
Para esto se utiliza el método getline.
La sintaxis es la siguiente:
Getline lee la serie de caracteres desde el flujo de entrada y los guarda en una variable de tipo
cadena. Se leen hasta el final del flujo, hasta el primer carácter que coincide con el carcter final que
se haya especificado. Getline añade el carácter nulo al final de la cadena de manera automática.
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 char nombre[200],Color[100];
6 cout<<"Ingrese su nombre: ";cin.getline(nombre,200);
7 cout<<"\nDigite su color favorita: ";cin.getline(Color,200);
8 cout<<"\n"<<nombre<<" tu color favorito es "<<Color;
9 cin.get();
10 return 0;
11 }
Para convertir una cadena a un entero utilizamos la función atoi de la librería <cstdlib>Esta función
nos retorna el valor convertido.
Ejemplo. Programa que convierte una cadena a un entero y divide entre dos.
ENTRADA SALIDA
22 11
1 #include <iostream>
2 #include <cstdlib>
3 using namespace std;
4 int main()
5 {
6 int i;
7 char cadena[100];
8 cout<<"Digite un numero: ";cin>>cadena;
9 i=atoi(cadena)/2;
10 cout<<"\nTu numero es: "<<i;
11 return 0;
12 }
Utilizando tipo string
1 #include <iostream>
2 #include <cstdlib>
3 using namespace std;
4 int main()
5 {
6 int i;
7 string cadena;
8 cout<<"Digite un numero: ";cin>>cadena;
9 i=atoi(cadena.c_str())/2;
10 cout<<"\nTu numero es: "<<i;
11 return 0;
12 }