top of page
  • Icono social de YouTube
  • Facebook icono social
  • Icono social Instagram

Estudios de librerias en C++

Las bibliotecas contienen el código objeto de muchos programas que permiten hacer cosas comunes, como leer el teclado, escribir en la pantalla, manejar números, realizar funciones matemáticas, etc.
Las bibliotecas están clasificadas por el tipo de trabajos que hacen, hay bibliotecas de entrada y salida, matemáticas, de manejo de memoria, de manejo de textos y como imaginarás existen muchísimas librerías disponibles y todas con una función especifica.

¿Qué son exactamente las librerias?

Las librearías son archivos (no siempre externos) 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, facilitando además crear programas con funcionalidades bastante complejas en unas pocas líneas de código.

Sintaxis para declarar librerías en C++

La declaración de librerías, tanto en C como en C++, se debe hacer al principio de todo nuestro código, antes de la declaración de cualquier función o línea de código, debemos indicarle al compilador que librerías usar, para el saber que términos estaran correctos en la escritura de nuestro código y cuáles no. La sintaxis es la siguiente: #include <nombre de la librería> o alternativamente #include "nombre de la librería". Cualquiera de las 2 formas es válida en C++ (no estoy seguro si en C sea válido), ten en cuenta que siempre el nombre de la librería debe ir entre " y " o entre < y >. En tu código puedes declarar todas las librerías que quieras aunque en realidad no tienen sentido declarar una librería que no vas a usar en tu programa, sin embargo no existe límite para esto.

Libreria: <Math>

 Es un archivo de cabecera de la biblioteca estándar del lenguaje deprogramació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 .

Funciones de la libreria: <Math>

Sin título.png
88.jpg

uso de la biblioteca: <Conio>

La biblioteca conio.h no es estándar sino que es propiedad de Borland, y está incluida en sus compiladores. Es una biblioteca de manejo de entrada y salida de datos en la consola para el sistema DOS. Que no sea estándar significa que no la encontraras implementada -oal menos totalmente- en muchos compiladores, y más importante, en otros sistemas, lo quereduce la portabilidad de tu código. Por otro lado la biblioteca se considera obsoleta, y es posible que algunas de las funciones que incluye no funcionen o lo hagan incorrectamente.Pero lo más importante es darse cuenta de que esta biblioteca no es estrictamente necesaria para programar. Por experiencia las funciones más usadas de esta biblioteca son, con  diferencia, clrscr() gotoxy() y getch().clrscr() borra la pantalla, algo que por lo general no es necesario; si estas ejecutando un programa en línea de comandos es fácil y rápido teclear un comando (cls, clear) que borrela pantalla en cuestión si lo necesitas. Por contra puede que sea molesto que un programa tome la iniciativa y borre la pantalla, ya que quizá tenga datos que el usuario quiera conservar.

Es decir que no pasa nada si no borras la pantalla. Normalmente la persona que usa un programa de línea de comandos no espera que eso ocurra.gotoxy() el cursor en una determinada posición de la pantalla. Esto puede resultar útil enocasiones, pero seamos sinceros: no suele ser muy necesario mover el cursor por la pantalla, o al menos no estrictamente necesario. Por ejemplo si estas aprendiendo a programar. Si programas una aplicación avanzada es casi seguro que tendrás un interfaceGráfico. En último caso, si estas programando una aplicación avanzada en consola, posiblemente a esas alturas ya sabrás como hacer tu mismo esta función utilizandollamadas al sistema, lo que tiene el beneficio de que puedes encapsular esa función de caraa la portabilidad, en vez de confiar en una función de biblioteca dependiente del sistema.Getch() recoge un carácter de la entrada estándar. Para eso tienes cerca de miles defunciones estándar que lo hacen. Vale, quizás no tantas, pero tienes al menos una en Cgetchar() y otra en C++ std::cin.get() ¿Porque usar getch() que NO es estándar cuando puedes usar una función estándar que hace exactamente lo mismo?Antes de que me llaméis mentiroso, hay que reconocer que getch() no hace exactamente lomismo que las otras dos funciones. Getch() NO presenta el carácter capturado por la pantalla y la entrada es sin buffer (lo que viene a decir que no hace falta pulsar enter) Sinembargo no creo que eso por lo general sea un grave problema, es más, una entrada sin buffer puede ser incluso un problema: no puedes corregir la entrada si te equivocas.

Como dejar de usar <Conio>

La librería <conio.h>, es propiedad de Borland y sólo sus compiladores pueden usarla. Por lo tanto significa que conio.h, no es una librería estandar.

La librería conio se utiliza más que nada por sus comandos: getch(), clrscr(), gotoxy(), textcolor(), y textbackground(), los cuales usamos para darle mejor presentación a nuestros programas. Pero pensandolo bien, ¿en verdad necesitamos que los programas en consola se vean bien? La verdad es que no, lo que importa es que funcionen.

Aún así, algunas funciones de la librería conio.h se pueden sustituir con funciones estándares, por ejemplo.

  • Para sustituir getch(), solo necesitamos: cin.get(); la cual está en <stdio.h>. Si no funciona entonces tendremos que ponerla dos veces: cin.get();cin.get();, la cuestión es algo complicada de explicar.

  • Para sustituir clrscr(), solo necesitamos escribir system(“cls”); la cual está en <iostream> (es sin .h, se definiría así: #include<iostream>).

  • Gotoxy() es algo vanal, y además se puede sustituir usando n (espacio hacia abajo) y t (espacio hacia la derecha) dentro de un printf();

  • Y la verdad es que cualquiera te agradecerá que no le pongas fondo rosa y letras amarillas a tus programas.

funciones de <Conio>

1.png
9.png

biblioteca de <Csetjmp>

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 sub rutina habitual y la secuencia de retorno. Las funciones complementarias setjmp y longjmp proporcionan esta funcionalidad.

Un uso típico de setjmp/longjmp es la implementación de un mecanismo de excepción que utiliza la capacidad de longjmp para restablecer el estado del programa o hilo, incluso a través de múltiples niveles de las llamadas a funciones. Un uso menos común de setjmp es crear una sintaxis similar a co-rutinas.

Funciones de <Csetjmp>

2.png

setjmp guarda el contexto actual (Ej., el estado del programa) en algún punto de la ejecución del programa, en una estructura de datos específica de la plataforma (jmp_buf) que puede ser usada, en un punto más lejano de la ejecución del programa, por longjmp para restaurar el estado del programa que fue guardado por setjmp en jmp_buf. Este proceso puede representarse como un "salto" atrás hacia el punto de la ejecución del programa donde setjmp guardo el contexto. El (aparente) valor de retorno de setjmpindica si el control alcanzado el punto de normalidad o de una llamada a longjmp . Esto lleva a un común idioma: if( setjmp(x) ){/* manejar longjmp(x) */}.

Ejemplo

Este ejemplo muestra la idea básica de setjmp. La función main llama a first, la cual a su vez llama a second. La función "second" salta de vuelta a la función main, omitiendo la ejecución de la instrucción printf de la función "first".

8.png
Unknown Track - Unknown Artist
00:0000:00

© 2023 by ENERGY FLASH. Proudly created with Wix.com

Sign-Up to Our Newsletter

bottom of page