UNIVERSIDAD NORORIENTAL PRIVADA
“GRAN MARISCAL DE AYACUCHO”
FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
NÚCLEO CIUDAD GUAYANA - ESTADO BOLIVAR
Interfaz de AutoCAD
PRIMERA ASIGNACIÓN
ASIGNATURA: PROGRMACIÓN i
SECCIÓN: 3D1
DOCENTE: THAIS PARRA
REALIZADO POR: HIDALGO FIGUERA, ATILIO FRANCISCO
C. I. Nº 31.207.491
Ciudad Guayana, octubre de 2021
Introducción
El lenguaje de programación C, antes de normalizarse, no disponía de funcionalidades
tales como operaciones de entrada/salida (a diferencia de lenguajes tradicionales como
COBOL y FORTRAN). Con el tiempo, las comunidades de usuarios de C fueron
compartiendo ideas, así como las implementaciones de lo que ahora se denomina las
bibliotecas estándar de C para proporcionar esas funcionalidades. Muchas de estas ideas
se incorporaron finalmente en la definición estandarizada del lenguaje.
Muchas organizaciones y universidades crearon sus propias versiones del lenguaje para
sus propios proyectos. A comienzos de los 80 se evidenciaron los problemas de
compatibilidad derivados de la existencia de las múltiples implementaciones del lenguaje.
En 1983 el Instituto Nacional Estadounidense de Estándares (ANSI, de las siglas en
inglés de American National Standards Institute) creó un comité para establecer una
especificación estándar del lenguaje conocida como ANSI C.
El presente trabajo se hace con la finalidad conocer las funcionalidades y el uso de las
librerías que conforman la base de la programación en C y C++.
Biblioteca estándar de C
La biblioteca estándar de C (también conocida como libc) es una recopilación de archivos
de cabecera y bibliotecas con rutinas, estandarizadas por un comité de la Organización
Internacional para la Estandarización (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/1, C no incluye palabras clave para estas tareas, por lo que
prácticamente todo programa implementado en C se basa en la biblioteca estándar para
funcionar.
El nombre y las características de cada función, el prototipo, así como la definición de
algunos tipos de datos y macros, se encuentran en un fichero denominado archivo de
cabecera (con extensión ".h"), pero la implementación real de las funciones están
separadas en un archivo de la biblioteca. La denominación y el ámbito de las cabeceras
se han convertido en comunes, pero la organización 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 están especificados en el
ANSI C, la biblioteca de un compilador no siempre es compatible con el estándar ni con
las bibliotecas de otros compiladores.
El estándar ANSI
La biblioteca estándar de ANSI C consta de 24 ficheros cabecera que pueden ser
incluidos en un proyecto de programación con una simple directiva. Cada cabecera
contiene la declaración de una o más funciones, tipos de datos y macros.
En comparación con otros lenguajes de programación (como por ejemplo Java) la
biblioteca estándar es muy pequeña, ésta proporciona un conjunto básico de funciones
matemáticas, de tratamiento de cadenas, conversiones de tipo y entrada/salida por
consola o por ficheros. No se incluyen, ni un conjunto de tipos de datos contenedores
básicos (listas, pilas, colas,...), ni herramientas para crear una interfaz gráfica de usuario
(GUI), ni operaciones para trabajar en red, ni otras funcionalidades que lenguajes como
C++ o Java incorporan de manera estándar. La principal ventaja del reducido tamaño de
la biblioteca estándar de C es que construir un entorno de trabajo en ANSI C es muy fácil
y, en consecuencia, portar un programa en ANSI C de una plataforma a otra es
relativamente sencillo.
Archivos de cabeceras de la biblioteca ANSI C:
assert.h
assert.h es un archivo de cabecera de la biblioteca estándar del Lenguaje de
programación C, en el que se define la macro de depuración assert (aserción, en
español), que implementa una aserción (test), usada para comprobar suposiciones en el
programa:
#define assert ( test )
Esta macro se expande como un bloque "if", en el que se comprueba la condición 'test' y,
dependiendo de si es o no verdadera, puede abortar el programa.
Si se coloca la directiva #define NDEBUG (no depurar) en el archivo fuente antes de
incluir assert.h, entonces la macro se definirá como:
#define assert(ignore)((void) 0)
Lo que provoca que ésta no tenga ningún efecto en el programa. Algunos
compiladores simplemente convierten todas las aserciones en comentarios.
Ctype.h
Contiene los prototipos de las funciones y macros de clasificación de caracteres.
Función Valores
isalnum (A - Z o a - z) o (0 - 9)
isalpha (A - Z o a - z)
isascii 0 - 127 (0x00-0x7F)
iscntrl (0x7F o 0x00-0x1F)
isdigit (0 - 9)
isgraph Imprimibles menos ' '
islower (a - z)
isprint Imprimibles incluido ' '
ispunct Signos de puntuación
espacio, tab, retorno de línea, cambio de línea,
isspace tab vertical, salto de página
(0x09 a 0x0D, 0x20).
isupper (A-Z)
isxdigit (0 to 9, A to F, a to f)
Errno.h
errno.h es un archivo de cabecera en la biblioteca estándar del lenguaje de programación
C. En ella se definen las macros que presentan un informe de error a través de códigos de
error. La definición de estas constantes puede depender del compilador,
La macro errno se expande a un L-value con tipo int, que contiene el último código de
error generado en cualquiera de las funciones utilizando la instalación de errno.
Tres macros para ampliar entero constantes que representan los códigos de error:
Edom: resultados de un parámetro fuera de una función de dominio, por ejemplo,
sqrt (-1)
ERANGE: el resultado de un resultado fuera de una función de la gama, por
ejemplo strtol ("0xfffffffff", NULL, 0)
EILSEQ: resultados de una secuencia de carácter ilegal, por ejemplo wcstombs
(str, L "\ xffff", 2)
Sistemas operativos compatibles con POSIX como UNIX o Linux podrán incluir otras
macros para representar a otros números de código de error del sistema operativo.
Limits.h
Contiene parámetros de entorno, información sobre limitaciones y rangos para tipos
enteros.
Constante Significado
CHAR_BIT Número de bits del tipo char
CHAR_MIN Valor mínimo del tipo char
CHAR_MAX Valor máximo del tipo char
INT_MIN Valor mínimo del tipo int
INT_MAX Valor máximo del tipo int
LONG_MIN Valor mínimo del tipo long
LONG_MAX Valor máximo del tipo long
Valor mínimo del tipo char con
SCHAR_MIN signo
Valor máximo del tipo char con
SCHAR_MAX
signo
SHRT_MIN Valor mínimo del tipo short
SHRT_MAX Valor máximo del tipo short
UCHAR_MAX Valor máximo de unsigned char
USHRT_MAX Valor máximo unsigned short
UINT_MAX Valor máximo unsigned int
ULONG_MAX Valor máximo unsigned long
math.h
Math.h o math.h es un archivo de cabecera de la biblioteca estándar del lenguaje de
programación C diseñado para operaciones matemáticas básicas. Muchas de sus
incluyen el uso de números en coma flotante. C++ también implementa estas funciones
por razones de compatibilidad y las declara en la cabecera cmath. Todas las funciones en
las que participan ángulos toman y devuelven radianes.
Funciones miembro anterior
Nombre Descripción
acos arcocoseno
asin arcoseno
atan arcotangente
atan2 arcotangente de dos parámetros
floor función suelo
cos coseno
cosh coseno hiperbólico
exp(double x) función exponencial, computa ex
fabs valor entero
ceil menor entero no menor que el parámetro
fmod residuo de la división de flotantes
frexp fracciona y eleva al cuadrado.
ldexp tamaño del exponente de un valor en punto flotante
log logaritmo natural
log10 logaritmo en base 10
modf obtiene un valor en punto flotante íntegro y en partes
pow eleva un valor dado a un exponente, xy
sin seno
sinh seno hiperbólico
sqrt raíz cuadrada
tan tangente
tanh tangente hiperbólica
setjmp.h
setjmp.h es un encabezado definido en la biblioteca estándar de C para proporcionar
"saltos no locales": control de flujo que se desvía de la llamada a subrutina habitual y la
secuencia deretorno. Las funciones complementarias setjmp y longjmp proporcionan
estafuncionalidad.
Un uso típico de setjmp / longjmp es la implementación de un mecanismo de
excepciónque utiliza la capacidad de longjmp para restablecer el estado del programa o
hilo, incluso através de múltiples niveles de las llamadas a funciones. Un uso menos
común de setjmp escrear una sintaxis similar a corrutinas.
Funciones miembro:
Establece el buffer jmp_buf local y lo inicializa
para el salto.
Esta rutina guarda el contexto de la llamada
del programa en el búfer de contexto
int
especificado por el argumento env para su uso
setjmp(jmp_buf env)
posterior por longjmp . Si el retorno es de una
invocación directa, setjmp devuelve 0. Si el
retorno es de una llamada a longjmp , setjmp
devuelve un valor distinto de cero.
Restaura el contexto del buffer de entorno env
que se salvó por invocación de la rutina en la
misma invocación del programa.
Invocando longjmp desde un manejador de
señales anidado no definido. El valor
especificado por valor es pasado desde
void longjmp a setjmp . Después de que longjmp se
longjmp (jmp_buf env, int value) completa, la ejecución del programa continúa
como si la invocación correspondiente de
setjmp acabara de regresar. Si el valor pasado
a longjmp es 0, setjmp se comportará como si
hubiera devuelto 1;, de lo contrario, se
comportará como si hubiera devuelto un
valor.
signal.h
signal.h es un archivo de cabecera definido en la Biblioteca estándar de C para
especificar como un programa maneja señales mientras se ejecuta. Una señal puede
reportar un comportamiento excepcional en el programa (tales como la división por cero),
o una señal puede reportar algún evento asíncrono fuera del programa (como alguien está
pulsando una tecla de atención interactiva en el teclado)
Una señal puede ser generada llamando a raise (para enviar una señal al proceso actual)
o kill (para enviar una señal a cualquier proceso). Cada implementación define lo que
genera las señales (en su caso) y en qué circunstancias las genera. Una implementación
puede definir otras señales además de las que figuran en esta lista. La cabecera estándar
<signal.h> puede definir macros adicionales con nombres que empiezan con SIG para
especificar los valores de señales adicionales. Todos los valores son expresiones
constantes enteras >= 0.
Funciones miembro
int raise(int sig) . Envía una señal artificialmente.
psignal(int sig, const char *s) , devuelve a stderr una cadena que representa un
número de señal. Está en 4.3BSD, Solaris y Linux, pero no está especificada por
POSIX o SUS.
En los mismos sistemas, string.h contiene la función no estándar strsignal(int sig) que
opera de la misma forma que strerror.
void* signal(int sig, void (*func)(int)) , establece las medidas adoptadas cuando el
programa recibe la señal sig . Si el valor de func es SIG_DFL, se usará el manejo
por defecto para esa señal. Si el valor de func es SIG_IGN, la señal será ignorada.
De lo contrario se apuntará a una función manejador de señal que se llamará
cuando la señar se active.
Macros miembro
SIG_DFL - Usado para seleccionar el manejo por defecto.
SIG_IGN - Usado para manejar una señal ignorándola.
SIG_ERR - Un número usado para errores.
stdio.h
stdio.h, que significa "standard input-output header" (cabecera estándar E/S), es el
archivo de cabecera que contiene las definiciones de las macros, las constantes, las
declaraciones de funciones de la biblioteca estándar del lenguaje de programación C para
hacer operaciones, estándar, de entrada y salida, así como la definición de tipos
necesarias para dichas operaciones. Por motivos de compatibilidad, el lenguaje de
programación C++ (derivado de C) también tiene su propia implementación de estas
funciones, que son declaradas con el archivo de cabecera cstdio.
Las funciones declaradas en stdio.h son sumamente populares.
En C y sus derivados, todas las funciones son declaradas en archivos de cabecera. Así,
los programadores tienen que incluir el archivo de cabecera stdio.h dentro del código
fuente para poder utilizar las funciones que están declaradas. Nota: el compilador
diferencia las mayúsculasde las minúsculas.
string.h
string.h es un archivo de la Biblioteca estándar del lenguaje de programación C que
contiene la definición de macros, constantes, funciones y tipos y algunas operaciones de
manipulación de memoria.
Las funciones declaradas en string.h se han hecho muy populares, por lo que están
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 más seguras frente
a la portabilidad que estas funciones ofrecen. Además, las funciones para cadenas de
caracteres sólo trabajan conconjuntos de caracteres ASCII o extensiones ASCII
compatibles.
Constantes y tipos:
Nombre Descripción
macro que representa la constante puntero nulo; representa un
valor de puntero
NULL
que no apunta a ninguna dirección válida de objeto alguno en
memoria
tipo entero sin signo (positivo); es el tipo devuelto por el
size_t
operador sizeof
time.h
time.h relacionado con formato de hora y fecha es un archivo de cabecera de la biblioteca
estándar del lenguaje de programación C que contiene funciones para manipular y
formatear la fecha y hora del sistema.
Constantes:
Nombre Descripción
CLK_PER_SEC Constante que define el número de pulsos de
reloj por segundo; usado
por la función clock()
CLOCKS_PER_SEC nombre alternativo para CLK_PER_SEC usado
en su lugar en algunas
bibliotecas
CLK_TCK usualmente una macro para CLK_PER_SEC
Tipos de datos:
Nombre Descripción Nombre Descripción
clock_t tipo de dato devuelto por clock()
generalmente un long int
time t tipo de dato devuelto por time() ,
generalmente un long int
struct tm representación del tiempo en formato de
calendario (fecha/hora)
Float.h
Contiene la definición de constantes que especifican ciertas propiedades de la biblioteca
de coma flotante, como la diferencia mínima entre dos números en coma flotante
(_EPSOLON), el número máximo de dígitos de precisión (_DIG), o el rango de valores
que se pueden representar (_MIN, _MAX).
Locale.h
Para la función setlocale( ) y las constantes relacionadas. Se utiliza para
seleccionar el entorno local apropiado (configuración regional).
stdarg.h
Posibilita el acceso a una cantidad variable de argumentos pasados a una función.
Contiene las macros y tipos para crear y manipular argumentos de variables.
stddef.h
Contiene las macros, y tipos comunes.
stdlib.h
stdlib.h (std-lib: standard library o biblioteca estándar). Es el archivo de cabecera
de la biblioteca estándar de propósito general del lenguaje de programación C.
Contiene los prototipos de funciones de C para gestión de memoria dinámica,
control de procesos y otras. Es compatible con C++ donde se conoce como
cstdlib.
Las funciones que pertenecen a stdlib.h pueden clasificarse en las siguientes
categorías: conversión, memoria, control de procesos, ordenación y búsqueda,
matemáticas.
En la biblioteca stdlib.h se define un tipo de dato llamado size_t que representa el
tamaño de un vector para las funciones miembro de la biblioteca. En la práctica,
se asume que size_t es equivalente a un entero sin signo (positivo).
Conclusión
Las librerías o bibliotecas simplifican enormemente la labor de programar, ya que nos
permiten ahorrar gran cantidad al codificar. Basta con imaginar que debamos crear una
función para leer por teclado cada vez que lo necesitemos (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;
incluso con la oportunidad de crear librerías propias.
En conclusión, las librerías son archivos que nos permiten llevar a cabo diferentes tareas
sin necesidad de preocuparnos por cómo se hacen sino simplemente entender cómo
usarlas. Las librearías en C permiten hacer nuestros programas más modulares y
reutilizables, simplificando el crear programas con funcionalidades bastante complejas en
unas pocas líneas de código.
Bibliografías
Steven Davidson y Salvador Pozo (2003): Librerías ANSI C
http://localhost/conclase/c/librerias/libpdf.php
https://www.programarya.com/Cursos/C++/Bibliotecas-o-Librerias
https://es.wikipedia.org/w/index.php?title=Biblioteca_estándar_de_C&oldid=12599
5189