Curso de C++ Básico. Programación Orientada a Objetos [Parte 1]


Valeo08

Capullo perro no mucho
Noderador
Nodero
Noder
Aclaraciones:
1. Este "curso", va dirigido a las personas que no hayan programado nunca
o sus conocimientos sobre programación sean muy limitados.
2. Voy a ordenar el curso por puntos, para orientarme mejor.
3. No soy profesor, por lo tanto, el curso no es perfecto, pero hago lo
que puedo. PD: Yo también sigo estudiando programación como una asignatura.
4. Se aceptan sugerencias, todo lo que sea para mejorar, será bien recibido.

=================================================================

------------------------------------------------------------------------------
1. Introducción a los lenguajes de programación
------------------------------------------------------------------------------
(Spoiler: Esta primera parte reconozco que es un poco rollo pero para
entender como funciona la programación y todos los procesos
relacionados es necesario que haga una introducción al tema)


1.1. Conceptos básicos
Dentro de un ordenador se distinguen fácilmente dos partes, el Hardware,
todas las piezas y componentes físicos, y el Sofware, que es el conjunto
de programas y aplicaciones que utiliza el ordenador (y en lo que nos
vamos a centrar).

Un Programa es una lista de operaciones que deben ser ejecutadas por el
hardware. Al conjunto de programas básicos necesarios para que un ordenador
funcione se denomina Sistema Operativo (SO).
Todos los programas son desarrollados mediante un lenguaje de programación,
que son una herramienta que nos permite comunicarnos con el ordenador. Estos
lenguajes se compone de reglas sintácticas, símbolos especiales y palabras
reservadas que tienen un significado especial.


1.2. Paradigmas de Programación
En el paradigma imperativo (esto equivaldría a decir: en la programación
basada en órdenes), las instrucciones se llevan a cabo como
órdenes, como una receta; se calculan valores y se asignan a zonas
de memoria llamadas variables. Algunos ejemplos de este tipo
de lenguajes son: Fortran, C, Modula-2, ADA, Pascal.

En los lenguajes declarativos no hay órdenes por así decirlo, sino
que se describe lo que se quiere hacer. Por ejemplo: LISP, APL y Prolog.


1.3. Clasificación de los lenguajes de programación
Todos los lenguajes se clasifican en niveles dependiendo de a quién
van dirigidos, es decir, quién los va a entender. Estos niveles son:

- Lenguaje máquina, formados por 0 y 1 (binario básicamente),
solo comprendidos por la CPU.

- Lenguajes de bajo nivel, que se acercan al de máquina pero
son entendibles por las personas. Ejemplo: Ensamblador(Assembly).

- Lenguajes de alto nivel, que están dirigidos a las personas. Tienen
sus correspondientes reglas sintácticas y de escritura. Además no son
entendibles directamente por la CPU. Ejemplo: Java, C, C++, Python...


1.4. Traductores
La CPU no entiende los lenguajes de alto nivel, solo distingue 0 y 1,
por ello es necesario usar un traductor.

Un Traductor es un programa que automáticamente traduce cada instrucción
de un programa escrito en un lenguaje de alto nivel y las transforma a
instrucciones en lenguaje máquina. Existen dos tipos de traductores,
los Compiladores y los Intérpretes.

Los Compiladores traducen completamente los programas escritos en un
lenguaje de alto nivel al lenguaje de máquina para posteriormente poder
ser ejecutados. Es necesario distinguir aquí, tres conceptos:

- Programa Fuente: es el programa escrito en un lenguaje de
alto/bajo nivel.

- Programa Objeto: el programa traducido parcialmente al que
solo le falta el código necesario para poder manejar los
dispositivos de entrada/salida.

- Montador: es el programa encargado de convertir el código
objeto en un programa ejecutable directamente por el SO.

Aquí os represento un esquema del proceso de un compilador:

9


Los Intérpretes son traductores que realizan el proceso de
traducción instrucción a instrucción mientras se ejecutan.

El esquema de un intérprete seria así:

10


Los compiladores cuando detectan errores en las sintaxis del
lenguaje que están traduciendo muestran una lista de todos
ellos para que sean corregidos. Sin embargo, los programas
interpretados pueden ejecutarse, siempre y cuando, no encuentren
un error sintáctico dentro del programa fuente.
Los programas compilados pueden ejecutarse si no contienen
errores en la sintaxis, si encuentran al menos uno, no serán
traducidos.


1.5. Programación Orientada a Objetos (POO)
La orientación a objetos es el último paradigma de la programación.
Su idea es la de relacionar, dentro de los programas, los datos con el
código que maneja esos datos.

El concepto abstracto de Objeto se puede relacionar con el concepto de un
objeto de la vida real. Los objetos reales tienen una serie de atributos y
acciones que hacen que se diferencien de otros objetos.

En la POO se distinguen dos conceptos: la Clase y el Objeto.

La Clase es un concepto abstracto utilizado en POO para definir los atributos
y la funcionalidad que tendrán todos los objetos que pertenezcan a esa clase.
Por ejemplo: Si declaramos la clase Vehículo, sus atributos podrían ser
el número de ruedas, el tipo, la marca, el color, el precio, etc. Sus
funciones serían entonces: arrancar, avanzar, retroceder, detener, apagar, girar, etc.

El Objeto es la concreción de un elemento de la clase, es decir, una vez que se
asignado un valor determinado a cada atributo de esa clase, decimos que
tenemos un objeto instanciado de la clase. Por lo tanto no es que tengamos a
la clase en sí, sino a un objeto que tiene sus propios atributos que lo distinguen
de otro aunque sean los dos de una misma clase. Siguiendo con el ejemplo de
la clase anterior, Vehículo, un objeto podría ser: un coche rojo de la marca seat
con 4 ruedas de 15000 euros.


=================================================================

En la siguiente parte, quiero incluir el concepto de algoritmo, las palabras
reservadas de C++, las variables, los tipos de datos, las operaciones básicas,
las funciones, los métodos y alguna cosa más que se me haya podido pasar.
 
Última edición:

Anon

🏴‍☠️
Owner
Staff
Moderador
Paladín de Nodo
Jinete de Nodo
Burgués de Nodo
Noderador
Nodero
Noder
Genial tío, muchas gracias por tu aporte. Te recomiendo que para este tipo de posts tan bien explicados, los guardes en un .txt en tu ordenador para que no se pierda por si pasase algún error con el post en el foro.
 

Thegjv

Moder fav <3
Noderador
Nodero
Noder
Genial tío, muchas gracias por tu aporte. Te recomiendo que para este tipo de posts tan bien explicados, los guardes en un .txt en tu ordenador para que no se pierda por si pasase algún error con el post en el foro.
Al final ha tenido suerte el cabroncete hahahaha
 

qav

No soy el mejor mod, pero soy un excepcional pato
Noderador
Nodero
Noder
Buen post, y bien explicado. Like
 

Anon

🏴‍☠️
Owner
Staff
Moderador
Paladín de Nodo
Jinete de Nodo
Burgués de Nodo
Noderador
Nodero
Noder

destapeman

FUCK PUSSYS, YES BADASS
Moderador
Paladín de Nodo
Jinete de Nodo
Burgués de Nodo
Noderador
Nodero
Noder
Esto hay que mirárselo con calma.
Muy buen trabajo macho, gracias!
 

Dark

🔥root313🔥
Staff
Moderador
Paladín de Nodo
Jinete de Nodo
Burgués de Nodo
Noderador
Nodero
Noder Pro
Noder
Aclaraciones:
1. Este "curso", va dirigido a las personas que no hayan programado nunca
o sus conocimientos sobre programación sean muy limitados.
2. Voy a ordenar el curso por puntos, para orientarme mejor.
3. No soy profesor, por lo tanto, el curso no es perfecto, pero hago lo
que puedo. PD: Yo también sigo estudiando programación como una asignatura.
4. Se aceptan sugerencias, todo lo que sea para mejorar, será bien recibido.

=================================================================

------------------------------------------------------------------------------
1. Introducción a los lenguajes de programación
------------------------------------------------------------------------------
(Spoiler: Esta primera parte reconozco que es un poco rollo pero para
entender como funciona la programación y todos los procesos
relacionados es necesario que haga una introducción al tema)


1.1. Conceptos básicos
Dentro de un ordenador se distinguen fácilmente dos partes, el Hardware,
todas las piezas y componentes físicos, y el Sofware, que es el conjunto
de programas y aplicaciones que utiliza el ordenador (y en lo que nos
vamos a centrar).

Un Programa es una lista de operaciones que deben ser ejecutadas por el
hardware. Al conjunto de programas básicos necesarios para que un ordenador
funcione se denomina Sistema Operativo (SO).
Todos los programas son desarrollados mediante un lenguaje de programación,
que son una herramienta que nos permite comunicarnos con el ordenador. Estos
lenguajes se compone de reglas sintácticas, símbolos especiales y palabras
reservadas que tienen un significado especial.


1.2. Paradigmas de Programación
En el paradigma imperativo (esto equivaldría a decir: en la programación
basada en órdenes), las instrucciones se llevan a cabo como
órdenes, como una receta; se calculan valores y se asignan a zonas
de memoria llamadas variables. Algunos ejemplos de este tipo
de lenguajes son: Fortran, C, Modula-2, ADA, Pascal.

En los lenguajes declarativos no hay órdenes por así decirlo, sino
que se describe lo que se quiere hacer. Por ejemplo: LISP, APL y Prolog.


1.3. Clasificación de los lenguajes de programación
Todos los lenguajes se clasifican en niveles dependiendo de a quién
van dirigidos, es decir, quién los va a entender. Estos niveles son:

- Lenguaje máquina, formados por 0 y 1 (binario básicamente),
solo comprendidos por la CPU.

- Lenguajes de bajo nivel, que se acercan al de máquina pero
son entendibles por las personas. Ejemplo: Ensamblador(Assembly).

- Lenguajes de alto nivel, que están dirigidos a las personas. Tienen
sus correspondientes reglas sintácticas y de escritura. Además no son
entendibles directamente por la CPU. Ejemplo: Java, C, C++, Python...


1.4. Traductores
La CPU no entiende los lenguajes de alto nivel, solo distingue 0 y 1,
por ello es necesario usar un traductor.

Un Traductor es un programa que automáticamente traduce cada instrucción
de un programa escrito en un lenguaje de alto nivel y las transforma a
instrucciones en lenguaje máquina. Existen dos tipos de traductores,
los Compiladores y los Intérpretes.

Los Compiladores traducen completamente los programas escritos en un
lenguaje de alto nivel al lenguaje de máquina para posteriormente poder
ser ejecutados. Es necesario distinguir aquí, tres conceptos:

- Programa Fuente: es el programa escrito en un lenguaje de
alto/bajo nivel.

- Programa Objeto: el programa traducido parcialmente al que
solo le falta el código necesario para poder manejar los
dispositivos de entrada/salida.

- Montador: es el programa encargado de convertir el código
objeto en un programa ejecutable directamente por el SO.

Aquí os represento un esquema del proceso de un compilador:

Ver el archivo adjunto 5584

Los Intérpretes son traductores que realizan el proceso de
traducción instrucción a instrucción mientras se ejecutan.

El esquema de un intérprete seria así:

Ver el archivo adjunto 5585

Los compiladores cuando detectan errores en las sintaxis del
lenguaje que están traduciendo muestran una lista de todos
ellos para que sean corregidos. Sin embargo, los programas
interpretados pueden ejecutarse, siempre y cuando, no encuentren
un error sintáctico dentro del programa fuente.
Los programas compilados pueden ejecutarse si no contienen
errores en la sintaxis, si encuentran al menos uno, no serán
traducidos.


1.5. Programación Orientada a Objetos (POO)
La orientación a objetos es el último paradigma de la programación.
Su idea es la de relacionar, dentro de los programas, los datos con el
código que maneja esos datos.

El concepto abstracto de Objeto se puede relacionar con el concepto de un
objeto de la vida real. Los objetos reales tienen una serie de atributos y
acciones que hacen que se diferencien de otros objetos.

En la POO se distinguen dos conceptos: la Clase y el Objeto.

La Clase es un concepto abstracto utilizado en POO para definir los atributos
y la funcionalidad que tendrán todos los objetos que pertenezcan a esa clase.
Por ejemplo: Si declaramos la clase Vehículo, sus atributos podrían ser
el número de ruedas, el tipo, la marca, el color, el precio, etc. Sus
funciones serían entonces: arrancar, avanzar, retroceder, detener, apagar, girar, etc.

El Objeto es la concreción de un elemento de la clase, es decir, una vez que se
asignado un valor determinado a cada atributo de esa clase, decimos que
tenemos un objeto instanciado de la clase. Por lo tanto no es que tengamos a
la clase en sí, sino a un objeto que tiene sus propios atributos que lo distinguen
de otro aunque sean los dos de una misma clase. Siguiendo con el ejemplo de
la clase anterior, Vehículo, un objeto podría ser: un coche rojo de la marca seat
con 4 ruedas de 15000 euros.


=================================================================

En la siguiente parte, quiero incluir el concepto de algoritmo, las palabras
reservadas de C++, las variables, los tipos de datos, las operaciones básicas,
las funciones, los métodos y alguna cosa más que se me haya podido pasar.
Para cuando segunda parte? @Valeo08