You are on page 1of 12

Estructura general del programa C++

- Directiva de preprocesamiento.

Las directivas de preprocesador, tales como #define y #ifdef, se utilizan normalmente para hacer que
los programas de origen sean más fáciles de modificar y facilitar la compilación en diferentes entornos
de ejecución.

Las directivas del archivo de código fuente indican al preprocesador que realice acciones específicas.
Por ejemplo, el preprocesador puede reemplazar tokens en el texto, insertar el contenido de otros
archivos en el archivo de código fuente o suprimir la compilación de parte del archivo quitando
secciones de texto. Las líneas de preprocesador se reconocen y se ejecutan antes de la expansión de
macro. Por consiguiente, si una macro se expande en algo que se parezca a un comando de
preprocesador, el preprocesador no reconocerá ese comando.

Las instrucciones de preprocesador utilizan el mismo juego de caracteres que las instrucciones del
archivo de código fuente, con la excepción de que no se admiten secuencias de escape.

El signo de número (#) debe ser el primer carácter que no sea un carácter de espacio en blanco de la
línea que contiene la directiva; pueden aparecer caracteres de espacio en blanco entre el signo de
número y la primera letra de la directiva. Algunas directivas incluyen argumentos o valores. Cualquier
texto que siga a una directiva (excepto un argumento o un valor que forme parte de la directiva) debe
ir precedido por un delimitador de comentario de línea única (//) o incluido entre delimitadores de
comentario (/* */). Las líneas que contienen directivas de preprocesador se pueden continuar
precediendo inmediatamente la marca de fin de línea con una barra diagonal inversa (\).

Las directivas de preprocesador pueden aparecer en cualquier lugar de un archivo de código fuente,
pero solo se aplican al resto del archivo de código fuente.

Directivas reconocidas por el preprocesador:

#define #error #import #undef

#elif #if #include #using

#else #ifdef #line #endif


#ifndef #pragma

Ejemplo: #include

Librerías o bibliotecas usadas con #include

En C++, se conoce como librerías (o bibliotecas) a cierto tipo de archivos que podemos importar
o incluir en nuestro programa. Estos archivos contienen las especificaciones de diferentes
funcionalidades ya construidas y utilizables que podremos agregar a nuestro programa, como por
ejemplo leer del teclado o mostrar algo por pantalla entre muchas otras más.

Al poder incluir estas librerías con definiciones de diferentes funcionalidades podremos ahorrarnos
gran cantidad de cosas, imaginemos por ejemplo que cada vez que necesitemos leer por teclado,
debamos entonces crear una función que lo haga (algo realmente complejo), al poder contar con
las librerías en C++, podremos hacer uso de una gran variedad de funciones que nos facilitaran
la vida y aumentarán la modularidad de nuestros códigos.

Librerías Estándar de C++ (Standar Template Library o STL)

A continuación, pondré algunas de las librerías de uso más común de C++ y que forman parte de
las librerías estándar de este lenguaje.
fstream:
Flujos hacia/desde ficheros. Permite la manipulación de archivos desde el programar, tanto leer
como escribir en ellos.
iosfwd:
Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estándar. Por
ejemplo, ostream.
iostream:
Parte del a STL que contiene los algoritmos estándar, es quizá la más usada e importante (aunque
no indispensable).
La biblioteca list:
Parte de la STL relativa a contenedores tipo list; listas doblemente enlazadas
math:
Contiene los prototipos de las funciones y otras definiciones para el uso y manipulación de
funciones matemáticas.
memory:
Utilidades relativas a la gestión de memoria, incluyendo asignadores y punteros inteligentes
(auto_ptr).
"auto_ptr" es una clase que conforma la librería memory y permite un fácil manejo de punteros y
su destrucción automáticamente.
Biblioteca new: Manejo de memoria dinámica
numeric:
Parte de la librería numérica de la STL relativa a operaciones numéricas.
ostream:
Algoritmos estándar para los flujos de salida.

queue:
Parte de la STL relativa a contenedores tipo queue (colas de objetos).

Librería stdio:
Contiene los prototipos de las funciones, macros, y tipos para manipular datos de entrada y salida.
Librería stdlib:
Contiene los prototipos de las funciones, macros, y tipos para utilidades de uso general.
string:
Parte de la STL relativa a contenedores tipo string; una generalización de las cadenas
alfanuméricas para albergar cadenas de objetos. Muy útil para el fácil uso de las cadenas de
caracteres, pues elimina muchas d elas dificultades que generan los char
typeinfo:
Mecanismo de identificación de tipos en tiempo de ejecución
vector:
Parte de la STL relativa a los contenedores tipo vector; una generalización de las matrices
unidimensionales C/C++
forward_list
Esta librería es útil para implementar con gran facilidad listas enlazadas simples.
list
Permite implementar listas doblemente enlzadas (listas enlazadas dobles) facilmente.
iterator
Proporciona un conjunto de clases para iterar elementos.
regex
Proporciona fácil acceso al uso de expresiones regulares para la comparación de patrones.

thread
Útil para trabajar programación multihilos y crear múltiples hilos en nuestra aplicación.
Ejemplo de cómo se escribe el código:
#include "iostream"
#include "string"
#include <math.h>
#include <conio.h>

using namespace std;

- Declaraciones variables globales.

Son variables globales las que definimos fuera de cualquier función, incluyendo main().

Este tipo de variable será ubicada en el segmento de datos de la memoria, utilizada por el
programa, y existirá todo el tiempo que esté ejecutándose.

Este tipo de variables son automáticamente inicializadas en cero (0), cuando el programa
comienza a ejecutarse.

Son accesibles a todas las funciones que estén declaradas en el mismo, por lo que cualquiera de
ellas podrá actuar sobre el valor de las mismas.

Se colocan antes de la función main()

Ejemplo:
Los tipos de variables en C++ se dividen en 3 categorías

1)Entero: controlan números enteres


2)Punto flotante: controlan valores con partes fraccionadas
3)void: tipo de valores vacíos.

Tipos fundamentales de variables del lenguaje C++

Categoría Tipo Contenido

Entero char El tipo char es un tipo entero que normalmente


contiene miembros del juego de caracteres de la
ejecución básica que, de forma predeterminada,
es ASCII, en Microsoft C++.

El compilador de C++ trata las variables del


tipo char, signed char y unsigned char como si
tuvieran tipos diferentes. Las variables del
tipo char se promueven a int como si fueran del
tipo signed char de forma predeterminada, a
menos que se use la opción de compilación /J. En
ese caso se tratan como tipo unsigned char y se
promueven a int sin la extensión de signo.

bool El tipo bool es un tipo entero que puede tener


uno de dos valores: true o false. Su tamaño no
está especificado.

short El tipo short int (o simplemente short) es un


tipo entero que es superior o igual al tamaño del
tipo char e inferior o igual al tamaño del tipo int.

Los objetos del tipo short se pueden declarar


como signed short o unsigned short.Signed
short es un sinónimo de short.
Categoría Tipo Contenido

int El tipo int es un tipo entero que es superior o


igual al tamaño del tipo short int e inferior o
igual al tamaño del tipo long.

Los objetos del tipo int se pueden declarar


como signed int o unsigned int.Signed int es un
sinónimo de int.

__int8, __int16, __int32, __int64, __int128 En el entero con tamaño __int``n, n es el


tamaño, en bits, de la variable de entero.
(__int8, __int16, __int32, __int64 y __int128 son
palabras clave específicas de Microsoft. No todos
los tipos están disponibles en todas las
arquitecturas).

long El tipo long (o long int) es un tipo entero que es


superior o igual al tamaño del tipo int.

Los objetos del tipo long se pueden declarar


como signed long o unsigned long.Signed long es
un sinónimo de long.

long long Mayor que long sin signo.

Los objetos del tipo long long se pueden


declarar como signed long long o unsigned long
long.Signed long long es un sinónimo de long
long.
Categoría Tipo Contenido

wchar_t, __wchar_t Una variable del tipo wchar_t indica un carácter


ancho o multibyte. De forma
predeterminada, wchar_t es un tipo nativo, pero
se puede usar /Zc:wchar_t- para
convertir wchar_t en una typedef para unsigned
short. El __wchar_t tipo es un sinónimo
específico de Microsoft para el
tipo wchar_t nativo.

Use el prefijo L delante de un carácter o un literal


de cadena para designar el tipo de carácter
ancho.

Punto float El tipo float es el tipo de punto flotante más


flotante pequeño.

double El tipo double es un tipo flotante superior o igual


al tipo float, pero inferior o igual al tamaño del
tipo long double.

Específico de Microsoft: la representación


de long double y double es idéntica. Sin
embargo, long double y double son tipos
distintos.

long double El tipo long double es un tipo de punto flotante


que es superior o igual al tipo double.
- Función MAIN().

En c++ cada programa tiene una función primaria o principal llamada “main”, esta
función sirve como punto de partida para la ejecución del programa, controla la
ejecución del programa, llamando a otras funciones. Ejemplo:

- Funciones definidas por el usuario.

Las funciones de usuario son, como su nombre indica, las que el propio usuario declara, de igual
manera que declara procedimientos. Las funciones nacen con el propósito de ser subprogramas que
siempre tienen que devolver algún valor.

Las dos principales diferencias entre procedimientos y funciones son:

Las funciones siempre devuelven un valor al programa que las invocó.


Para llamar a un procedimiento se escribe su nombre en el cuerpo del programa, y si los necesita, se
incluyen los parámetros entre paréntesis. Para invocar una función es necesario hacerlo en una
expresión.
Las funciones de usuario vienen definidas por un nombre, seguidas de dos paréntesis () entre los que
puede haber o no argumentos. Los argumentos son valores que se le pasan a la función cuando se
llama.
Ejemplo de funciones definidas por el usuario.

Funcionamiento de programa en mis propias palabras.

Desarrollo del código en lenguaje C++

Primer paso:

Existes varios compiladores de lenguaje C++, me decidí a utilizar una de las


versiones gratuitas de Visual Studio de la empresa Microsoft.
Después de instalarlo, cargue la opción consola para escribir el código.

Use las dos barras diagonales para colocar los comentarios, estos son solo de
carácter informativo y no tiene ningún tipo de ejecución en el programa:

// ConsoleApplication1.cpp: define el punto de entrada de la aplicación de consola.


// Programa desarrollado por Isaac Vargas Abreu
// Fecha 09/04/2018

// Primer programa en C++

Posteriormente uso la directiva de preprocesamiento #include

Con las librerías iostream y cstdlib

#include <iostream> para operaciones de entrada/salida


#include <cstdlib>

Uso el ‘namespace std’, para poder usar las palabras reservadas cout y cin
using namespace std;

Procedo a definir las variables globales antes de usar la función main()


// Definiendo variables GLOBALES
int n1,n2,n3;

Y posteriormente doy paso a la función main(), elaboro dentro de main() una pequeña
rutina donde capturo 3 notas o cifras y saco el promedio de las cifras, imprimiendo
el resultado en pantalla:
int main()
{
double promedio;
cout << "nota 1: "; cin >> n1;
cout << "nota 2: "; cin >> n2;
cout << "nota 3: "; cin >> n3;
promedio = (n1 + n2 + n3) / 3.0;
cout << "Promedio: ";
cout <<promedio<<endl;
system("pause");
return 0;
}

Se utiliza la palabra reservada ‘cout’ acompañada de << para la salida de datos en


pantalla y la palabra reservada ‘cin<<’ para la captura de datos en este caso se
capturan 3 números en tres variables numéricas n1, n2 y n3.

Y hago el cálculo del promedio a través de una formula sencilla.


promedio = (n1 + n2 + n3) / 3.0;

Para posteriormente imprimirlas en pantalla con cout y establezco una pausa para que
se pueda apreciar el resultado.
Resultado en pantalla:

Curso:
1658758 - ESTRUCTURA DEL LENGUAJE DE PROGRAMACION C++ (NIVEL I)
Desarrollo actividad 1
Isaac Vargas Abreu.

You might also like