Está en la página 1de 47

UNIVERSIDAD TECNOLGICA DE PANAM

FACULTAD DE INGENIERA DE SISTEMAS COMPUTACIONALES

PROGRAMACION APLICADA I

BIBLIOTECA ESTNDAR DEL C

PROF. Dra. ADDYS DE LAM

INTEGRANTES

ACEVEDO, LAUREN MARTINEZ, MAURICIO PAU, RICARDO RODRIGUEZ, DAN VIVAR, LUIS E.

8-845-560 8-841-472

8-845-1130 8-857-210

GRUPO: 1-IL-122

20 DE ABRIL DE 2011

Biblioteca Estndar del C

2011

ndice

Introduccin y objetivos 3 La biblioteca estndar del C.. 4

La librera Stdio.h 8 La librera Conio.h. 14 La librera Ctype.h. 16 La librera Stdlib.h 21 La librera String.h. La librera Time.h.. La librera Math.h. 26 30 41

Programa Ejemplo . 43 Conclusiones 46 Bibliografa y Web-grafa.. 47

Biblioteca Estndar del C

2011

Introduccin
En el mundo actual, las tecnologas avanzan de forma impresionante a cada segundo, y nosotros somos los que vamos a seguir con este avance. Empezando el curso de nuestras vidas y fundando las bases de nuestra informacin en el tema de la programacin as como la lgica que utilizaremos en trabajos futuros tendemos el gusto de presentarles la presente investigacin sobre La Biblioteca Estndar del C, la cual pasaremos a definir posteriormente. Este proyecto no solo presenta aspectos del tema sino que tambin, profundiza en sus subdivisiones y mtodos que estn poseen, dando as explicaciones, trucos y ejemplos de los mtodos propuestos.

Objetivos
Entre los objetivos tenemos: Conocer que es la biblioteca estndar de C Determinar cules son las libreras que se encuentran dentro de esta. Mostrar todas las funciones que nos presenta el C, con sus respectivas funciones.

Biblioteca Estndar del C

2011

La Biblioteca Estndar de C
La biblioteca estndar de C es una recopilacin de ficheros cabecera y bibliotecas con rutinas, estandarizadas por un comit de la Organizacin Internacional para la Estandarizacin (ISO), que implementan operaciones comunes, tales como las de entrada y salida o el manejo de cadenas. A diferencia de otros lenguajes como COBOL, FORTRAN, o PL/I, C no incluye palabras clave para estas tareas, por lo que prcticamente todo programa implementado en C se basa en la biblioteca estndar para funcionar. Diseo El nombre y las caractersticas de cada funcin, el prototipo, as como la definicin de algunos tipos de datos y macros, se encuentran en un fichero denominado archivo de cabecera (con extensin ".h"), pero la implementacin real de las funciones estn separadas en un archivo de la biblioteca. La denominacin y el mbito de las cabeceras se han convertido en comunes, pero la organizacin de las bibliotecas sigue siendo diversa, ya que stas suelen distribuirse con cada compilador. Dado que los compiladores de C, a menudo, ofrecen funcionalidades adicionales que no estn especificados en el ANSI C, la biblioteca de un compilador no siempre es compatible con el estndar ni con las bibliotecas de otros compiladores. Calidad del diseo Est demostrado que la mayor parte de la biblioteca estndar de C ha sido bien diseada, aunque, se ha comprobado que algunas partes tambin son fuente de errores; funciones para entrada de cadenas como gets() o scanf(), producen desbordamientos de buffer, y muchas guas de programacin recomiendan evitar su uso. La funcin strtok() presenta otra singularidad, est diseada para ser utilizada como un analizador lxico rudimentario, pero resulta difcil de utilizar adems de ser muy frgil. El estndar ANSI La biblioteca estndar de ANSI C consta de 24 ficheros cabecera que pueden ser incluidos en un proyecto de programacin con una simple directiva. Cada cabecera contiene la declaracin de una o ms funciones, tipos de datos y macros. En comparacin con otros lenguajes de programacin (como por ejemplo Java) la biblioteca estndar es muy pequea, est proporciona un conjunto bsico de funciones matemticas, de tratamiento de cadenas, conversiones de tipo y

Biblioteca Estndar del C

2011

entrada/salida por consola o por ficheros. No se incluyen, ni un conjunto de tipos de datos contenedores bsicos (listas, pilas, colas, ...), ni herramientas para crear una interfaz grfica de usuario (GUI), ni operaciones para trabajar en red, no otras funcionalidades que un lenguaje como Java incorpora de manera estndar. La principal ventaja del reducido tamao de la biblioteca estndar de C es que construir un entorno de trabajo en ANSI C es muy fcil y, en consecuencia, portar un programa en ANSI C de una plataforma a otra es relativamente sencillo. Se han desarrollado muchas otras bibliotecas para proporcionar una funcionalidad equivalente a la de otros lenguajes de programacin. Por ejemplo, el proyecto de desarrollo del entorno de escritorio de GNOME cre las bibliotecas GTK+ y GLib con funcionalidades para desarrollar y trabajar con interfaces grficas de usuario. La variedad de bibliotecas disponibles ha hecho que, a lo largo de la historia, haya quedado demostrada la superioridad de algunas de estas herramientas. El gran inconveniente es que a menudo no funcionan especialmente bien en conjunto, normalmente son los propios programadores familiarizados con las diferentes bibliotecas quienes consiguen sacarles el mximo partido, aunque diferentes partes de ellas puedan estar disponibles en cualquier plataforma. La biblioteca estndar de C en C++ El lenguaje de programacin C++ incluye la funcionalidad de la biblioteca estndar ANSI C, pero hace algunas modificaciones como cambiar los nombres de los ficheros de cabecera, de <xxx.h> a <cxxx> (aunque los nombres en estilo C, aun siendo obsoletos, siguen estando disponibles), y ubican todos los identificadores dentro del namespace std.

Archivos de cabeceras de la biblioteca ANSI C <assert.h> Contiene la macro assert (asercin), utilizada para detectar errores lgicos y otros tipos de fallos en la depuracin de un programa.

<complex.h> Conjunto de funciones para manipular nmeros complejos (nuevo en C99).

Biblioteca Estndar del C

2011

<ctype.h>

Contiene funciones para clasificar caracteres segn sus tipos o para convertir entre maysculas y minsculas independientemente del conjunto de caracteres (tpicamenteASCII o alguna de sus extensiones). Para testar los cdigos de error devueltos por las funciones de biblioteca. Para controlar entornos en coma flotante (nuevo en C99). Contiene la definicin de constantes que especifican ciertas propiedades de la biblioteca de coma flotante, como la diferencia mnima entre dos nmeros en coma flotante (_EPSOLON), el nmero mximo de dgitos de precisin (_DIG), o el rango de valores que se pueden representar (_MIN, _MAX). Para operaciones de conversin con precisin entre tipos enteros (nuevo en C99). Para utilizar los conjuntos de caracteres ISO 646 (nuevo en NA1). Contiene la definicin de constantes que especifican ciertas propiedades de los tipos enteros, como rango de valores que se pueden representar (_MIN, _MAX). Para la funcin setlocale() y las constantes relacionadas. Se utiliza para seleccionar el entorno local apropiado (configuracin regional). Contiene las funciones matemticas comunes. Declara las macros setjmp y longjmp para proporcionar saltos de flujo de control de programa no locales. Para controlar algunas situaciones excepcionales como la divisin por cero. posibilita el acceso a una cantidad variable de argumentos

<errno.h>

<fenv.h> <float.h>

<inttypes.h>

<iso646.h>

<limits.h>

<locale.h>

<math.h> <setjmp.h>

<signal.h>

<stdarg.h>

Biblioteca Estndar del C

2011

pasados a una funcin. <stdbool.h> <stdint.h> <stddef.h> <stdio.h> Para el tipo booleano (nuevo en C99). Para definir varios tipos enteros (nuevo en C99). Para definir varios tipos de macros de utilidad. Proporciona el ncleo de las capacidades de entrada/salida del lenguaje C (incluye la venerable funcin printf). Para realizar ciertas operaciones como conversin de tipos, generacin de nmeros pseudo-aleatorios, gestin de memoria dinmica, control de procesos, funciones de entorno, de sealizacin (??), de ordenacin y bsqueda. Para manipulacin de cadenas de caracteres. Contiene funcionalidades matemticas de tipo genrico (typegeneric) (nuevo en C99). Para tratamiento y conversin entre formatos de fecha y hora. Para manipular flujos de datos anchos y varias clases de cadenas de caracteres anchos (2 o ms bytes por carcter), necesario para soportar caracteres de diferentes idiomas (nuevo en NA1). Para clasificar caracteres anchos (nuevo en NA1).

<stdlib.h>

<string.h> <tgmath.h>

<time.h> <wchar.h>

<wctype.h>

Ahora profundizaremos en las siguientes libreras:

Biblioteca Estndar del C

2011

La librera stdio.h
La biblioteca <stdio.h>, cuyas siglas significan standard input-output header (cabecera standar de entrada y salida), es la biblioteca estndar del lenguaje de programacin C, el archivo de cabecera que contiene las definiciones de macros, las constantes, las declaraciones de funciones y la definicin de tipos usados por varias operaciones estndar de entrada y salida. Por motivos de compatibilidad, el lenguaje de programacin C++ (derivado de C) tambin tiene su propia implementacin de estas funciones, que son declaradas con el archivo de cabecera cstdio. Las funciones declaradas en stdio.h son sumamente populares. Los programadores tienen que incluir el archivo de cabecera stdio.h dentro del cdigo fuente para poder utilizar las funciones que estn declaradas. Aparte de las funciones tambin encontramos variables y tipos de dato propios de la biblioteca que se pasaran a definir a continuacin:

Funciones en la <stdio.h> Las funciones declaradas en stdio.h pueden clasificarse en dos categoras: funciones de manipulacin de ficheros y funciones de manipulacin de entradas y salidas. Las funciones de manipulacin de puntero que encontramos en la stdio.h son: Nombre fclose fopen, freopen, fdopen remove rename elimina un fichero cambia al fichero de nombre abre un fichero para lectura, para escritura/reescritura o para adicin Descripcin cierra un fichero a travs de su puntero

Biblioteca Estndar del C

2011

rewind

La funcin rewind coloca el indicador de posicin de fichero para el stream apuntado por stream al comienzo del fichero. crea y abre un fichero temporal que es borrado cuando cerramos con la funcin fclose()

tmpfile

Las funciones de manipulacin de datos de entrada y salida que encontramos en esta biblioteca son cerca de 44 funciones representadas en la siguiente tabla: clearerr fflush fopen fputs fseek getc printf remove setbuf tmpfile vprintf fclose fgetc formato fread fsetpos getchar putc rename setvbuf tmpnam vsprintf feof fgetpos fprintf freopen ftell gets putchar rewind sprintf ungetc ferror fgets fputc fscanf fwrite perror puts scanf sscanf vfprintf

Dentro de estas funciones se destacan las funciones: getchar, putc, putchar, getc, gets, puts, fflush, scanf, printf, debido a que estn se usan con mayor frecuencia en los programas en C. getchar ( ): esta funcin se utiliza para leer solo un carcter introducido por un dispositivo de entrada. o Formato: Variable de carcter = getchar ( ); getc( ): devuelve un carcter desde un fichero. putchar( ): esta funcin se utiliza para visualizar un carcter al dispositivo de salida. o Formato: putchar(variable de carcter); putc( ) : devuelve un carcter de un fichero. scanf( ): se utiliza para introducir cualquier combinacin de datos procedentes del dispositivo (valores numricos, cadenas de caracteres o caracteres sueltos). o Formato: scanf(cadena de control, arg1, arg2, , arg n ) printf( ): se utiliza para visualizar cualquier combinacin de datos (valores numricos, cadenas de caracteres o caracteres sueltos). o Formato: printf(cadena de control, arg1,arg2,, arg n);

Biblioteca Estndar del C

2011

gets( ): facilitan la transferencia de cadenas de caracteres, esta funcin se utiliza para introducir una cadena de caracteres. o Formato: gets(cadena de caracteres); puts( ): facilitan la transferencia de cadenas de caracteres, esta funcin se utiliza para mostrar una cadena de caracteres. o Formato: puts(cadena de caracteres); fflush( ): Sirve para vaciar el buffer de escritura del archivo especificado.

Constantes predeterminadas en la <stdio.h> Las constantes definidas en el fichero cabecera stdio.h son: Nombre EOF BUFSIZ Descripcin entero negativo (int) usado para indicar "fin de fichero" entero que indica el tamao del buffer utilizado por la funcin setbuf()

FILENAME_MAX tamao mximo de la cadena de caracteres que contienen el nombre de un fichero para ser abierto FOPEN_MAX Nmero mximo de ficheros que pueden estar abiertos simultneamente abreviatura de input/output fully buffered (buffer entrada/salida totalmente lleno); es un entero que se puede pasar como parmetro de la funcin setvbuf() para requerirbloqueo del buffer en la entrada y salida del stream abierto abreviatura de input/output line buffered (...??); es un entero que se puede pasar como parametro a la funcin setvbuf() para requerir line buffered (??) en la entrada y salida del stream abierto abreviatura de "input/output not buffered" (entrada/salida sin buffer); es un entero que se puede pasar como parametro a la funcin setvbuf() para requerir que la entrada salida del stream abierto funcione sin buffer

_IOFBF

_IOLBF

_IONBF

10

Biblioteca Estndar del C

2011

L_tmpnam

tamao de la cadena de caractres con la longitud suficiente para almacenar un nombre de fichero temporal generado por la funcin tmpnam() macro que representa la constante puntero nulo; representa un valor de puntero que no apunta a ninguna direccin vlida de objeto alguno en memoria entero que se puede pasar como parmetro a la funcin fseek() para indicar posicionamiento relativo a la posicin actual del fichero entero que se puede pasar como parmetro a la funcin fseek() para indicar posicionamiento relativo al final del fichero entero que se puede pasar como parmetro a la funcin fseek() para indicar posicionamiento relativo al inicio del fichero el nmero mximo de nombres de ficheros nicos generables por la funcin tmpnam()

NULL

SEEK_CUR

SEEK_END

SEEK_SET

TMP_MAX

Variables que podemos encontrar en la <stdio.h> El fichero de cabecera stdio.h define las siguientes variables: Nombre Descripcin

stdin

puntero a FILE que referencia la entrada estndar, normalmente el teclado puntero a FILE que referencia la salida estndar, normalmente el monitor puntero a FILE que referencia la salida de error estndar, normalmente el monitor

stdout

stderr

11

Biblioteca Estndar del C

2011

Tipos de datos Los tipos de datos definidos en el fichero de cabecera stdio.h son:

FILE - estructura que contiene informacin sobre el fichero o stream ( flujo) de texto necesario para realizar las operaciones de entrada/salida sobre l. incluye:

posicin actual de stream indicador de fin de fichero (EOF) indicador de error puntero al buffer del stream

fpos_t - tipo no-array capaz de identificar unvocamente la posicin de cada byte en un archivo size_t - tipo entero sin signo (positivo); es el tipo devuelto por el operador sizeof

Ejemplos

Ejemplo No.1: #include <stdio.h> main() { int a, b; printf( "Introduzca el primer nmero: " ); scanf( "%d", &a ); printf( "Introduzca el segundo numero: " ); scanf( "%d", &b ); printf( "Los valores son: %d, %d ", a, b ); }
Introduzca el primer nmero: 76 Introduzca el segundo numero: 45 Los valores son: 76, 45

12

Biblioteca Estndar del C

2011

Ejemplo No. 2:
#include <stdio.h> main() { char a, b, c; printf( "Introduzca primer caracter: " ); scanf( "%c", &a ); printf( "Introduzca segundo caracter: " ); fflush( stdin ); scanf( "%c", &b ); printf( "Introduzca tercer caracter: " ); fflush( stdin ); scanf( "%c", &c ); printf( "Los valores son: %c, %c, %c ", a, b, c ); } La primera vez que se ejecuta scanf, el buffer del teclado est vaco, por tanto, no es preciso utilizar fflush, pero s, en los dos casos posteriores. Obsrvese que, a fflush hay que indicarle el buffer a limpiar, Standar Input (stdin) en este caso.

13

Biblioteca Estndar del C

2011

La librera Conio.h
Contiene los prototipos de las funciones, macros, y constantes para preparar y manipular la consola en modo texto en el entorno de MS-DOS. Funciones ms importantes de la <conio.h> gotoxy (columna, fila) Sita el cursor en la columna y fila especificada. Por ejemplo, esta instruccin: gotoxy (5, 2); sita el cursor en la fila 2, columna 5 de la pantalla. La siguiente instruccin de escritura en consola comenzar a escribir a partir de esas coordenadas. cprintf() y cscanf() Son las equivalentes a printf() y scanf(). Su sintaxis es la misma, y es recomendable usarlas en lugar de las funciones estndar para evitar funcionamientos extraos. textcolor(color) Cambia el color del texto. Los colores predefinidos son: BLACK, BLUE, RED, GREEN, CYAN, MAGENTA, BROWN, DARKGRAY. Adems, existen las variedades claras de estos colores: LIGHTBLUE, LIGHTRED, LIGHTGREEN, etc. As, si ejecutamos: textcolor (LIGHTRED); el texto que se escriba a continuacin aparecer el color rojo intenso. textbackground (color) Establece el color del fondo del texto. Los colores predefinidos son los mismos que para textcolor(). As, este cdigo: textbackground (BLUE); hace que el texto que se escriba a continuacin aparezca con el fondo en color azul oscuro. cgets Esta funcin leer una cadena de caracteres desde la consola, guardando la cadena (y su longitud) en el lugar apuntado por *cadena. La funcin cgets leer caracteres hasta que encuentre una combinacin de retorno de lnea y nueva lnea (CR/LF), o hasta que el nmero mximo de caracteres permitidos hayan

14

Biblioteca Estndar del C

2011

sido ledos. Si se lee una combinacin CR/LF, entonces es sustituido por un carcter nulo '\0' antes de ser guardado la cadena. Cputs Muestra la cadena, que finaliza con el carcter nulo, apuntada por el argumento cadena en la ventana de texto actual. Esta funcin es similar a la funcin puts, pero con dos excepciones: la funcin cputs no convertir los caracteres de nueva lnea (\n) en la pareja de caracteres de retorno de lnea/nueva lnea (\r\n) tampoco aadir el carcter de nueva lnea al final del texto. Kbhit Revisa si una tecla pulsada est disponible. Cualesquier pulsadas disponibles pueden ser recogidas con las funciones getch o getche. getch () Lee un carcter desde el teclado, sin mostrar el eco y sin necesidad de pulsar Return. Devuelve el cdigo ASCII del carcter tecleado. Ah va un ejemplo: char c; c = getch(); clrscr () Borra la pantalla. No necesita argumentos.

15

Biblioteca Estndar del C

2011

La librera Ctype.h
Este archivo de cabecera analiza el tipo de carcter dependiendo de la funcin mandada a llamar. El carcter puede ser mandado a la funcin como un nmero entero o como un carcter (variable o encerrado entre apstrofos). Si la funcin determina que no es ese tipo de carcter regresa el valor de 0 (que para c es un valor de falso y otro valor si lo es (para C es un valor de verdadero). Existen tambin un par de funciones que permiten convertir un carcter de minscula a mayscula y viceversa, Funciones dentro de <Ctype.h> Isalnum: determina si el character c es una letra del alfabeto (de la a a la z sin distinguir entre maysculas y minsculas) o un digito. Si no es letra o digito regresa un valor cero, de lo contrario regresa un valor distinto de cero. o Formato: Int isalnum (int c) Programa void main (void) { char letra; letra=getche(); if (isalnum(letra)) printf("\n%c es una letra o nmero", letra); else printf("\n%c no es una letra ni nmero", letra); } Salida Si letra='r' "r es una letra o nmero" Si letra='7' "7 es una letra o nmero" Si letra='$' "$ no es una letra ni nmero"

16

Biblioteca Estndar del C

2011

Isdigit: determina si el carcter c es un nmero. Si no es un nmero regresa un valor cero, de lo contrario regresa un valor distinto de cero. o Fomarto: int isdigit (int c) Ejemplo: Programa void main (void) { char letra; letra=getche(); if (isdigit(letra)) printf("\n%c es un nmero", letra); else printf("\n%c no es un nmero", letra); } Salida Si letra='4' "4 es un nmero" Si letra='$' "$ no es un nmero"

Isascii: determina si el entero c es un carcter de la tabla de cdigo ASCII bsico (del 0 al 127). Si no es un carcter ASCII bsico regresa un valor cero, de lo contrario regresa un valor distinto de cero. o Formato: int isascii (int c) Ejemplo: Programa void main (void) { char letra; letra=getche(); if (isascii(letra)) printf("\n%c es ASCII bsico", letra); else printf("\n%c no es un ASCII bsico", letra); } Salida Si letra='+' "+ es un ASCII bsico" Si letra='' " no es un ASCII bsico"

17

Biblioteca Estndar del C

2011

Isspace: determina si el caracter c es un caracter blanco (tab, espacio, retorno de carro, cambio de lnea, tab vertical, salto de pgina). Si no es caracter blanco regresa un valor cero, de lo contrario regresa un valor distinto de cero. o Formato: int isspace (int c) Ejemplo: Programa void main (void) { char letra; letra=getche(); if (isspace(letra)) printf("\n%02x es un caracter blanco", letra); else printf("\n%c no es un caracter blanco", letra); } Salida Si letra='\t' "0x09 es un caracter blanco" Si letra='$' "$ no es un caracter blanco"

islower : determina si el caracter c es una letra minscula. Si no es minscula regresa un valor cero, de lo contrario regresa un valor distinto de cero. o Formato: int islower (int c) Ejemplo: Programa void main (void) { char letra; letra=getche(); if (islower(letra)) printf("\n%c es una letra minscula", letra); else printf("\n%c no es una letra minscula", letra); } Salida Si letra='r' "r es una letra minscula" Si letra='R' "R no es una letra minscula" Si letra='&' "& no es una letra minscula"

Isupper: Determina si el caracter c es una letra mayscula. Si no es mayscula regresa un valor cero, de lo contrario regresa un valor distinto de cero. o Formato: int isupper (int c)

18

Biblioteca Estndar del C

2011

Ejemplo: Programa void main (void) { char letra; letra=getche(); if (isupper(letra)) printf("\n%c es una letra mayscula", letra); else printf("\n%c no es una letra mayscula", letra); } Salida Si letra='R' "R es una letra mayscula" Si letra='r' "r no es una letra mayscula" Si letra='&' "& no es una letra mayscula" Toascii: convierte un entero a un carcter ASCII bsico (solo mantiene los 7 bits menos significativos). o Formato: int toascii (int c) Ejemplo: Programa void main (void) { char letra; letra=getche(); printf("\n%c sin convertir", letra); printf("\n%c convertido a ASCII", toascii(letra)); } Salida Si letra='r' "r sin convertir" "r convertido a ASCII" Si letra='' " sin convertir" "# convertido a ASCII"

tolower : Convierte una letra mayscula a minscula. Si es una letra mayscula retornara su equivalente en minscula, de lo contrario retornar el carcter sin modificacin alguna. o Formato: int tolower (int c) Ejemplo: Programa void main (void) { char letra; letra=getche(); printf("\n%c sin convertir", letra); printf("\n%c en minscula", tolower(letra)); } Salida Si letra='A' "A sin convertir" "a en minscula" Si letra='5' "5 sin convertir" "5 en minscula"

19

Biblioteca Estndar del C

2011

toupper: Convierte una letra minscula a mayscula. Si es una letra minscula retornara su equivalente en mayscula, de lo contrario retornar el carcter sin modificacin alguna. o Formato: int toupper (int c) Ejemplo: Programa void main (void) { char letra; letra=getche(); printf("\n%c sin convertir", letra); printf("\n%c en mayscula", toupper(letra)); } Salida Si letra='a' "a sin convertir" "A en mayscula" Si letra='5' "5 sin convertir" "5 en mayscula"

20

Biblioteca Estndar del C

2011

La librera Stdlib.h
stdlib.h , cuyas siglas se definien como: std-lib: standar library o estndar, es el archivo de cabecera de la biblioteca estndar de general del lenguaje de programacin C. Contiene los prototipos de de C para gestin de memoria dinmica, control de procesos y compatible con C++ donde se conoce como cstdlib. biblioteca propsito funciones otras. Es

Las funciones que pertenencen a stdlib.h pueden clasificarse en las siguientes categoras: conversin, memoria, control de procesos, ordenacin y bsqueda, matemticas. Nombre Conversin de tipos atof (ascii to float) atoi (ascii to integer) atol (C Standard Library) (ascii to long) strtod (string to double) cadena de caracteres a coma flotante cadena de caracteres a entero cadena de caracteres a entero tamao largo Descripcin

cadena de caracteres a coma flotante tamao doble cadena de caracteres a entero largo cadena de caracteres a entero largo sin signo (positivo)

strtol (string to long) strtoul (string to unsigned long)

Generacin de nmeros pseudo-aleatorios rand srand Genera un nmero pseudo-aleatorio Establece la semilla para el generador de nmeros pseudo-aleatorios

21

Biblioteca Estndar del C

2011

Gestin de memoria dinmica malloc, calloc, realloc Reservan memoria dinmica del heap (montn o montculo) Liberan memoria devolvindola al heap Control de procesos abort atexit terminar ejecucin anormalmente registrar una funcin callback para la salida del programa terminar ejecucin del programa recuperar una variable de entorno ejecutar un comando externo Ordenacin y bsqueda bsearch qsort bsqueda binaria en un array ordena un vector (informtica) usando Quicksort Matemticas abs, labs div, ldiv valor absoluto divisin entera o euclidiana

free

exit getenv system

Ahora pasaremos a definir algunas de las funciones que se utilizan mas de esta librera que son:

22

Biblioteca Estndar del C

2011

Atoi: Convierte una cadena a un entero Formato: int atoi ( const char * str ); Analiza la cadena str C interpretacin de su contenido como un nmero entero, que se devuelve como un valor int. Los descartes primera funcin como muchos espacios en blanco como sea necesario hasta que el primer carcter no blanco se encuentra. Luego, a partir de este personaje, toma un opcional signo inicial ms o menos seguido de tantos caracteres numricos como sea posible, y las interpreta como un valor numrico. La cadena puede contener caracteres adicionales despus de los que forman el nmero entero, que se ignoran y no tienen ningn efecto sobre el comportamiento de esta funcin. Si la primera secuencia de caracteres no est en blanco str no es un nmero entero vlido, o si no existe tal secuencia, ya sea porque str est vaco o slo contiene espacios en blanco, sin conversin se realiza. Atof : convierte una cadena a doble Formato: double atof ( const char * str ); Analiza la cadena str C interpretacin de su contenido como un nmero de punto flotante y devuelve su valor como un doble. Los descartes primera funcin como muchos espacios en blanco como sea necesario hasta que el primer carcter no blanco se encuentra. Luego, a partir de este personaje, toma como muchos personajes de lo posible que son vlidos despus de una sintaxis parecida a la de los literales de coma flotante, y las interpreta como un valor numrico. El resto de la cadena despus de que el ltimo carcter vlido es ignorado y no tiene ningn efecto sobre el comportamiento de esta funcin. Un nmero vlido de punto flotante para atof est formado por una sucesin de: Un signo opcional ms o menos Una secuencia de dgitos, de forma opcional que contiene un carcter de punto decimal Una parte exponente opcional, que a su vez consiste en una 'e ' o 'E' caracteres seguido de un signo opcional y una secuencia de dgitos. Si la primera secuencia de caracteres no est en blanco str no forman un nmero vlido de punto flotante como acaba de definir, o si no existe tal secuencia, ya sea porque str est vaco o slo contiene espacios en blanco, sin conversin se realiza.

23

Biblioteca Estndar del C

2011

Rand: Devuelve un nmero entero pseudo-aleatorio en el rango de 0 a RAND_MAX. Formato: int rand ( void ); Este nmero es generado por un algoritmo que devuelve una secuencia de nmeros aparentemente no relacionados cada vez que se llama. Este algoritmo utiliza una semilla para generar la serie, que debera ser inicializado a un valor distintivo con srand. RAND_MAX es una constante definida en <cstdlib>. Su valor por defecto puede variar entre las implementaciones pero se concede al menos 32.767. Una forma tpica de generar nmeros pseudo-aleatorios en un rango determinado utilizando rand es utilizar el mdulo del valor devuelto por el lapso de gama y aade el valor inicial de la gama: (% valor de 100) se encuentra en el rango de 0 a 99 (valor 100% + 1) se encuentra en el rango de 1 a 100 (valor 30% + 1985) est en el rango 1985 a 2014 Srand: inicializa el generador de nmeros aleatorios Formato: void srand (unsigned int semilla);

El generador de nmeros pseudo-aleatorios se inicializa con el argumento pasado como semilla. Para cada valor de inicializacin diferentes utilizados en una llamada a srand, el generador de nmeros pseudo-aleatorios se puede esperar para generar una sucesin de diferentes resultados en las posteriores convocatorias de rand. Dos inicializaciones diferentes con la misma semilla, la instruccin de generador de pseudo-aleatorios para generar la misma sucesin de los resultados de las posteriores convocatorias de rands en ambos casos. Si la semilla se establece en 1, el generador se reinicializa a su valor inicial y produce los mismos valores que antes de cualquier llamada a srand o rands. Con el fin de generar nmeros al azar-como, srand es normalmente inicializado a un valor distintivo, como los relacionados con el tiempo de ejecucin. Por ejemplo, el valor devuelto por la funcin de tiempo (declarada en <ctime> encabezado) es diferente a cada segundo, que es distintivo suficiente para la mayora de las necesidades del azar. System: ejecuta un comando del sistema Formato: int system (const char * command);

24

Biblioteca Estndar del C

2011

Inicia el procesador de comandos para ejecutar un comando. Una vez que la ejecucin de comandos ha terminado, el procesador da el control al programa, devolver un valor entero, cuya interpretacin depende del sistema. La funcin de llamada tambin se puede utilizar con NULL como argumento para comprobar si existe un procesador de comandos.

25

Biblioteca Estndar del C

2011

La librera String.h
string.h es un archivo de la Biblioteca estndar del lenguaje de programacin C que contiene la definicin de macros, constantes, funciones y tipos de utilidad para trabajar con cadenas de caracteres y algunas operaciones de manipulacin de memoria (el nombre string puede ser algo inapropiado). Las funciones declaradas en string.h se han hecho muy populares, por lo que estn garantizadas para cualquier plataforma que soporte C. Sin embargo, existen algunos problemas de seguridad con estas funciones, como el desbordamiento de buffer (buffer overflow), que hacen que algunos programadores prefieran opciones ms seguras frente a la portabilidad que estas funciones ofrecen. Adems, las funciones para cadenas de caracteres slo trabajan con conjuntos de caracteres ASCII o extensiones ASCII compatibles. Funciones dentro de <string.h> Dentro de las funciones que nos ofrece la biblioteca encontramos las siguientes: Nombres memcpy Descripcin copia n bytes entre dos reas de memoria que no deben solaparse

memmove copia n bytes entre dos reas de memoria; al contrario que memcpy las reas deben solaparse memchr busca un valor a partir de una direccin de memoria dada y devuelve un puntero a la primera ocurrencia del valor buscado o NULL si no se encuentra compara los n primeros caracteres de dos reas de memoria sobre escribe un rea de memoria con un patrn de bytes dado aade una cadena al final de otra aade los n primeros caracteres de una cadena al final de otra

memcmp memset strcat strncat

26

Biblioteca Estndar del C

2011

strchr strrchr strcmp strncmp

localiza un carcter en una cadena, buscando desde el principio localiza un carcter en una cadena, buscando desde el final compara dos cadenas numricamente ('a'!='A') compara los n primeros caracteres de dos cadenas numricamente ('a'!='A') compara dos cadenas segn la colacin actual ('a'=='A') copia una cadena en otra copia los n primeros caracteres de una cadena en otra devuelve la cadena con el mensaje de error correspondiente al nmero de error dado devuelve la longitud de una cadena devuelve la posicin del primer carcter de una cadena que no coincide con ninguno de los caracteres de otra cadena dada devuelve la posicin del primer carcter que coincide con alguno de los caracteres de otra cadena dada encuentra la primera ocurrencia de alguno de los caracteres de una cadena dada en otra busca una cadena dentro de otra parte una cadena en una secuencia de tokens transforma una cadena en su forma de colacin (??) invierte una cadena

strcoll strcpy strncpy strerror

strlen strspn

strcspn

strpbrk

strstr strtok strxfrm strrev

27

Biblioteca Estndar del C

2011

Entre todas estas funciones que nos ofrece la string.h podemos considerar las siguientes como las de uso frecuente, en cuanto a esta biblioteca se refiere: Nombre Formato Descripcin Valor retornado

strcpy( )

# include <string.h> El strcpy () copia la cadena apuntada por char * strcpy (char s2 (incluyendo el byte * s1, const char * nulo de terminacin) s2); en el array apuntado por s1. Si la copia se realiza entre los objetos que se superponen, el comportamiento es indefinido. # include <string.h> La funcin strlen () calcula el nmero de size_t strlen (const bytes de la cadena a la char * s); que s puntos, sin incluir el byte nulo de terminacin. # include <string.h> El strncmp () compara no ms de n bytes int strncmp (const (bytes que siguen un char * s1, const byte nulo no se char * s2, size_t n); comparan) del array apuntado por s1 con la cadena apuntada por s2. El signo de un valor de retorno distinto de cero se determina por el signo de la diferencia entre los valores de la primera pareja de bytes (ambos interpretados como el tipo unsigned char) que difieren en las cadenas que se comparan.

El strcpy () devuelve s1, sin valor de retorno se reserva para indicar un error.

strlen( )

La funcin strlen () devuelve la longitud de s, sin valor de retorno se reserva para indicar un error. Si es correcto, strncmp () devuelve un nmero entero mayor, igual o inferior a 0, si la matriz posiblemente terminada en nulo apuntado por s1 es mayor, igual o inferior a la matriz posiblemente terminada en nulo apuntada por s2 , respectivamente.

strncmp( )

28

Biblioteca Estndar del C

2011

strncpy( )

El strncpy () copia no ms de n bytes (bytes que siguen un byte nulo no se copian) de la cadena apuntada por s2 a la cadena apuntada por s1. Si la # include <string.h> copia se realiza entre los objetos que se char * strncpy (char superponen, el * s1, const char * comportamiento es s2, size_t n); indefinido. Si el array apuntado por s2 es una cadena que es menor que n bytes, bytes nulos se aaden a la copia en el array apuntado por s1, hasta que n bytes en todos se escriben.

El strncpy () devuelve s1, sin valor de retorno se reserva para indicar un error.

29

Biblioteca Estndar del C

2011

La librera Time.h
La biblioteca time.h es un archivo de cabecera de la biblioteca estndar del lenguaje de programacin C que contiene funciones para manipular y formatear la fecha y hora del sistema. Funcin asctime() Uso Obtener una cadena alfanumrica del tipo Mon Nov 21 11:31:54 1993\n\0 a partir de una estructura tm clock() Obtener el tiempo transcurrido desde el comienzo de la ejecucin del programa ctime() Obtener una cadena alfanumrica del tipo sealado para asctime a partir de un timestamp. difftime() Obtener el tiempo en segundos entre dos timestamp. gmtime() Obtener una fecha GMT en formato tm a partir de un timestamp con la hora local. localtime() Obtener una fecha en formato tm a partir de un timestamp. mktime() Obtener un timestamp numrico a partir de una fecha tm. strftime() Obtener una representacin alfanumrica a partir de una fecha tm (acepta un formateo similar a printf) time() Obtener un timestamp con la fecha y hora del Sistema. Adems de las funciones anteriores, la STL define tres tipos simples: size_t; clock_t, time_t y una estructura tm. En realidad se trata de typedefs dependientes de la implementacin. typedef long time_t; size_t El tipo size_t es utilizado en muchas ocasiones. Por ejemplo, es el resultado devuelto por el operador sizeof . Es un entero sin signo cuyo tipo exacto depende de la implementacin, aunque suele ser de al menos 32 bits (4 Bytes). Normalmente est definido en diversos ficheros de cabecera, entre otros <ctime>, aunque es frecuente que de una cabecera se redireccione a otra donde realmente est definido. En el caso de MS Visual C++ 6.0 y Borland C++size_t es un tipo unsigned int Representa el valor devuelto por la funcin clock. En Borland C++ es un long int Representa valores devueltos por las funciones time() y mktime(). En MS Visual C++ y Borland C++ es un long int Es una estructura utilizada por diversas funciones de la Librera para almacenar informacin relativa a fecha y hora. Por ejemplo: asctime y localtime. Responde a la definicin siguiente: struct tm { int tm_sec; // Segundos pasados del minuto (0-61) int tm_min; // Minutos pasados de la hora (0-59) int tm_hour; // Horas desde medianoche (0-23) int tm_mday; // Dia del mes (1-31)

clock_t time_t tm

30

Biblioteca Estndar del C

2011

int tm_mon; // Nmero del mes (0-11) int tm_year; // Aos transcurridos desde 1900 int tm_wday; // Dia de semana (0-6; Domingo = 0) int tm_yday; // Dia del ao (0-365) int tm_isdst; /* Adelanto de hora para horario de verano 1=Si; 0=No; -1=Indefinido */ };

Definicin de las funciones de time.h

Asctime( ) La funcin se presenta en dos versiones: asctime para caracteres normales y _wasctime para caracteres anchos, que responden a los siguientes prototipos: #include <time.h> char* asctime(const struct tm* tmPtr); wchar_t* _wasctime(const struct tm* tmPtr); Descripcin: Ambas funciones aceptan un puntero a una estructura tipo tm , y devuelven un puntero a una cadena de caracteres con informacin alfanumrica sobre la fecha contenida en la estructura. La cadena es de ancho fijo (26 caracteres), mantiene siempre el mismo formato, y es reescrita cada vez que se invoca la funcin: Mon Nov 21 11:31:54 1993\n\0 El reloj utilizado es de 24 horas, y cualquiera que sea el tipo de caracteres utilizados (anchos o estrechos), termina en los caracteres NL (New Line) y NUL (nulo). Ejemplo: #include <iostream> using namespace std; #include <ctime> int main() { // ==================

31

Biblioteca Estndar del C

2011

struct tm myt; myt.tm_sec = 1; myt.tm_min = 30; myt.tm_hour = 9; myt.tm_mday = 22; myt.tm_mon = 11; myt.tm_year = 56; myt.tm_wday = 4; myt.tm_yday = 0; myt.tm_isdst = 0; char* cTim = asctime(&myt)); cout << "Fecha resultante: " << cTim; return 0; } Salida: Fecha resultante: Thu Dec 22 09:30:01 1956 Clock( ) Prototipo: #include <time.h> clock_t clock(void); Descripcin: Esta funcin devuelve un valor de tipo clock_t que representa el tiempo desde el comienzo del programa hasta el momento de invocacin de la funcin. Mediante invocaciones sucesivas puede ser utilizada para obtener el tiempo entre dos puntos del programa. En caso de error, si el tiempo de proceso no est disponible o no es representable, la funcin devuelve -1. El valor devuelto representa el nmero de "tics" del RTC desde el inicio del programa. Es posible calcular este valor en segundos dividindolo por una constante denominadaCLK_TCK en unos sistemas y CLOCKS_PER_SEC en otros. Definida en <ctime>. En el fichero <time.h> del compilador Borland C++ 5.5 encontramos las definiciones siguientes: #define CLOCKS_PER_SEC 1000.0 #define CLK_TCK 1000.0 Ejemplo:

32

Biblioteca Estndar del C

2011

cout << "Desde el inicio: " << clock()/CLK_TCK << " segundos\n"; Ctime( ) Esta funcin se presenta en dos versiones: ctime para caracteres normales y _wctime para caracteres anchos. Prototipos: #include <ctime> char* ctime(const time_t* sTptr); wchar_t* _wctime(const time_t* sTptr); Descripcin: Ambas funciones aceptan un puntero a un valor time_t que supuestamente contiene un timestamp expresado en segundos despus del inicio de la poca UNIX (1 de Enero de 1970 00:00:00 GMT). Por ejemplo un valor devuelto por la funcin time. Ambas funciones devuelven un puntero a una cadena de 26 caracteres que contiene la fecha y hora con un formato alfanumrico en el que todos los campos tienen siempre el mismo ancho, y que es reescrita cada vez que se invoca a la funcin (el reloj utilizado es de 24 horas): Mon Nov 21 11:31:54 1993\n\0 Si la fecha corresponde a un momento anterior a Enero de 1970 se obtiene una cadena nula. Ejemplo: #include <iostream> using namespace std; #include <ctime> int main() { // ================= time_t tSec = 31536000; time_t* tPtr = &tSec; char* sTptr = ctime(tPtr); cout << "Fecha: " << sTptr ; return 0; } Salida:

33

Biblioteca Estndar del C

2011

Fecha: Fri Jan 01 01:00:00 1971 Difftime( ) Prototipo: #include <time.h> double difftime(time_t time2, time_t time1); Descripcin: La funcin acepta dos valores tipo time_t y devuelve un double con el tiempo entre ambos valores expresado en segundos. Ejemplo: #include <iostream> using namespace std; #include <ctime> int main() { // ================= time_t first, second; first = time(NULL); delay(2000); // esperar 2 segundos second = time(NULL); cout << "Diferencia: " << difftime(second, first)) << " segundos\n"; return 0; } Gmtime ( ) Prototipo: #include <time.h> struct tm* gmtime(const time_t* tPtr); Descripcin: La funcin acepta un puntero a un tipo time_t, que suponemos contiene una fecha local (por ejemplo, obtenida con la funcin time , y devuelve un puntero a

34

Biblioteca Estndar del C

2011

una estructura tipotm que contiene la fecha convertida a la hora GMT correspondiente. Esta funcin puede ser til en un programa que maneje comunicaciones por Internet, donde es costumbre utilizar la hora GMT en vez de la hora local. Ejemplo: #include <iostream> using namespace std; #include <ctime> int main() { // ================= time_t tSac = time(NULL); // instante actual struct tm* pt1 = localtime(&tSac); cout << "hh:mm:ss " << pt1->tm_hour << ":" << pt1->tm_min << ":" << pt1->tm_sec << endl; cout << "dd-mm-aaaa: " << pt1->tm_mday << "-" << pt1->tm_mon+1 << "-" << pt1->tm_year+1900 << endl; tm tm2 = *gmtime(&tSac); // deferencia y asignacin cout << "hh:mm:ss " << tm2.tm_hour << ":" << tm2.tm_min << ":" << tm2.tm_sec << endl; cout << "dd-mm-aaaa: " << tm2.tm_mday << "-" << tm2.tm_mon+1 << "-" << tm2.tm_year+1900 << endl; return 0; } Salida: hh:mm:ss 22:45:2 dd-mm-aaaa: 23-5-2003 hh:mm:ss 5:45:2 dd-mm-aaaa: 24-5-2003 Comentario: Suponemos que el ordenador est situado en S. Francisco (USA), donde utilizan el horario PDT. En Mayo ya rige el horario de verano que tiene un

35

Biblioteca Estndar del C

2011

retraso de 7 horas respecto a la hora Zul. Cuando en S. Francisco son las 22:45 del da 23, en Greenwich son las 5:45 de la madrugada del da 24. Localtime( ) Esta funcin, junto con time, es posiblemente una de las ms tiles de entre las que se refieren a asuntos de fecha y hora. Prototipo: #include <time.h> struct tm* localtime(const time_t* timer); Descripcin: La funcin acepta un puntero a un tipo time_t, que contiene una fecha expresada en segundos desde el inicio de la poca UNIX, y devuelve un puntero a una estructura tm cuyos miembros contienen informacin sobre la fecha introducida. Sus miembros son sobreescritos con cada invocacin a la funcin. Ejemplo: #include <iostream> using namespace std; #include <ctime> int main() { // ================= char* dS[7] = {"Domingo","Lunes","Martes","Miercoles", "Jueves","Viernes","Sabado"}; time_t tSac = time(NULL); // instante actual struct tm* tmP = localtime(&tSac); cout << "hh:mm:ss " << tmP->tm_hour << ":" << tmP->tm_min << ":" << tmP->tm_sec << endl; cout << "dd-mm-aaaa: " << tmP->tm_mday << "-" << tmP->tm_mon+1 << "-" << tmP->tm_year+1900 << endl; cout << "Dia de semana: " << dS[tmP->tm_wday] << endl; cout << "Dia del ao: " << tmP->tm_yday << endl; cout << "Horario de verano: " << (tmP->tm_isdst ? "Si" : "No") << endl;

36

Biblioteca Estndar del C

2011

return 0; }

Salida: hh:mm:ss 11:13:23 dd-mm-aaaa: 22-5-2003 Dia de semana: Jueves Dia del ao: 141 Horario de verano: Si Mktime ( ) Prototipo: #include <time.h> time_t mktime(struct tm* tmPtr); Descripcin: La funcin mktime realiza justamente la operacin inversa que la anterir localtime. Acepta un puntero a una estructura tm con informacin sobre una fecha y devuelve un valor tipo time_t con el tiempo en segundos desde el inicio de la poca UNIX. Strftime( ) Esta funcin se presenta en dos versiones: strftime para caracteres normales y wcsftime para caracteres anchos. Prototipo: #include <time.h> size_t strftime(char* str, size_t maxsize, const char* fmt, const struct tm* mPt); size_t wcsftime(wchar_t* str, size_t maxsize, const wchar_t* fmt, const struct tm* mPt); Descripcin:

37

Biblioteca Estndar del C

2011

Como puede verse, la funcin devuelve un tipo size_t, y acepta cuatro argumentos: un puntero-a-carcter str que seala una cadena de caracteres donde se obtendr el resultado; un tipo size_t maxize; un puntero a cadena de caracteres constante fmt y un puntero mPt a una estructura tm que suponemos contiene datos de una fecha. La funcin produce una cadena alfanumrica terminada en un carcter nulo, y la sita en el lugar sealado por str. El valor devuelto es la longitud de esta cadena incluyendo el carcter de terminacin. En caso de error, o si la longitud resulta mayor que maxsize, el valor devuelto es cero y el resultado obtenido (cadena situada en str) es indeterminado. La cadena producida es una versin de la fecha contenida en la estructura, pero formateada segn determinados cdigos de formateo que se sitan en la cadena sealada por fmt. El sistema es similar al de la conocida funcin printf() que proporciona salidas formateadas. Los cdigos permitidos son muy numerosos, de forma que puede controlarse todos los detalles de la representacin (consulte el manual de su compilador al respecto). Ejemplo: #include <iostream> using namespace std; #include <ctime> int main() { // ================= time_t tSac = time(NULL); // instante actual tm tms = *localtime(&tSac); cout << "hh:mm:ss " << tms.tm_hour << ":" << tms.tm_min << ":" << tms.tm_sec << endl; cout << "dd-mm-aaaa: " << tms.tm_mday << "-" << tms.tm_mon+1 << "-" << tms.tm_year+1900 << endl; char sRes[80]; size_t r = strftime(sRes, 80, "Son %M minutos pasados de las %I horas (%Z) %A, %B %d 20%y", &tms); if (r) cout << sRes;

38

Biblioteca Estndar del C

2011

return 0; }

Salida: hh:mm:ss 20:14:13 dd-mm-aaaa: 24-5-2003 Son 14 minutos pasados de las 08 horas (WET) Saturday, May 24 2003 Time( ) Esta funcin devuelve la hora actual del sistema en segundos desde el inicio de la poca UNIX (1 de Enero de 1970 00:00:00 GMT). Prototipo: #include <ctime> time_t time(time_t* tPtr); Descripcin: La funcin acepta un puntero a time_t y devuelve un valor time_t que es el tiempo en segundos transcurrido desde el inicio de la poca UNIX. En realidad puede realizar dos funciones: si se pasa un valor no nulo, el valor correspondiente se almacena en el sitio sealado por el puntero. Si este valor es nulo entonces el valor no se almacena en ningn sitio. En cualquier caso siempre devuelve un valor con el instante actual en segundos desde las 0 horas del 1 de Enero de 1970. Ejemplo: #include <iostream> using namespace std; #include <ctime> int main() { // ================= time_t t1 = 0; time_t* pt1 = &t1;

39

Biblioteca Estndar del C

2011

time(pt1); cout << "Desde la epoca UNIX " << *pt1 << " segundos\n"; time_t t2 = time(NULL); cout << "Desde la epoca UNIX " << t2 << " segundos\n"; return 0; } Salida: Desde la epoca UNIX 1053550492 segundos Desde la epoca UNIX 1053550492 segundo

40

Biblioteca Estndar del C

2011

La librera Math.h
Math.h es un archivo de cabecera de la biblioteca estndar del lenguaje de programacin C diseado para operaciones matemticas bsicas. Muchas de sus funciones incluyen el uso de nmeros en coma flotante. C++ tambin implementa estas funciones por razones de compatibilidad y las declara en la cabecera cmath. Funciones dentro de <math.h> Nombre Acos Descripcin Calcula el valor principal del arco coseno de x. Puede producirse un error de dominio para los argumentos que no estn en el intervalo [-1, +1] Calcula el valor principal del arco seno de x. Puede producirse un error de dominio para los argumentos que no estn en el intervalo [-1, +1]. Calcula el valor principal del arco tangente de x. Calcula el valor principal del arco tangente de y/x, usando los signos de ambos argumentos para determinar el cuadrante del valor de retorno. Puede producirse un error de dominio si ambos argumentos son cero. Calcula el valor integral ms pequeo que no sea menor de x. Calcula el coseno de x (medido en radianes). Calcula la funcin exponencial de x. Calcula el valor absoluto del nmero de coma flotante, x. Calcula el valor integral ms grande que no sea mayor de x. Calcula el resto de coma flotante de la divisin de x/y. Calcula el logaritmo natural (o neperiano). Puede producirse un error de dominio si el argumento es

Asin

Atan

Atan2

Ceil

Cos

Exp Fabs

Floor

Fmod

Log

41

Biblioteca Estndar del C

2011

negativo. Puede producirse un error de recorrido si el argumento es cero. Calcula x elevado a la potencia de y. Puede producirse un error de dominio si x es negativo e y no es un valor entero. Tambin se produce un error de dominio si el resultado no se puede representar cuando x es cero e y es menor o igual que cero. Un error de recorrido puede producirse. Calcula el seno de x (medido en radianes). Calcula la raz cuadrada del valor no negativo de x. Puede producirse un error de dominio si x es negativo. Calcula la tangente de x (medido en radianes). Calcula el valor absoluto.

Pow

Sin

Sqrt

Tan

Abs

42

Biblioteca Estndar del C

2011

Programa Ejemplo
El siguiente programa fue un programa hecho por el grupo en el cual se muestran muchas de las funciones explicadas anteriormente que encontramos en la Biblioteca Estndar del C. Programa Fuente: #include<conio.h> #include<stdio.h> #include<math.h> #include<ctype.h> #include <time.h> #define pi 3.1416 main() { float r,a,v; int opcion,x=0; char resp='s',n[15]; clock_t comienzo; do {comienzo=clock(); printf("Introduzca su nombre "); scanf("%[^\n]",&n); printf("\nIntroduzca el radio de su esfera: "); scanf("%f",&r); printf("1) Area\n2) Volumen\n"); printf("Digite la opcion de la operacion a realizar "); scanf("%i",&opcion); switch(opcion) { case 1: a=4*pi*r*r; printf("\n");

43

Biblioteca Estndar del C

2011

puts(n); printf("\nEl area de la esfera es de: %.2f",a); break; case 2: v=(4/3)*pi*(pow(r,3)); printf("\n"); puts(n); printf("\nEl volumen de la esfera es de: %.3f",v); break; default:printf("\nIntrodujo un valor no valido para la opcin de la operacin"); } printf("\nDesea hacer la operacin otra vez s/n: "); fflush(stdin); scanf("%c",&resp); if(isupper(resp)) resp='s'; fflush(stdin); } while(resp=='s'); printf("\nEl proceso tuvo un tiempo de duracin de: %.1f segundos",(clock()comienzo)/(double)CLOCKS_PER_SEC); getch(); return 0; }

44

Biblioteca Estndar del C

2011

Capturas de pantalla:

45

Biblioteca Estndar del C

2011

Conclusiones

El lenguaje de programacin C posee diversas libreras dentro de la Librera Estndar del C, las cuales nos ayudan a realizar funciones para as no tendramos que programarlas desde cero. Entre las bibliotecas encontramos: Stdio.h: la cual nos ayuda con los datos de E/S Math.h: la cual nos ayuda con funciones matemticas (sen, cos,) Conio.h: la cual nos ayuda a modificar la pantalla de MS-DOS Time.h: la cual nos ayuda con todo tipo de funciones referentes al tiempo. Ctype.h: que nos ayuda con operaciones bsicas de caracteres. Stilib.h: que nos ayuda con mtodos dinmicos entre otros. String.h: que nos ayuda a manipular cadenas. Al final podemos decir que: las biblioteca estndar de c son libreras que nos facilitan la programacin en c ya que poseen funciones creadas que van a realizar un trabajo en especifico en nuestro programa, estas funciones nos pueden servir para e/s de datos, manejo de pantalla, manejo de cadenas y caracteres, adems de las funciones matemticas.

46

Biblioteca Estndar del C

2011

Bibliografa y Web-grafas (Referencia electrnica)

1. Luis Joyanes Aguilar. Fundamentos de Programacin, Algoritmos, estructura de datos y objetos. Cuarta Edicin. Mc Graw Hill 2. Google Chrome. Autor: Desconocido. Biblioteca Estndar del C. Fecha de Publicacin: Desconocida. 15 de abril de 2011. http://es.wikipedia.org/wiki/Biblioteca_est%C3%A1ndar_de_C

3. Google Chrome. Autor: Desconocido. Stdlib.h. Fecha de Publicacin: Desconocida. 17 de abril de 2011. http://es.wikipedia.org/wiki/Stdlib.h 4. Google Chrome. Autor: Desconocido. Ctype.h. Fecha de Publicacin: Desconocida. 17 de abril de 2011. http://es.wikipedia.org/wiki/Ctype.h

5. Google Chrome. Autor: Zator Systems. 9.1 Fecha y Hora. Fecha de Publicacin: Desconocida. 17 de abril de 2011. http://www.zator.com/Cpp/E9_1.htm

6. Google Chrome. Autor: Desconocido. Librerias de C. Fecha de Publicacin: Desconocida. 18 de abril de 2011. http://docs.mis-algoritmos.com/c.funcion.putc.html 7. Google Chrome. Autor: Desconocido. Stdio.h. Fecha de Publicacin: Desconocida. 18 de abril de 2011. http://es.wikipedia.org/wiki/Stdio.h

8. Google Chrome. Autor: Alberto Pacheco. Funciones y Libreras. Fecha de Publicacin: 12 de marzo de 2007. 18 de abril de 2011. http://expo.itch.edu.mx/view.php?f=c_35

9. Google Chrome. Autor: Marta Garduo. Archivo de Cabecera. Fecha de Publicacin: 16 de octubre de 2008. 18 de abril de 2011. http://fcqi.tij.uabc.mx/docentes/mgarduno/program1/archivos_cabecera.htm

47

También podría gustarte