Está en la página 1de 4

Algoritmos, Estructura de Datos & Objetos

ADDENDA.
Componentes y Librerías estándar de C++.

1. Lenguaje C++

En las páginas anteriores ya han ido apareciendo algunas características importantes


del lenguaje C++. En realidad, el lenguaje C++ está constituido por tres elementos:

 el compilador,
 el preprocesador
 y la librería estándar.

1.1. COMPILADOR

El compilador es el elemento más característico del lenguaje C++. Como ya se ha


dicho anteriormente, su misión consiste en traducir a lenguaje de máquina el
programa C++ contenido en uno o más ficheros fuente. El compilador es capaz de
detectar ciertos errores durante el proceso de compilación, enviando al usuario el
correspondiente mensaje de error.

1.2. PREPROCESADOR.
El preprocesador es un componente característico de C++, que no El preprocesador
existe en otros lenguajes de programación El preprocesador actúa realiza muchas
sobre el programa fuente antes de que empiece la compilación otras funciones que
propiamente dicha, para realizar ciertas operaciones. Una de estas se irán viendo a
operaciones es, por ejemplo, la sustitución de constantes simbólicas. medida que se vaya
explicando el
Así, es posible que un programa haga uso repetidas veces del valor lenguaje. Lo
3.141592654, correspondiente al número PI. Es posible definir una importante es
constante simbólica llamada PI que se define como 3.141592654 al recordar que actúa
comienzo del programa y se introduce luego en el código cada vez siempre por
delante del
que hace falta. En realidad PI no es una variable con un determinado
compilador (de ahí
valor: el preprocesador chequea todo el programa antes de
su nombre),
comenzar la compilación y sustituye el texto PI por el texto
facilitando su tarea
3.141592654 cada vez que lo encuentra. Las constantes simbólicas y la del
suelen escribirse completamente con mayúsculas, para distinguirlas programador.
de las variables.

Mg. Jorge Medi@nero A. Pag. 1


Conpilador GCC para Win32 - ISO/IEC 14882:1998

1.3. LIBRERÍA ESTÁNDAR: Archivos de cabecera


Con objeto de mantener el lenguaje lo más sencillo posible, muchas sentencias que
existen en otros lenguajes, no tienen su correspondiente contrapartida en C++. Por
ejemplo, en C++ no hay sentencias para entrada y salida de datos. Es evidente, sin
embargo, que esta es una funcionalidad que hay que cubrir de alguna manera. El
lenguaje C++ lo hace por medio de funciones preprogramadas que se venden o se
entregan junto con el compilador.

Estas funciones están agrupadas en un conjunto de librerías de código objeto, que


constituyen la llamada librería estándar del lenguaje. La llamada a dichas funciones
se hace como a otras funciones cualesquiera, y deben ser declaradas antes de ser
llamadas por el programa (más adelante se verá cómo se hace esto por medio de la
directiva del preprocesador #include).

Archivos de Cabecera.- Un archivo de cabecera contiene las declaraciones de


objetos y funciones de la biblioteca agregada con la directiva de #include. El nuevo
ANSI/ISO C++ ha cambiado el convenio o notación de los archivos de cabecera.
Así, ahora es posible utilizar solo los nombres de las bibliotecas sin el sufijo .h, por
ejemplo se puede usar:
iostream.h por iostream
En otros casos, basta con anteponer el prefijo c a la antigua librería, como en:
math.h por cmath
stdlib.h por cstdlib

1.5. Ficheros de código fuente.

El código de cualquier programa escrito en C++ se almacena en uno o


más ficheros, en el disco del ordenador. La magnitud del programa y su IMPORTANTE
estructura interna determina o aconseja sobre el número de ficheros a
utilizar. Como se verá más adelante, la división de un programa en varios
ficheros es una forma de controlar su manejo y su modularidad. Cuando Recuérdese
los programas son pequeños (hasta 50 -100 líneas de código), un solo además que
cada vez que
fichero suele bastar. Para programas más grandes, y cuando se quiere
se introduce un
mantener más independencia entre los distintos subprogramas, es
cambio en el
conveniente repartir el código entre varios ficheros. programa hay
La compilación se realiza a nivel de fichero, por lo que sólo los ficheros que volver a
modificados deben ser compilados de nuevo. Si el programa está compilarlo y
repartido entre varios ficheros pequeños esta operación se realiza mucho luego ejecutar
más rápidamente. esta ultima
versión.

1.6. Flujos I/O: Lectura y escritura de datos

La lectura y escritura de datos se realiza por medio de operadores y funciones que se


encuentran en una librería llamada iostream (input/output stream). Las declaraciones
de estas sentencias de esta librería están en un fichero llamado iostream.h.

En C++ las entradas son leídas desde streams y las salidas son escritas en streams.
La palabra stream quiere decir algo así como canal, flujo o corriente.

IDE: Bloodshed Software Dev C++ Pag. 2


Algoritmos, Estructura de Datos & Objetos

1.7. Bibliotecas Header C++.

Referencian funciones internas de lenguaje, están agrupadas en un conjunto de


librerías de código objeto, que constituyen la llamada librería estándar del lenguaje.
La llamada a dichas funciones se hace por medio de la directiva de preprocesador
#include).

cstdlib
int strlen(char *) Devuelve la longitud de la cadena
strcpy(char *S1, char *S2) Copia la cadena S2 en S1
strcat(char *S1, char *S2) Agrega la cadena S2 a S1
int strcmp(char *S1, char *s2) Compara S1 y S2.
El resultado es:
0 : si son iguales las cadenas
<0: si S1 es menor que S2
>0: si S1 es mayor de S2

cmath
abs(double x) Valor Absoluto
sqrt(double x) Raiz Cuadrada
pow(double x,double y) Calcula x^y
sin(double x) Función Seno
cos(double x) Función Coseno
tan(double x) Función Tangente
exp(double x) Función Exponencial
log(double x) Logaritmo Natural
atof(char *) Convierte una cadena en número real

iostream
int atoi(char *) Convertir una cadena en entero
int rand() Genera # aleatorio entre 1 y 32767
srand(unsigned int) Poner punto de inicio para rand()
exit(int) Salir del programa
printf(const char*,var1, … ) Salida standard con formato
scanf(const char*, var1, … ) Entrada standard con formato

ctime
struct tm Estructura para hora, min, seg,
dia, mes, año
time(long *timer) Obtener la hora del PC en un long
tm *localtime( long *timer ); Convertir de long a struct tm

Mg. Jorge Medi@nero A. Pag. 3


Conpilador GCC para Win32 - ISO/IEC 14882:1998

1.8. Ejemplo de aplicación ANSI/ISO C++

/*
Name: UsoDeFuncionTime.cpp
Copyright:
Author: J.Medianero.A
Date: 03/05/09 14:20
Description: Uso de Libreria Time
*/
#include <iostream>
#include <ctime>

using namespace std;

void imprimeHora(void);
void delay(double seg);

int main(int argc, char* argv[]){


imprimeHora();
delay(2.5); //retardo de 2.5 seg.
imprimeHora();
delay(5.0); //retardo de 5.0 seg.

cout << "Fecha y hora del sistema:\n";


cout << __DATE__ << " " << __TIME__ << endl;

system("PAUSE");
return EXIT_SUCCESS;
}//:~

//rutina : salida de fecha y hora


void imprimeHora(void){
long t1;
tm *mihora; //estructura para time

time(&t1); //obtener los datos actuales (en long)


mihora = localtime(&t1); //convierte long a struct tm
std::cout << "Fecha: " << mihora->tm_mday << "/" ;
std::cout << mihora->tm_mon << "/" << mihora->tm_year + 1900;
std::cout << " Hora: " << mihora->tm_hour << ":" ;
std::cout << mihora->tm_min << ": " << mihora->tm_sec << std::endl;
}

//rutina : temporizador de retardo


void delay(double seg){
long start;
long end;

time(&start);
end = start;
while( difftime(end, start) < seg ){
time(&end);
}
}

IDE: Bloodshed Software Dev C++ Pag. 4

También podría gustarte