Académique Documents
Professionnel Documents
Culture Documents
C++ es un lenguaje de programación orientado a objetos híbrido. Esto quiere decir que permite realizar programas
estructurados sin la orientación a objetos y programas orientados a objetos.
En este punto veremos la estructura de un programa que no utiliza orientación a objetos. En temas posteriores
estudiaremos la estructura de un programa C++ orientado a objetos.
La estructura general de un programa C++ es la siguiente:
Comentarios
Directivas del preprocesador
Declaración de variables globales y funciones
int main( ) // Función principal main
{
Declaraciones locales de la función principal
Instrucciones de la función principal
}
Otras funciones:
funcion1(.....)
{
Declaraciones locales de la función 1
Instrucciones de la función 1
}
funcion2(.....)
{
Declaraciones locales de la función 2
Instrucciones de la función 2
}
.....
Por ejemplo:
// Programa que muestra el mensaje Hola mundo!!! por pantalla
#include <iostream>
using namespace std;
int main(void)
{
cout << "Hola mundo!!!\n";
}
En grandes proyectos formados por varios archivos, es posible que en archivos diferentes del mismo proyecto se
encuentren recursos con el mismo nombre. Para evitar confusiones y saber a qué recurso estamos haciendo referencia se
utilizan los espacios de nombres (namespace).
Un espacio de nombres es básicamente un conjunto de nombres de recursos (clases, métodos, funciones, etc) en el cual
todos los nombres son únicos.
Todos los elementos de la biblioteca estándar de C++ se declaran dentro de un espacio de nombres llamado std.
Con la instrucción using namespace std estamos indicando que vamos a usar este espacio de nombres.
Esta línea se incluirá en la mayoría de programas que escribamos en C++.
Si no la escribimos, la instrucción cout << "Hola mundo!!!\n"; tendríamos que escribirla indicando el espacio de nombres
donde se declara cout así:
std::cout<<”Hola mundo!!!\n”;
int main (void)
Un programa en C++ no orientado a objetos está formado básicamente por una o varias funciones.
La función main es la función principal del programa.
La función principal es el punto de inicio del programa. Si el programa contiene varias funciones, la ejecución del mismo
comienza por la función main.
Todo programa escrito en C++ debe contener una función main.
Las llaves { } indican donde empiezan y donde acaban las instrucciones de la función.
cout << "Hola mundo!!!\n";
tipo de dato char y asignación de valor cadena de caracteres (debe ser entre comillas).
Los tipos de datos primitivos son los que están definidos dentro del lenguaje.
En este tema veremos los tipos primitivos y en temas siguientes estudiaremos los tipos derivados.
Los tipos de datos primitivos en C++ son: numéricos enteros, numéricos reales, tipo lógico y tipo carácter ampliado.
Número de bytes
Tipo de Dato Descripción Rango
típico
short Entero corto 2 -32768 a 32767
Vamos a comenzar primero con aprender a mostrar texto por pantalla en C++. Este orden se debe a que cuando
queremos pedirle algún dato al usuario primero debemos hacerle saber lo que queremos que ingrese y para hacérselo
saber debemos mostrarle un mensaje con las indicaciones, por tal motivo es importante primero saber mostrar texto en
pantalla en C++ y luego a leer texto por teclado en C++.
Mostrar texto por pantalla en C++ es muy simple. Para imprimir una salida de texto en C++ se hace uso de la
instrucción cout<< es importante tener en cuenta que la instrucción cout siempre va acompañada de << para controlar
el flujo de datos que sale. No te fijes mucho en ellos, solo ten siempre presente que cout viene acompañado de <<para
tener cout<< como resultado.
int main()
{
//Se muestra un mensaje por pantalla.
cout << "Hola Mundo" << " Desde AAP." << endl;
return 0;
}
El ejemplo que acabas de ver es bastante sencillo, excepto por un detalle. Si ejecutar este código en tu pantalla
aparecerá un mensaje diciendo "Hola Mundo Desde AAP.". Tal como habrás notado el operador << se usa para
concatenar (unir) dos cadenas de texto por eso el resultado es el obtenido. Luego se usa endl indicando el final de la
línea lo cual crea un salto de línea. No es obligatorio pero es recomendable.
#include "iostream"
#include "string"
int main()
{
string salida1 = "Ejemplo de salida"; //El valor de esta variable se mostrará en pantalla
int numero = 2; //Este valor también se mostrará en pantalla.
string salida2 = "Desde AAP."; //Estos valores se concatenarán en una única salida
return 0;
}
En este ejemplo de salida por pantalla hemos visto que también es posible usar la instrucción cout para mostrar en
pantalla el valor de las variables así sean numéricas o cadenas de texto. También vimos que podemos concatenar los
valores de esas variables entre sí y también concatenarlas con otros valores directamente (espacios, puntos, símbolos,
etc.).
Ya tenemos claro cómo mostrar texto por pantalla en C++ ahora haremos uso de este concepto y veremos cómo leer
texto por teclado en C++. Veamos:
Tal como mencioné hace un momento, la lectura de datos en C++ es bastante simple. Leer datos por teclado en C++ se
hace usando el comando cin >> es importante notar el uso de los dos signos >> que son usados para controlar el flujo de
datos. No te preocupes mucho por ellos, solo ten en cuenta que cada vez que vaya a usar la instrucción cin debes
agregarle >> para quedar con un cin>>. Una manera muy sencilla de recordar esta instrucción es que in significa entrar y
como estamos programando en C++ le añadimos la letra C al comienzo quedando así cin>> (sin olvidar los >>).
Veamos unos ejemplos simples para leer datos en C++. Recuerda como dije más arriba que lo ideal para leer datos es
indicarle al usuario qué es lo que esperamos que ingrese por lo que en estos ejemplos usaremos también lo recién
aprendido (mostrar texto por pantalla).
Ejemplo 1 de lectura de datos en C++
#include "iostream"
#include "string"
int main()
{
cout << "Hola! Este es un ejemplo en C++" << "\n" << "Por favor ingrese su nombre:" << endl; //La instrucción \n es un
salto de línea Mostrando los textos separados
cout << "Bienvenido al sistema " << nombre << ". Gracias por usar nuestra aplicación" << endl;
return 0;
}
En este ejemplo hemos hecho un pequeño sistema de bienvenida personalizado para el usuario leyendo el valor por
teclado de su nombre. En el comando cin>> se debe poner, después de >>, el nombre de la variable en la cual se
almacenará el valor que el usuario ingrese. Por tal motivo primero se declaró primero una variable llamada nombre y
luego se uso cin >> nombre indicando que lo que l usuario ingrese se almacenará en dicha variable.
#include "iostream"
#include "string"
int main()
{
cout << "Hola! Aqui podras realizar sumas" << endl;//Mensaje de bienvenida
float numero1, numero2; //Se declaran los números que se sumarán (pueden ser decimales)
cout << "Por favor ingrese el primer valor: " << endl; //Se pide el primer numero
cin >> numero1; //Se asigna el primer valor a numero1
cout << "Por favor ingrese el segundo valor: " << endl; //Se pide el segundo numero
cin >> numero2; //Se asigna el segundo valor a numero2
cout << "El resultado de la suma de " << numero1 << " + " << numero2 << " es: " << numero1+numero2 << endl; //Se
muestra el resultado.
return 0;
}
Sentencia if
La instrucción if es, por excelencia, la más utilizada para construir estructuras de control de flujo.
SINTAXIS
Primera Forma
if (condicion)
{
Set de instrucciones
}
siendo "condicion" el lugar donde se pondrá la condición que se tiene que cumplir para que sea verdadera la sentencia y
así proceder a realizar el "set de instrucciones" o código contenido dentro de la sentencia.
Segunda Forma
Ahora veremos la misma sintaxis pero ahora le añadiremos la parte "Falsa" de la sentencia:
if (condicion)
{
Set de instrucciones //PARTE VERDADERA
}
else
{
Set de instrucciones 2 //Parte FALSA
}
La forma mostrada anteriormente muestra la union de la parte "VERDADERA" con la nueva secuencia la cual es la parte
"FALSA" de la sentencia de decision "IF" en la cual esta compuesta por el:
else
{
Set de instrucciones 2 //Parte FALSA
}
la palabra "else" o "De lo contrario" indica al lenguaje que de lo contrario al no ser verdadera o no se cumpla la parte
verdadera entonces realizara el "set de instrucciones 2".
Sentencia switch
switch es otra de las instrucciones que permiten la construcción de estructuras de control. A diferencia de if, para
controlar el flujo por medio de una sentencia switch se debe de combinar con el uso de las sentencias case y break.
Notas: cualquier número de casos a evaluar por switch así como la sentencia default son opcionales. La sentencia switch
es muy útil en los casos de presentación de menus.
Sintaxis:
switch (condición)
{
case primer_caso:
bloque de instrucciones 1
break;
case segundo_caso:
bloque de instrucciones 2
break;
case caso_n:
bloque de instrucciones n
break;
while
Si queremos hacer que una sección de nuestro programa se repita mientras se cumpla una cierta condición, usaremos la
orden “while”. Esta orden tiene dos formatos distintos, según comprobemos la condición al principio o al final.
while (condición)
sentencia;
Es decir, la sentencia se repetirá mientras la condición sea cierta. Si la condición es falsa ya desde un principio, la
sentencia no se ejecuta nunca. Si queremos que se repita más de una sentencia, basta agruparlas entre { y }. Como
ocurria con "if", puede ser recomendable incluir siempre las llaves, aunque sea una única sentencia, para evitar errores
posteriores difíciles de localizar.
Un ejemplo que nos diga si cada número que tecleemos es positivo o negativo, y que pare cuando tecleemos el número
0, podría ser:
/*---------------------------*/
/* Ejemplo en C nº 26: */
/* C026.C */
/* */
/* La orden "while" */
/* */
/* Curso de C, */
/* Nacho Cabanes */
/*---------------------------*/
#include <stdio.h>
int main()
{
int numero;
return 0;
}
En este ejemplo, si se introduce 0 la primera vez, la condición es falsa y ni siquiera se entra al bloque del “while”,
terminando el programa inmediatamente.
Nota: si recordamos que una condición falsa se evalúa como el valor 0 y una condición verdadera como una valor
distinto de cero, veremos que ese “while (numero != 0)” se podría abreviar como “while (numero)”.
Ejercicios propuestos:
Crear un programa que pida al usuario su contraseña (numérica). Deberá terminar cuando introduzca como contraseña
el número 4567, pero volvérsela a pedir tantas veces como sea necesario.
Crea un programa que escriba en pantalla los números del 1 al 10, usando ?while?.
Crea un programa que escriba en pantalla los números pares del 26 al 10 (descen-diendo), usando ?while?.
Crear un programa calcule cuantas cifras tiene un número entero positivo (pista: se puede hacer dividiendo varias veces
entre 10).
do ... while
Este es el otro formato que puede tener la orden “while”: la condición se comprueba al final. El punto en que comienza
a repetirse se indica con la orden “do”, así:
do
sentencia;
while (condición);
Al igual que en el caso anterior, si queremos que se repitan varias órdenes (es lo habitual), deberemos encerrarlas entre
llaves. Nuevamente, puede ser recomendable incluir siempre las llaves, como costumbre.
Como ejemplo, vamos a ver cómo sería el típico programa que nos pide una clave de acceso y nos nos deja entrar hasta
que tecleemos la clave correcta. Eso sí, como todavía no sabemos manejar cadenas de texto, la clave será un número:
/*---------------------------*/
/* Ejemplo en C nº 27: */
/* C027.C */
/* */
/* La orden "do..while" */
/* */
/* Curso de C, */
/* Nacho Cabanes */
/*---------------------------*/
#include <stdio.h>
int main()
{
int valida = 711;
int clave;
do
{
printf("Introduzca su clave numérica: ");
scanf("%d", &clave);
if (clave != valida) printf("No válida!\n");
}
while (clave != valida);
printf("Aceptada.\n");
return 0;
}
En este caso, se comprueba la condición al final, de modo que se nos preguntará la clave al menos una vez. Mientras que
la respuesta que demos no sea la correcta, se nos vuelve a preguntar. Finalmente, cuando tecleamos la clave correcta, el
ordenador escribe “Aceptada” y termina el programa.
Ejercicios propuestos:
Crear un programa que pida números positivos al usuario, y vaya calculando la suma de todos ellos (terminará cuando se
teclea un número negativo o cero).
Crea un programa que escriba en pantalla los números del 1 al 10, usando "do..while".
Crea un programa que escriba en pantalla los números pares del 26 al 10 (descen-diendo), usando "do..while".
Crea un programa que pida al usuario su código de usuario (un número entero) y su contraseña numérica (otro número
entero), y no le permita seguir hasta que introduzca como código 1024 y como contraseña 4567.
for
Ésta es la orden que usaremos habitualmente para crear partes del programa que se repitan un cierto número de veces.
El formato de “for” es
Así, para contar del 1 al 10, tendríamos 1 como valor inicial, <=10 como condición de repetición, y el incremento sería de
1 en 1. Por tanto, el programa quedaría:
/*---------------------------*/
/* Ejemplo en C nº 28: */
/* C028.C */
/* */
/* Uso básico de "for" */
/* */
/* Curso de C, */
/* Nacho Cabanes */
/*---------------------------*/
#include <stdio.h>
int main()
{
int contador;
return 0;
}
Recordemos que “contador++” es una forma abreviada de escribir “contador=contador+1”, de modo que en este
ejemplo aumentamos la variable de uno en uno.