Lenguaje de Programación
Un lenguaje de programación es un conjunto de reglas y sintaxis que permite a los programadores comunicarse con una computadora para crear software y aplicaciones. Está diseñado para expresar instrucciones de manera clara y precisa para que la máquina pueda entender y ejecutar tareas específicas. Los lenguajes de programación actúan como intermediarios entre los seres humanos y las máquinas, facilitando la creación de software al proporcionar un conjunto de comandos comprensibles para los programadores.
Cada lenguaje de programación tiene su propia sintaxis única y conjunto de reglas gramaticales que determinan cómo se deben escribir y organizar las instrucciones. Los programas escritos en un lenguaje de programación pueden abordar una amplia variedad de tareas, desde simples operaciones matemáticas hasta el desarrollo de complejas aplicaciones de software.
Existen muchos lenguajes de programación, cada uno con sus propias características y aplicaciones específicas. Algunos ejemplos comunes incluyen Python, Java, C++, JavaScript y Ruby. La elección del lenguaje de programación depende de varios factores, como los requisitos del proyecto, la eficiencia, la facilidad de mantenimiento y las preferencias del programador.


Una de las características clave de C++ es su capacidad para admitir tanto programación orientada a objetos como programación procedural, lo que proporciona flexibilidad a los desarrolladores. Además de la POO, C++ incorpora características como la sobrecarga de operadores, plantillas (templates), y gestión de memoria manual, que permite un control más directo sobre los recursos del sistema.
C++ se ha convertido en un lenguaje muy influyente y se utiliza en una variedad de aplicaciones, desde el desarrollo de sistemas operativos hasta software de juegos y aplicaciones empresariales. Su eficiencia y versatilidad lo han mantenido relevante a lo largo de los años. C++ ha influido en el diseño de muchos otros lenguajes de programación y ha servido como base para el desarrollo de tecnologías importantes, como el framework de desarrollo de sistemas operativos conocido como el "Kernel de Linux".
C++
C++ es un lenguaje de programación de alto nivel que se desarrolló como una extensión del lenguaje de programación C. Fue creado por Bjarne Stroustrup, un científico de la computación danés, a principios de la década de 1980 en los laboratorios Bell de AT&T (American Telephone and Telegraph). La primera versión oficial de C++ se lanzó en 1985.
La principal motivación detrás del desarrollo de C++ fue mejorar y extender las capacidades del lenguaje C. C++ introdujo conceptos de programación orientada a objetos (POO), que permiten la creación de programas más estructurados y modulares. La programación orientada a objetos es un paradigma de programación que organiza el código en "objetos", entidades que encapsulan datos y los métodos que operan sobre esos datos.

Bibliotecas de c++
En el contexto de C++, el término "librerías" (o bibliotecas) se refiere a archivos específicos que pueden ser importados o incluidos en nuestro programa. Estos archivos contienen las especificaciones de diversas funcionalidades previamente construidas y listas para usar, que podemos agregar a nuestro programa. Ejemplos de estas funcionalidades incluyen la lectura desde el teclado o la visualización en la pantalla, entre muchas otras.
La inclusión de estas librerías, que contienen definiciones de diversas funcionalidades, nos permite evitar la repetición de tareas. Imaginemos, por ejemplo, tener que crear una función desde cero cada vez que necesitamos leer desde el teclado (una tarea compleja). Gracias a las librerías en C++, podemos acceder a una amplia variedad de funciones que simplifican nuestras tareas y mejoran la modularidad de nuestros códigos.
Es importante destacar que las librerías no son exclusivamente archivos externos creados por terceros; también tenemos la capacidad de crear nuestras propias librerías y utilizarlas en nuestros programas. Las librerías pueden tener varias extensiones, siendo las más comunes: .lib, .bpl, .a, .dll, .h, entre otras menos convencionales
Declaración de las bibliotecas
En C y C++, la declaración de librerías es una práctica que debe llevarse a cabo al inicio del código, antes de cualquier declaración de funciones o líneas de código. Esta acción informa al compilador sobre qué librerías se utilizarán, permitiéndole reconocer qué términos son válidos en la escritura del código y cuáles no. La sintaxis para realizar esta declaración es la siguiente: `#include <nombre de la librería>` o alternativamente `#include "nombre de la librería"`. Ambas formas son válidas en C++ (aunque no estoy seguro de su validez en C), y es importante notar que el nombre de la librería siempre debe ir entre comillas angulares `< >` o comillas dobles `" "`. En tu código, puedes declarar todas las librerías que desees. Sin embargo, es recomendable limitarse a declarar únicamente aquellas librerías que se utilizarán en el programa, ya que declarar innecesariamente librerías no afecta el rendimiento, pero puede dificultar la lectura y comprensión del código.
Principales Bibliotecas
fstream: Flujos hacia/desde ficheros. Permite la manipulación de archivos desde el programar, tanto leer como escribir en ellos.
iosfwd: Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estándar. Por ejemplo ostream.
iostream: Parte del a STL que contiene los algoritmos estándar, es quizá la más usada e importante (aunque no indispensable).
La biblioteca list: Parte de la STL relativa a contenedores tipo list; listas doblemente enlazadas
math: Contiene los prototipos de las funciones y otras definiciones para el uso y manipulación de funciones matemáticas.
memory: Utilidades relativas a la gestión de memoria, incluyendo asignadores y punteros inteligentes (auto_ptr).
"auto_ptr" es una clase que conforma la librería memory y permite un fácil manejo de punteros y su destrucción automaticamente.
Biblioteca new: Manejo de memoria dinámica
numeric: Parte de la librería numérica de la STL relativa a operaciones numéricas.
ostream: Algoritmos estándar para los flujos de salida.
queue: Parte de la STL relativa a contenedores tipo queue (colas de objetos).
Librería stdio: Contiene los prototipos de las funciones, macros, y tipos para manipular datos de entrada y salida.
Librería stdlib: Contiene los prototipos de las funciones, macros, y tipos para utilidades de uso general.
string: Parte de la STL relativa a contenedores tipo string; una generalización de las cadenas alfanuméricas para albergar cadenas de objetos. Muy útil para el fácil uso de las cadenas de caracteres, pues elimina muchas d elas dificultades que generan los char