Beruflich Dokumente
Kultur Dokumente
NOMBRE DE LA ASIGNATURA
INTEGRANTES:
Gabriel
Hernndez 8-930-199
GRUPO: 1SF-123
5-1-2017
Introduccin
En esta investigacin vamos a conocer sobre la biblioteca estndar del C, su
diseo, calidad de diseo y los archivos de cabecera de este, adems vamos a
reforzar toda la informacin con ejemplos para facilitar su compresin.
ndice
Introduccin........................................................................................................ 2
La biblioteca estndar de C................................................................................. 4
Diseo..................................................................................................... 4
Calidad del diseo....................................................................................... 4
Archivos de Cabecera......................................................................................... 4
Programa Ejemplo por cada funcin de archivo de cabecera.................................................5
..................................................................................................... stdlib.h
.............................................................................................................. 5
Ctype.h.................................................................................................... 7
(Alciro, 2017) String.h............................................................................... 11
Stdio.h................................................................................................... 16
Conio.h.................................................................................................. 18
Math.h................................................................................................... 20
Time.h................................................................................................... 24
Entorno de Desarrollo Integrado (IDE) del C.................................................................27
Un IDE debe tener las siguientes caractersticas:...............................................28
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.
Archivos de Cabecera
- conio.h (cgets, cprintf, cputs, cscanf, getch, getche, kbhit,clrcrs)
- ctype.h (isascii, isalnum, isdigit, islower, isspace, isupper, toascii,tolower,
toupper)
- math.h (abs, acos, asin, atan, ceil, cos, exp, fabs, flloor, fmod, log, pow,
sin, sqrt, tan)
- stdio.h (getchar, putchar, gets, puts, fflush, scanf, printf)
- stdlib.h (atoi, atof, itoa, rand, srand, system,exit,qsort)
- string.h (strcpy, strlen, strcmp,strncmp, strncpy,strcat,strchr)
- time.h
Programa Ejemplo por cada funcin de archivo de cabecera.
stdlib.h
(Romero, 2007), abs(): Calcula el valor absoluto de un entero num. Si el resultado no puede
ser representado, el comportamiento no est definido.
#include <iostream.h>
#include <stdlib.h>
void main()
{
int num;
cout<<"Escriba un numero entero:";
cin>>num;
cout<<"abs ("<<num<<")="<<abs(num)<<endl;
}
labs(): Similar a abs, excepto que el argumento es de tipo long int. La funcin labs retorna
el valor absoluto (de tipo long int)
#include <iostream.h>
#include <stdlib.h>
void main()
{
long int num;
cout<<"Escriba un numero entero:";
cin>>num;
cout<<"labs ("<<num<<")="<<labs(num)<<endl;
}
atof()Convierte la porcin inicial de la cadena apuntada por numPtr a una representacin de
double. La funcin atof retorna el valor convertido.
#include <iostream.h>
#include <stdlib.h>
void main()
{
chart numPtr[11] = "123.456789";
cout<<"convirtiendo la cadena " <<numPtr<<" en
un numero:\n"<<atof(numPtr)<<endl;
}
atoi() Convierte la porcin inicial de la cadena apuntada por numPtr a una representacin
de int. La funcin atoi retorna el valor convertido.
#include <iostream.h>
#include <stdlib.h>
void main()
{
char numPtr[5] = "1234";
cout<<"convirtiendo la cadena " <<numPtr<<" en
un numero:\n"<<atoi(numPtr)<<endl;
}
exit() Ocasiona una terminacin normal del programa. La funcin exit no retorna ningn
valor.
#include <iostream.h>
#include <stdlib.h>
void main()
{
char cadena;
cout<<"Introduzca un caracter. Para salir, escriba
'Q':";
cin>>cadena;
while(1) if( cadena == 'Q' ) exit(0);
}
#include <iostream.h>
#include <stdlib.h>
void main()
{
unsigned int i=1;
cout<<"10 nmeros generados aleatoriamente:
\n\n";
for( i=1; i<=10; i++ )
cout<<rand()<<endl;
}
System() Pasa la cadena apuntada por cadena al entorno local para ser ejecutada por el
"procesador de comandos" - tambin denominado "intrprete de comandos" - de una forma
definida segn la implementacin. Un puntero nulo puede ser usado para cadena para
comprobar si existe un procesador de comandos.
#include <iostream.h>
#include <stdlib.h>
/* Slo funcionar si "dir" es aceptable por el sistema:
MS-DOS, por ejemplo */
int main( void )
{
cout<<"La lista de ficheros en el
directorio actual, segn el comando
(dir):\n";
system( "dir" );
return 0;
}
atol() Convierte la porcin inicial de la cadena apuntada por numPtr a una representacin
de long. La funcin atol retorna el valor convertido.
#include <iostream.h>
#include <stdlib.h>
void main()
{
char numPtr[11] = "1234567890";
cout<<"convirtiendo la cadena " <<numPtr<<" en un
numero:\n"<<atol(numPtr)<<endl;
}
Ctype.h
#include <stdio.h>
#include <ctype.h>
int main()
{
char cadena[] = ";0sR(h&R1/";
int i;
for(i = 0; cadena[i]; i++)
printf("%c, %d\n", cadena[i],
isalnum(cadena[i]));
return 0;
}
Isalpha Comprueba sin un carcter es alfabtica. isalpha es una macro que verifica el
entero c pertenece al rango de letras (A a Z o a a z), por defecto. La verificacin se hace
mediante una tabla, y su comportamiento depende le la
#include <stdio.h>
#include <ctype.h>
int main()
{
char cadena[] = ";0sR(h&R1/";
int i;
for(i = 0; cadena[i]; i++)
printf("%c, %d\n", cadena[i],
isalpha(cadena[i]));
return 0;
}
Isascii()Comprueba sin un carcter pertenece al ASCII de 7 bits. Isascii es una macro que
verifica el entero c pertenece al rango de (0 a 127). Esta macro est definida para todos lo
valores enteros. El valor de retorno ser no nulo si c est en el rango entre 0 y 127, en
hezadecimal entre 0x00 y 0x7f.
#include <stdio.h>
#include <ctype.h>
int main()
{
char cadena[] = ";0sR(h&~?R1/";
int i;
for(i = 0; cadena[i]; i++)
printf("%c, %d\n", cadena[i],
isascii(cadena[i]));
return 0;
}
Isdigit()Comprueba sin un carcter es un dgito decimal. isdigit es una macro que verifica
el entero c pertenece al rango caracteres de digitos decimales, que depende de la categora
local LC_CTYPE, por defecto, el rango es de ('0' a '9'). El valor de retorno ser no nulo si c
es un dgito decimal.
#include <stdio.h>
#include <ctype.h>
int main()
{
char cadena[] = ";0fR(4h&~?R1/";
int i;
#include <stdio.h>
#include <ctype.h>
int main()
{
char cadena[] = "aAbBcCdD31&75$/";
int i;
for(i = 0; cadena[i]; i++)
printf("%c, %d\n", cadena[i],
isupper(cadena[i]));
return 0;
}
Isxdigit() Comprueba sin un carcter es un dgito hexadecimal. Isxdigit es una macro que
verifica el entero c pertenece al rango caracteres de digitos decimales, que depende de la
categora local LC_CTYPE, por defecto, el rango es de ('0' a '9', 'a' a 'f' y 'A' a 'F').
#include <stdio.h>
#include <ctype.h>
int main()
{
char cadena[] = ";0fR(4h&5d~?ER1/";
int i;
stpcpy copia la cadena src a dest, parando despus de alcanzar el carcter nulo de la
terminacin src.
stpcpy devuelve un puntero al carcter nulo de terminacin de dest.
#include <string.h>
#include <stdio.h>
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
stpcpy(string, str1);
printf("%s\n", string);
return 0;
}
strcat aade una copia de src al final de dest. La longitud de la cadena resultante es strlen
(dest) + strlen (src). strcat devuelve un puntero a las cadenas concatenadas.
#include <string.h>
#include <stdio.h>
int main(void)
{
char destination[25];
char *blank = " ", *c = "C++", *Borland = "Borland";
strcpy(destination, Borland);
strcat(destination, blank);
strcat(destination, c);
printf("%s\n", destination);
return 0;
}
#include <string.h>
#include <stdio.h>
int main(void)
{
char string[15];
char *ptr, c = 'r';
strcmp realiza una comparacin del contenido de s1 con s2, a partir de el primer carcter
de cada cadena y continua con los siguientes caracteres hasta que los caracteres
correspondientes difieren o hasta alcanzar el final de la cadenas.Valor de Retorno
Si s1 es ... valor de retorno es ...
menor que s2 <0
el mismo que s2 == 0
mayor que s2 >0
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";
int ptr;
return 0;
}
strcpy Copia una cadena en otra. Copias cadena src a dest, parando despus de mover el
carcter nulo de la terminacin.
strcpy devuelve dest.
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
strcpy(string, str1);
printf("%s\n", string);
return 0;
}
strlen calcula la longitud de s. strlen devuelve el nmero de caracteres s, sin contar el
nulo terminacin de carcter.
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string = "Borland International";
printf("%d\n", strlen(string));
return 0;
strncat copias los caracteres indicados maxlen de src al final de dest, y luego aade un
carcter nulo. La longitud mxima de la resultante cadena es strlen (dest) + maxlen.
strncat devuelve dest
#include <string.h>
#include <stdio.h>
int main(void)
{
char destination[25];
char *source = " States";
strcpy(destination, "United");
strncat(destination, source, 7);
printf("%s\n", destination);
return 0;
}
strnicmp realiza una comparacin de s1 a s2, para una longitud mxima de bytes maxlen,
comenzando con el primer carcter de cada cadena y continuar con los siguientes caracteres
hasta que los caracteres correspondientes difieren o hasta que se alcanza el final de las
cuerdas. La comparacin no hace distincin entre maysculas y minsculas.
Devuelve un valor (<0, 0, o >0) en funcin del resultado de la comparacin de s1 (o parte
de ella) a s2 (o parte de ella).
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBBccc", *buf2 = "bbbccc";
int ptr;
if (ptr > 0)
printf("buffer 2 is greater than buffer 1\n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1\n");
if (ptr == 0)
printf("buffer 2 equals buffer 1\n");
return 0;
}
strrchr analiza una cadena en la direccin contraria, en busca de un determinado carcter.
strrchr encuentra la ltima ocurrencia del carcter c en la cadena s. El terminador nulo es
considerado como parte de la cadena.
#include <string.h>
#include <stdio.h>
int main(void)
{
char string[15];
char *ptr, c = 'r';
main()
{
putchar('H');
putchar('o');
putchar('l');
putchar('a');
putchar(32);
putchar('m');
putchar('u');
putchar('n');
putchar('d');
putchar('o');
putchar('\n');
}
getchar devuelve el carcter que se halle en la entrada estndar. Esta funcin tiene dos
particularidades. La primera es que aunque se utiliza para obtener caracteres no devuelve
un carcter, sino un entero.
#include <stdio.h>
main()
{
int c;
putchar(c);
}
main()
{
puts("Bienvenido a la programacin");
puts(" en lenguaje C");
}
Gets simplemente toma una cadena de caracteres de la entrada estndar (cuya introduccin
es preciso terminar con un ENTER) y la almacena en una variable string. Supongamos este
cdigo:
#include <stdio.h>
main()
{
char cadena[50];
puts("Escriba un texto:");
gets(cadena);
puts("El texto escrito es:");
puts(cadena);
}
Printf, que se ocupa de la impresin con formato en la salida estndar. Cuando se empieza
con un nuevo lenguaje suele gustar el ver los resultados, ver que nuestro programa hace
"algo". Por eso la mayor parte de programas de principiantes utilizan rpidamente la
funcin printf, que sirve para sacar informacin por pantalla.
#include <stdio.h>
main()
{
printf( "Cadena" );
printf( "Segunda" );
}
Scanf: scanf es muy similar al de printf con una diferencia fundamental: nos da la
posibilidad de que el usuario introduzca datos en vez de mostrarlos. No nos permite mostrar
texto en la pantalla; por eso, si queremos mostrar un mensaje previo, usamos un printf
delante.
#include <stdio.h>
main()
{
int num;
Conio.h
(Gonzalez, 2002)
Gotoxy: Hemos visto que cuando usamos printf se escribe en la posicin actual del cursor
y se mueve ste al final de la cadena que hemos escrito. Pero qu sucede cuando queremos
escribir en una posicin determinada de la pantalla?. La solucin est en la funcin gotoxy
#include <stdio.h>
#include <conio.h>
main()
{
gotoxy( 20, 10 );
printf( "Hola" );
}
clrscr: Ahora ya slo resta saber cmo se limpia la pantalla. Ello es tan fcil como usar:
clrscr(), Esta funcin no slo borra la pantalla, sino que sita el cursor en la posicin (1, 1),
en la esquina superior izquierda.
#include <stdio.h>
#include <conio.h>
main()
{
clrscr();
printf( "Hola" );
}
clreol() Borra de la pantalla todos los caracteres que haya desde la posicin actual del
cursor hasta el final de la lnea, dejando el cursor donde estaba.
clreol();
textbackground()
Establece el color de fondo.
colorfondo puede ser un valor entre 0 y 7 o una constante predefinida:
BLACK 0
BLUE 1
GREEN 2
CYAN 3
RED 4
MAGENTA 5
BROWN 6
LIGHTGRAY 7
textbackground(1);
textbackground(BLUE);
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.
textcolor (LIGHTRED);
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();
Kbhit: Revisa si una tecla pulsada est disponible. Cualesquier pulsadas disponibles
pueden ser recogidas con las funciones getch o getche.
#include <conio.h>
int main() \{
clrscr();
cprintf( "Ejemplo de \"kbhit\"\r\n\r\n" );
cprintf( "El programa est a la espera de registrar una tecla pulsada.\r\n" );
while( !kbhit() );
cprintf( "El carcter es \'%c\'\r\n", getch() );
cprintf( "Pulsa una tecla para continuar...\r\n" );
getch();
return 0;
}
Math.h
Pow: Calcula x elevado a la potencia de y. Puedeproducirse 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. Unerror de
recorrido puede producirse
Ejemplo:
#include <stdio.h>
#include <math.h>
int main()
{double x = 6.54321, y = 0.56789;
printf( "pow( %f, %f ) = %f\n", x, y, pow(x,y) );
return 0;
}
Sqrt: Calcula la raz cuadrada del valor no negativo de x. Puede producirse un error de
dominio si x es negativo.
#include<stdio.h>
#include <math.h>
int main()
{
double x = 6.54321;
printf( "sqrt( %f ) = %f\n", x,sqrt(x) );
return 0;
}
int main()
{
double x = -6.54321, y = 1.23456;
Acos: 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]. La funcin acos retorna el arco
coseno en el intervalo [0, PI] radianes.
#include <stdio.h>
#include <math.h>
int main()
{
double x = 0.2345;
Asin: 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].
#include <stdio.h>
#include <math.h>
int main()
{
double x = 0.2345;
#include <stdio.h>
#include <math.h>
int main()
{
double x = 0.2345;
int main()
{
double x = 6.54321;
#include <stdio.h>
#include <math.h>
int main()
{
double x = -5.567;
#include <stdio.h>
#include <math.h>
int main()
{
double x = -6.54321;
#include <stdio.h>
#include <math.h>
int main()
{
double x = 6.54321;
printf( "floor( %f ) = %f\n", x, floor(x) );
return 0;
}
#include <stdio.h>
#include <math.h>
int main()
{
double x = -6.54321, y = 1.23456;
int main()
{
double x = 6.54321;
int main()
{
double x = 3.1416/3.0;
Time.h
Asctime: La funcin asctime convierte el tiempo en formato separado en la estructura
apuntada por tiempoPtr en una cadena en la forma: Tue May 15 19:07.04 2001\n\0
#include <stdio.h>
#include <time.h>
return 0;
}
comienzo=clock();
for( i=0; i<10000; i++ ) printf( "-" );
return 0;
}
#include <stdio.h>
#include <time.h>
return 0;
}
#include <stdio.h>
#include <time.h>
return 0;
}
return 0;
}
Los IDE proveen un marco de trabajo amigable para la mayora de los lenguajes de
programacin tales como C++, PHP, Python, Java, C#, Delphi, Visual Basic, etc. En
algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de ejecucin, en
donde se permite utilizar el lenguaje de programacin en forma interactiva, sin necesidad
de trabajo orientado a archivos de texto.Algunos ejemplos de entornos integrados de
desarrollo (IDE) son los siguientes:
Eclipse
NetBeans
IntelliJ IDEA
JBuilder de Borland
JDeveloper de Oracle
KDevelop
Anjunta
Clarion
MS Visual Studio
Visual C++
Los IDE ofrecen un marco de trabajo para la mayora de los lenguajes de programacin
tales como C++, Python, Java, C#, Delphi, Visual Basic, etc. En algunos lenguajes, un IDE
puede funcionar como un sistema en tiempo de ejecucin, en donde se permite utilizar el
lenguaje de programacin en forma interactiva, sin necesidad de trabajo orientado a
archivos de texto.
Multiplataforma
Reconocimiento de Sintaxis
Depurador
Mltiples idiomas