Está en la página 1de 10

Universidad Autónoma de Santo Domingo

UASD

(Recinto Puerto Plata)

Presentado por:

Asignatura

Informática I

Tema:

El lenguaje de programación C++

Presentado a:

Edward R. Martínez Lantigua

Puerto Plata, R.D.


Julio 2018
Introducción
Para comenzar a estudiar cualquier lenguaje de programación se debe conocer
cuáles son los conceptos que soporta, es decir, el tipo de programación que
vamos a poder realizar con él. Como el C++ incorpora características nuevas
respecto a lenguajes como Pascal o C, en primer lugar daremos una descripción
a los conceptos a los que este lenguaje da soporte, repasando los paradigmas de
programación y centrándonos en la evolución desde la programación Funcional
a la programación Orientada a Objetos. Más adelante estudiaremos el lenguaje
de la misma manera, primero veremos sus características funcionales
(realmente la parte que el lenguaje hereda de C) y después estudiaremos las
extensiones que dan soporte a la programación orientada a objetos (el ++ de
C++).

En este bloque introduciremos el lenguaje de programación C++.


Comenzaremos por dar una visión general del lenguaje y después trataremos de
forma práctica todos los conceptos estudiados en el bloque anterior, viendo
cómo se implementan en el C++.

Trataremos de que el tema sea fundamentalmente práctico, por lo que estos


apuntes se deben considerar como una pequeña introducción al lenguaje, no
como una referencia completa.

PARADIGMAS DE PROGRAMACIÓN
Según los conceptos en que se basa un lenguaje de programación tenemos
distintas maneras de aproximarnos a la resolución de los problemas y diferentes
estilos de programación. Podemos clasificar los lenguajes de programación en
varios tipos:
—Imperativos
—Orientados a Objetos
—Funcionales
—Lógicos
Las dos primeras opciones se basan en la abstracción de los tipos de datos.
Básicamente se trata de representar las características variables de los objetos
mediante tipos que el ordenador pueda tratar, como por ejemplo números
enteros o caracteres alfanuméricos. Nuestro programa será una colección de
algoritmos que opere sobre los datos que hemos modelado. La diferencia entre
las dos aproximaciones se verá en puntos posteriores.

Los lenguajes funcionales, al contrario que los imperativos, eliminan totalmente


la idea de tipo de datos, se limitan a tratar todos los datos como símbolos y
hacen hincapié en las operaciones que podemos aplicar sobre estos símbolos,
agrupados en listas o árboles. Es importante indicar que en estos
lenguajes se emplea únicamente el concepto de función aplicado
a símbolos, siendo una de sus características principales el
empleo de las funciones recursivas. Como ejemplo de este tipo
de lenguajes podríamos citar el LISP.

Los lenguajes lógicos son los que trabajan directamente con


la lógica formal, se trata de representar relaciones entre
conjuntos, para luego poder determinar si se verifican
determinados predicados. El lenguaje lógico más
extendido es el Prolog.

PROGRAMACIÓN IMPERATIVA

Como ya hemos mencionado anteriormente, la programación imperativa trata


con tipos de datos y algoritmos, los primeros representan la información
utilizada por los programas, mientras que los segundos se refieren a la manera
en que tratamos esa información.
En los puntos que siguen revisaremos de forma breve los conceptos
fundamentales de la programación imperativa clásica, también llamada
programación procedural. La idea básica de esta aproximación es la de definir
los algoritmos o procedimientos más eficaces para tratar los datos de nuestro
problema.

Tipos de datos

Cuando nos planteamos la resolución de problemas mediante computador lo


más usual es que queramos tratar con datos que son variables y cuantificables,
es decir, que toman un conjunto de valores distintos entre un conjunto de valores
posibles, además de poder almacenar los valores de estos datos en alguna forma
aceptable para el computador (ya sea en la memoria o en periféricos de
almacenamiento externo).

En un lenguaje de programación el concepto de tipo de datos se refiere al


conjunto de valores que puede tomar una variable. Esta idea es similar a la que
se emplea en matemáticas, donde clasificamos las variables en función de
determinadas características, distinguiendo entre números enteros, reales o
complejos. Sin embargo, en matemáticas, nosotros somos capaces de
diferenciar el tipo de las variables en función del contexto, pero para los
compiladores esto resulta mucho más difícil. Por este motivo debemos declarar
explícitamente cada variable como perteneciente a un tipo. Este mecanismo es
útil para que el computador almacene la variable de la forma más adecuada,
además de permitir verificar que tipo de operaciones se pueden realizar con ella.
Se suelen diferenciar los tipos de datos en varias categorías:

— Tipos elementales, que son aquellos cuyos valores son atómicos y, por tanto,
no pueden ser descompuestos en valores más simples. Entre las variables de
estos tipos siempre encontramos definidas una serie de operaciones básicas:
asignación de un valor, copia de valores entre variables y operaciones
relacionales de igualdad o de orden (por lo tanto, un tipo debe ser un conjunto
ordenado).
Los tipos más característicos son

 booleanos= {verdadero, falso}


 enteros {... -2, -1, 0, +1, +2,.}
 reales= {... -1.0, ..., 0.0, ...,+ 1.0, ...}
 caracteres= {... 'a', 'b', ..., 'Z', .}

C++
Existen muchos lenguajes de programación de entre los que se destacan los
siguientes:

1. C
2. C++
3. Basic
4. Ada
5. Java
6. Pascal
7. Python
8. Fortran
9. Smalltalk

Historia de C++
C++ es un lenguaje de programación creado por Bjarne Stroustrup en los
laboratorios de At&T en 1983. Stroustrup tomó como base un lenguaje de
programación popular en aquella época el cual era C.
El C++ es un derivado del mítico lenguaje C, el cual fue creado en la década de
los 70 por la mano del finado Dennis Ritchie para la programación del sistema
operativo Unix [1] (un sistema parecido a Unix es GNU/Linux), el cual surgió
como un lenguaje orientado a la programación de sistemas (System
Programming) y de herramientas (Utilities) recomendado sobre todo para
programadores expertos, y que no llevaba implementadas muchas funciones
[¿cómo cuáles?] que hacen a un lenguaje más comprensible.
Sin embargo, aunque esto en un inicio se puede convertir en un problema, en la
práctica es su mayor virtud, ya que permite al programador un mayor control
sobre lo que está haciendo. Años más tarde, un programador llamado Bjarne
Stroustrup, creo lo que se conoce como C++.
Necesitaba ciertas facilidades de programación, incluidas en otros lenguajes
pero que C no soportaba, al menos directamente, como son las llamadas clases
y objetos, principios usados en la programación actual. Para ello rediseñó C,
ampliando sus posibilidades pero manteniendo su mayor cualidad, la de permitir
al programador en todo momento tener controlado lo que está haciendo,
consiguiendo así una mayor rapidez que no se conseguiría en otros lenguajes.
C++ pretende llevar a C a un nuevo paradigma de clases y objetos con los que
se realiza una comprensión más humana basándose en la construcción de
objetos, con características propias solo de ellos, agrupados en clases. Es decir,
si yo quisiera hacer un programa sobre animales, crearía una clase llamada
animales, en la cual cada animal, por ejemplo un pato, sería un objeto, de tal
manera que se ve el intento de esta forma de programar por ser un fiel reflejo
de cómo los humanos (en teoría) manejamos la realidad[referencia].
Se dice que nuestro cerebro trabaja de forma relacional[referencia]
(relacionando hechos), es por ello que cada vez que recuerdas algo, (cuentas un
hecho), termina siendo diferente (se agregan u omiten partes).

¿Qué es C++?
C++ es un lenguaje de programación
orientado a objetos que toma la base del
lenguaje C y le agrega la capacidad de
abstraer tipos como en Smalltalk.
La intención de su creación fue el
extender al exitoso lenguaje de
programación C con mecanismos que
permitieran la manipulación de objetos.
En ese sentido, desde el punto de vista de
los lenguajes orientados a objetos, el C++
es un lenguaje híbrido [¿por? fusionar
con el siguiente].
Posteriormente se añadieron facilidades de programación genérica, que se sumó
a los otros orientada a objetos). Por esto se suele decir que el C++ es un lenguaje
de programación multiparadigma dos paradigmas que ya estaban admitidos
(programación estructurada y la programación.

El C++ es un lenguaje de programación híbrido, al que se le puede compilar.


Una de las ventajas que ofrece este lenguaje es que es mucho más sencillo de
aprender para los programadores que ya conocen el C.
El C++ mantiene una enorme compatibilidad con el C principalmente por dos
razones: Por la gran cantidad de código C que existe, y para facilitar el paso de
los programadores de C al nuevo lenguaje C++.
Ya hemos dicho anteriormente que el lenguaje C++ es un lenguaje de
programación orientado a objetos, pero no es un lenguaje orientado a objetos
puro. El C++ nació como evolución del C, y desde su creación fue un lenguaje
de programación hecho por programadores con un diseño muy práctico al que
se le fueron añadiendo todos los elementos que se comprobaron eran necesarios
sin tener en cuenta aspectos como su imagen, diseño, etc.
Todo esto ha ocasionado que sus detractores lo usen como argumento de crítica
sobre el C++. Pero por otra parte precisamente esto es esto es lo que le da mayor
valor, el ser un lenguaje más pragmático y sencillo que su antecesor el lenguaje
C.

Elementos básicos en la programación en C++

Entre llaves{}

Las llaves sirven para definir el principio y el final de un bloque de


instrucciones. Se utilizan para los bloques de programación setup(), loop(), if..,
etc.
Una llave de apertura “{“ siempre debe ir seguida de una llave de cierre “}”, si
no es así el compilador dará errores. El entorno de programación de Arduino
incluye una herramienta de gran utilidad para comprobar el total de llaves. Sólo
tienes que hacer click en el punto de inserción de una llave abierta e
inmediatamente se marca el correspondiente cierre de ese bloque (llave
cerrada).

Punto y coma ;

El punto y coma “;” se utiliza para separar instrucciones en el lenguaje de


programación de Arduino. También se utiliza para separar elementos en una
instrucción de tipo “bucle for”.

Nota: Si olvidáis poner fin a una línea con un punto y coma se producirá en un
error de compilación.

Bloque de comentarios /*… */

Los bloques de comentarios, o comentarios multi-línea son áreas de texto


ignorados por el programa que se utilizan para las descripciones del código o
comentarios que ayudan a comprender el programa. Comienzan con / * y
terminan con * / y pueden abarcar varias líneas.

Debido a que los comentarios son ignorados por el compilador y no ocupan


espacio en la memoria de Arduino pueden ser utilizados con generosidad.

Línea de comentarios //

Una línea de comentario empieza con / / y terminan con la siguiente línea de


código. Al igual que los comentarios de bloque, los de línea son ignoradas por
el programa y no ocupan espacio en la memoria.

Una línea de comentario se utiliza a menudo después de una instrucción, para


proporcionar más información acerca de lo que hace esta o para recordarla
más adelante.

Estandarización
En la actualidad se está refinando y ampliando el estándar del C++. En el último
borrador del comité (28 Abril de 1995) se incorporan una serie de mejoras del
lenguaje como la definción de espacios de nombres (asignar un ámbito a los
identificadores para evitar conflictos en las biliotecas) o de operadores de
conversión (casts) mucho más refinados.

Además, la bibloteca de clases está muy ampliada (en realidad sólo hemos visto
la biblioteca de E/S, pero es que no había nada más estandarizado). El borrador
divide la biblioteca en diez componentes:

1. Soporte al lenguaje: declara y define tipos y funciones que son usadas


implicitamente por los programas escritos en C++.

2. Diagnósticos:define componentes que puden ser usados para detectar e


informar de errores.

3. Utilidades generales: componentes usados por otros componentes de la


biblioteca y que también se pueden usar en nuestros programas.

4. Cadenas(strings): Componentes para manipular secuencias de caracteres (los


caracteres pueden ser tipos definidos por el usuario o char y w_char, que es un
nuevo tipo de la biblioteca).

5. Localización: Componentes para soporte internacional, incluye facilidades


para la gestión de formatos de fecha, unidades monetarias, orden de los
caractéres, etc.

6. Contenedores: Componentes que se pueden emplear para manejar


colecciones deinformación.

7. Iteradores: Componentes que los programas pueden emplear para recorrer


contenedores, streams(E/S) y stream buffers (E/S).

8. Algoritmos: Componentes para realizar operaciones algorítmicas sobre


contenedores y otras secuencias.

9. Numéricos: Componentes que se pueden emplear para realizar operaciones


semi-numéricas. Define los complejos, operaciones con matrices y vectores,
etc.

10.E/S: Componentes para realizar tareas de entrada/salida.


De momento parece que no se va a incorporar la E/S gráfica, pero es
relativamente lógico, ya que el diseño de una biblioteca de ese tipo podría
limitar mucho a la hora de aprovechar las capacidades de un SO concreto.

También podría gustarte