Vous êtes sur la page 1sur 12

Estructura de un programa C++

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";
}

Vamos a comentar cada una de las partes del programa anterior:


// Programa que muestra el mensaje Hola mundo!!! por pantalla
Esta línea es un comentario.
Todas las líneas que comienzan con dos barras (//) se consideran comentarios y no tienen ningún efecto sobre el
comportamiento del programa.
Los comentarios también pueden ir entre los símbolos /* y */. En ese caso pueden ocupar más de una línea.
#include <iostream>
Esta línea es una directiva del preprocesador.
Todas las líneas que comienzan con el símbolo # son directivas para el preprocesador.
La directiva #include, sirve para insertar ficheros externos dentro de nuestro programa. Estos ficheros son conocidos como
ficheros incluidos, ficheros de cabecera o headers.
En este caso, la directiva #include <iostream> indica al preprocesador que en este programa se debe incluir el archivo
iostream. El código fuente no cambia, pero el compilador ve el fichero incluido.
iostream es la librería de entrada/salida de C++. Si no se incluye esta librería no podemos utilizar la instrucción cout para
imprimir un mensaje por pantalla.
La inclusión de ficheros la podemos realizar de dos formas:
#include <nombre de fichero cabecera>
#include "nombre de fichero de cabecera"
En el primer caso el preprocesador buscará en los directorios include definidos en el compilador.
En el segundo, se buscará primero en el directorio actual, es decir, en el que se encuentre el fichero fuente, si no existe
en ese directorio, se buscará en los directorios include definidos en el compilador. Si se proporciona el camino como parte
del nombre de fichero, sólo se buscará en el directorio especificado.
using namespace std;

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";

Esta línea muestra por pantalla Hola mundo!!! y un salto de línea.


cout es un objeto que se declara en el archivo iostream en el espacio de nombres std, por eso tenemos que incluir ese
archivo al principio del programa y declarar que vamos a utilizar ese espacio de nombres.
La instrucción acaba con punto y coma.
El punto y coma se utiliza para indicar el final de una instrucción y sirve para separarla de instrucciones posteriores.

DECLARACION DE VARIABLES EN C++


primero como ya dijimos antes se especifica el tipo de dato, después se nombra, y si se asigna un valor debe ir después
de un signo de igualdad (” = “) , si se van a declarar varias variables solo se separan con comas (” , “) dentro de la misma
linea del tipo de dato especificado y al finalizar escribir punto y coma (” ; “). ejemplos:
tipo de dato int y asignación de valor .

tipo de dato float y asignación de valor .


tipo de dato char y asignación de valor caracter (debe ser entre comillas simples).

tipo de dato char y asignación de valor cadena de caracteres (debe ser entre comillas).

tipo de dato bool y asignación de valor.


Tipos de datos en C++
Los tipos de datos en C++ se clasifican en primitivos y derivados.

Los tipos de datos primitivos son los que están definidos dentro del lenguaje.

Los tipos de datos derivados se forman a partir de los tipos primitivos.

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.

Tipos de datos C++ numéricos enteros


El tipo de dato numérico entero es un subconjunto finito de los números enteros del mundo real. Pueden ser positivos o
negativos.

En C++ los tipos de datos numéricos enteros son los siguientes:

Número de bytes
Tipo de Dato Descripción Rango
típico
short Entero corto 2 -32768 a 32767

int Entero 4 -2147483648 a +2147483647

long Entero largo 4 -2147483648 a +2147483647

char Carácter 1 -128 a 127


Con los tipos enteros pueden utilizarse los calificadores signed y unsigned. Estos calificadores indican si el número tiene
signo o no. Si se usan solos, sin indicar el tipo de dato se asume int.
Por ejemplo, las siguientes declaraciones son equivalentes:
unsigned int x; equivale a: unsigned x;
Usando estos calificadores podemos tener los siguientes tipos enteros:
Número de
Tipo de Dato Descripción Rango
bytes típico
signed short Entero corto 2 -32768 a 32767

unsigned short Entero corto sin signo 2 0 a 65535

signed int Entero 4 -2147483648 a +2147483647

unsigned int Entero sin signo 4 0 a 4294967295

signed long Entero largo 4 -2147483648 a +2147483647

unsigned long Entero largo sin signo 4 0 a 4294967295

signed char Carácter 1 -128 a 127

unsigned char Carácter sin signo 1 0 a 255


Podemos ver que los datos enteros de tipo signed son equivalentes a los enteros sin utilizar el calificador:
signed int a; es equivalente a escribir int a;
Tipos de datos numéricos reales
El tipo de dato numérico real es un subconjunto finito de los números reales. Pueden ser positivos o negativos.
En C++ los tipos de datos numéricos reales son los siguientes:
Tipo de Número de bytes
Descripción Rango
Dato típico
Real (Número en coma Positivos: 3.4E-38 a 3.4E38
float 4
flotante) Negativos: -3.4E-38 a -3.4E38
Real doble(Número en coma Positivos: 1.7E-308 a 1.7E308
double 8
flotante de doble precisión) Negativos: -1.7E-308 a -1.7E308
Positivos: 3.4E-4932 a 1.1E4932
long
Real doble largo 10 Negativos: -3.4E-4932 a -1.1E4932
double
Tipo lógico
Los datos de este tipo sólo pueden contener dos valores: true ó false (verdadero ó falso).
Si se muestran como enteros, el valor true toma el valor 1 y false el valor 0.
Tipo de Número de bytes
Descripción Rango
Dato típico

bool Dato de tipo lógico 1 0, 1

Tipo carácter extendido


Este tipo se utiliza para representar caracteres UNICODE. Utiliza 2 bytes a diferencia del tipo char que solo utiliza 1.
Tipo de Número de bytes
Descripción Rango
Dato típico

wchar_t Carácter Unicode 2 0 a 65535

Entrada y salida de datos en C++. Uso de cin y cout


La entrada y salida de datos en C++ es simple (al menos para los casos más comunes). Con esto hago una comparación
entre C++ y Java, pues leer una entrada del usuario por teclado en C++ es bastante simple mientras que en Java implica
una serie de conceptos adicionales que la hacen un tanto más complicada. Por suerte para nosotros en esta sección
veremos cómo leer por teclado en C++, en otras palabras, asignar a una variable el valor que el usuario escriba por el
teclado. Adicional a esto veremos también cómo mostrar texto por pantalla en C++, es decir, salida de datos.

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++.

Salida de texto por pantalla 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.

Veamos algunos ejemplos para mostrar texto por pantalla en C++:

Ejemplo 1 de impresión de texto por pantalla en C++


#include "iostream"

using namespace std;

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.

Ejemplo 2 de impresión de texto por pantalla en C++

#include "iostream"
#include "string"

using namespace std;

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

//Se concatenan y muestran los valores por pantalla con cout<<


cout << salida1 << " " << numero << ". " << salida2 << endl;

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:

Entrada o lectura de datos en C++

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"

using namespace std;

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

string nombre;//En esta variable estará almacenado el nombre ingresado.


cin >> nombre; //Se lee el nombre

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.

Ejemplo 2 de lectura de datos en C++

#include "iostream"
#include "string"

using namespace std;

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

Ahora bién, la sintaxis utilizada en la programación de C++ es la siguiente:

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;

default: bloque de instrucciones por defecto


}
Estructuras repetitivas
Hemos visto cómo comprobar condiciones, pero no cómo hacer que una cierta parte de un programa se repita un cierto
número de veces o mientras se cumpla una condición (lo que llamaremos un “bucle”). En C tenemos varias formas de
conseguirlo.

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.

En el primer caso, su sintaxis es

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;

printf("Teclea un número (0 para salir): ");


scanf("%d", &numero);
while (numero!=0)
{
if (numero > 0) printf("Es positivo\n");
else printf("Es negativo\n");
printf("Teclea otro número (0 para salir): ");
scanf("%d", &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

for (valorInicial; CondiciónRepetición; Incremento)


Sentencia;

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;

for (contador=1; contador<=10; contador++)


printf("%d ", 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.

Vous aimerez peut-être aussi