Professional Documents
Culture Documents
- 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.
Ejemplo: #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.
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>
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.
Ejemplo:
Los tipos de variables en C++ se dividen en 3 categorías
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:
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.
Primer paso:
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:
Uso el ‘namespace std’, para poder usar las palabras reservadas cout y cin
using namespace std;
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;
}
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.