C++

Estructura de C++

Un programa, así como un algoritmo tiene una estructura, son casi idénticos solo que en el programa intervienen librerias, funciones, y otras partes más que en un algoritmo no se pueden llegar a usar por complejidad.
vamos analizando por lineas 😉
ARCHIVO DE CABECERA
Librerias – indica que se tengan en cuenta las funciones y tipos definidos en la librería que se escoja, por ejemplo tenemos:
#include < nombre de fichero >
podemos ver donde dice: ” nombre de fichero ” va como su nombre lo indica un “fichero cabecera” por lo general en c++ usamos iostream que son las siglas iniciales de: [input output stream ].
Cada fichero cabecera sirve para indicarle al programa “que funciones podemos usar”, es decir que al colocarle el iostream, tendremos funciones que se nos permitirá usar c0mo el system(“pause”) para dar una pausa al programa que hemos hecho y observar bien los resultados, entre otras; tambien podemos usar recursos como es el cin ( para que el usuario/a ingrese datos ) y el cout ( para mostrarle datos al usuario/a ).
Entonces quedamos con una cabecera asi:
#include <iostream.h>

CABECERA DE FUNCION – FUNCION PRINCIPAL
Debajo de la cabecera principal del programa, se coloca la “cabecera de funcion”, ésta funcion es obligatoria en cada programa porque indica el comienzo del programa:
main ( )
Y se requiere de los parentesis despues de la palabra restringida “main“

CUERPO – DESARROLLO
Después de colocar main ( ) es decir nuestro indicador que comienza el programa, ya podemos comenzar con la programación, ya que la programación va en el cuerpo del programa, se debe indicar cual es el cuerpo, osea los limites. En un programa los limites son marcados por el símbolo “ las llaves “, es decir { }
{
. . . .
. . . . . . .
}
Por ultimo tenemos las sentencias, es decir nuestra programacion, lo que vayamos realizando en el cuerpo del programa, lo que va a hacer el programa al compilarlo y ejecutarlo. Todo eso va a ir en el cuerpo es decir DENTRO de los limites que establecimos ( las llaves principales del programa )
Al final tenemos que, la estructura de un programa en c++ es así:

ESTRUCTURA
#include <iostream.h>
main ( )
{
. . . .
. . . . . . .
}

Tipos de Datos

C++ tiene los siguientes tipos fundamentales:
  • Caracteres: char (también es un entero), wchar_t
  • Enteros: shortintlonglong long
  • Números en coma flotante: floatdoublelong double
  • Booleanos: bool
  • Vacío: void

Estructuras Repetitivas

Las estructuras repetitivas nos servirán para repetir un bloque de instrucciones dada una condición. Existen 3 estructuras de control: while (mientras), do – while (hacer – mientras) y for(para).

  • Estructura While:

esquema_while
El bloque de instrucciones se realizará mientras la expresión lógica sea verdadera. Es una estructura pre-condición, pues, para que se realice por primera vez el bloque de instrucciones, la expresión lógica debe ser verdadera.

ejemplo_while
El programa nos mostrará la tabla de multiplicar de un número por consola. Usamos un contador como multiplicador y aumentamos el valor del contador en 1 hasta que llegue a 10.

RECUERDA: var++ es lo mismo que poner : var = var + 1.
  • Estructura Do – While:

esquema_do_while
El bloque de instrucciones se realizará mientras la condición se cumpla. Es una estructura post-condición,pues, la expresión lógica se comprobará después de haber realizar por primera vez el bloque de instrucciones. En pocas palabras, siempre se realizará el bloque de instrucciones por lo menos una vez.

ejemplo_do_while
El mismo ejemplo anterior, salvo que en vez de usar la estructura while, usamos la do-while.

En este ejemplo podremos ver el hecho de que una de estas estructuras sea pre-condición y el otro post-condición:

post_pre_condicion
Se pone en condición que ambos bloque de instrucciones se repetirán mientras la variable x ( que tiene de valor 10 ) sea diferente de 10. En ningún caso esta condición cumple, pero solo entra al bloque do-while pues la condición es comprobada después.

OJO: Nota que la estructura do-while termina con un punto y coma al final de la expresión lógica.
  • Estructura For:

esquema_for
Es la estructura más compleja de todas pues se divide en 3 secciones ( separadas por punto y coma).
La inicialización, es donde podemos inicializar una variable que fue declarada fuera del for, que se utilizará cómo contador, o, podemos declarar e inicializar en esa misma sección una variable nueva que será usada como contador.
Máximo o mínimo, es la condición que se debe cumplir para que el ciclo for se siga cumpliendo. Normalmente es poniendo un límite al valor que puede alcanzar el contador.
Incremento o decremento, indica cómo ira aumentando o disminuyendo el contador. Hay que tener cuidado de no cometer errores al indicar si el valor aumentará o disminuirá. Por ejemplo si indicamos que el contador inicie en 10 y mínimo valor será 1, y nosotros por error indicamos que el contador aumente su valor en vez de disminuir, el ciclo entrará en un bucle infinito y nunca terminará.
Veamos un ejemplo:

ejemplo_for
De nuevo el mismo ejemplo. En este caso estamos declarando el contador cont dentro del mismo for e inicializandolo en 1.

Seguramente te preguntarás ¿Por qué el mismo ejemplo de la tabla de multiplicar?. En los 3 ejemplos se trata de que el programa te halle la tabla de multiplicar con un número, pero se usan estructuras repetitivas diferentes. Esto es para entender un punto muy importante que las 3 estructuras cumplen la misma función, por lo tanto, podemos realizar lo mismo con cualquiera de las 3 estructuras. Sin embargo con algunas nos será más fácil realizar algunas cosas que con las demás estructuras.

Estructuras Condicionales

  • IF: Los condicionales if, son una estructura de control condicional, que nos permiten tomar cierta decisión al interior de nuestro algoritmo, es decir, nos permiten determinar que acciones tomar dada condición, por ejemplo determinar si un numero cualquiera es mayor que 10 y de acuerdo a esto mostrar un mensaje. En resumen, un condicional if es una estructura que nos posibilita definir las acciones a ejecutar si se cumple cierta condición. Para comprender mejor cómo funciona el condicional if, una muy buena forma es partiendo de un ejemplo. Supongamos que queremos verificar si el resultado de una suma ingresada por el usuario es correcto o no. Para este ejemplo, el condicional if, es el encargado de verificar si el resultado ingresado corresponde o no a la respuesta correcta de la suma. El condicional if, funciona verificando la condición ingresada y de acuerdo a su valor de verdad (falso o verdadero) lleva a cabo o no una serie de instrucciones.
La sintaxis de un condicional if, es bastante simple e incluso creo que intuitiva. Vamos entonces a ver rápidamente como es la estructura para ir luego a unos ejemplos y quedar bien claros. Veamos:
 
if(condición a evaluar) //Por ejemplo X <= 10
{
  ....
  ....
 Bloque de Instrucciones si se cumple la condición....
  ....
  ....
}
....
Bloque de Instrucciones restante DEL ALGORITMO....
....
 
Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar claros. Posteriormente veremos un ejemplo con valores reales.

Línea 1:

En esta línea está prácticamente todo lo esencial del condicional, aquí le hemos dicho al interior del argumento del condicional if, cual es la condición que se debe cumplir para que se ejecute el primer bloque de instrucciones, esta línea es en efecto esencial ya que nos da la pauta para que el algoritmo determine si ejecutará o no el bloque de instrucciones al interior de las llaves.

Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual como seguramente ya sabrás indica que allí comienza el bloque de instrucciones que se ejecutarán si se cumple la condición dada. Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se ejecutara dentro de nuestro ciclo la primera línea inmediatamente posterior a la declaración del condicional, de modo que si deseamos que se ejecuten varias líneas dentro de nuestro condicional, debemos usar las llaves

Línea 3 a 7:

En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo en caso de cumplirse la condición, este bloque podrá tener la cantidad de líneas necesarias incluso, como veremos más adelante dentro de estas podría haber uno o más condicionales en su interior, así que podrías tener lo que se conoce como condicionales anidados (ya veremos eso más adelante).

Línea 8:

En esta línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya sabrás esta nos indica que allí termina el bloque del condicional y se dará por terminada la ejecución de este para continuar ejecutando el resto del programa.

Línea 9 a 11

Estas líneas contienen la estructura restante del algoritmo, quise ponerlas allí, para que quede claro que sin importar si la condición se cumple o no, el algoritmo siempre va a ejecutar estas líneas, es decir las líneas que se encuentran después de la llave de cierre de un condicional, siempre se ejecutarán sin importar si la condición se cumpla o no.

  • IF-ELSE: Los condicionales if-else, son una estructura de control, que nos permiten tomar cierta decisión al interior de nuestro algoritmo, es decir, nos permiten determinar que acciones tomar dada o no cierta condición, por ejemplo determinar si la contraseña ingresada por el usuario es válida o no y de acuerdo a esto darle acceso al sistema o mostrar un mensaje de error. En resumen, un condicional if-else es una estructura que nos posibilita definir las acciones que se deben llevar a cabo si se cumple cierta condición y también determinar las acciones que se deben ejecutar en caso de que no se cumpla.


La sintaxis de un condicional if-else, es en principio similar a la del condicional if, pero adicionando una nueva "estructura" que es el else, el cual indica la acción o conjunto de acciones a llevar a cabo, en caso de que la condición del if no se cumpla. Cabe resaltar que el else siempre se pone inmediatamente después del if, en caso de ser necesario, el else es incapaz de funcionar por sí solo, siempre debe ir acompañado por un if. Veamos entonces como es la sintaxis de este:
 
if(condición a evaluar) //Por ejemplo 50 <= 10
{
  ....
  ....
 Bloque de Instrucciones si se cumple la condición....
  ....
  ....
}
else
{
  ....
  ....
 Bloque de Instrucciones si NO se cumple la condición....
  ....
  ....
}
 
Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar claros. Posteriormente veremos un ejemplo con valores reales.

Línea 1:

En esta línea está prácticamente todo lo esencial del condicional, aquí le hemos dicho al interior del argumento del condicional if, cual es la condición que se debe cumplir para que se ejecute el primer bloque de instrucciones, esta línea es en efecto esencial ya que nos da la pauta para que el algoritmo determine que bloque de instrucciones ejecutar.

Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual como seguramente ya sabrás indica que allí comienza el bloque de instrucciones que se ejecutarán si se cumple la condición dada. Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se ejecutará dentro de nuestro condicional la primera línea inmediatamente posterior a la declaración del condicional, de modo que si deseamos que se ejecuten varias líneas dentro de nuestro condicional, debemos usar las llaves

Línea 3 a 7:

En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo en caso de cumplirse la condición, este bloque podrá tener la cantidad de líneas necesarias incluso, como veremos más adelante dentro de estas podría haber uno o más condicionales en su interior, así que podrías tener todo un condicional dentro de un condicional dentro de otro condiconal... y así sucesivamente jejeje.

Línea 8:

En esta última línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya sabrás esta nos indica que allí termina el bloque del condicional y se dará por terminada la ejecución de este para continuar ejecutando el resto del programa, cabe notar que esta línea dará paso a la ejecución del bloque de instrucciones del else, en caso de que la condición dada no se haya cumplido.

Línea 9 a 16

Estas líneas contienen la estructura else, que es la que indica que existe un bloque de instrucciones que se debe ejecutar en caso de que la condición dada no se cumpla. Este bloque al igual que el del condicional if, se abre y se cierra con llaves, recuerda que estas pueden ser opcionales, sin embargo siempre recomiendo usarlas como una buena práctica de programación.
No te preocupes si no comprendiste muy bien lo que acabo de escribir, estoy seguro que con un par de ejemplos que veremos a continuación, te va a quedar todo claro

  • SWITCH: Los condicionales Switch, son una estructura de control condicional, que permite definir múltiples casos que puede llegar a cumplir una variable cualquiera, y qué acción tomar en cualquiera de estas situaciones, incluso es posible determinar qué acción llevar a cabo en caso de no cumplir ninguna de las condiciones dadas.

La mejor forma de entender el funcionamiento de algo, es viendo un ejemplo de esto, de este modo, me parece que para comprender de forma adecuada como funciona un condicional Switch, es bueno hacerlo poniendo un ejemplo. Imaginemos entonces que nuestro programa consta de un menú de opciones digamos 3 opciones, cada una representada con un número correspondiente, es decir la opción uno corresponde al número 1, la dos al 2 y así sucesivamente, queremos entonces que de acuerdo a un número ingresado por el usuario ejecutemos una acción correspondiente y en caso de que no corresponda a ninguna de las posibles opciones, mostrar un mensaje de error cualquiera. De este modo, podemos identificar 3 casos distintos para nuestro switch o en otras palabras, hemos identificado tres condiciones posibles que puede llegar a cumplir nuestra variable: el caso uno corresponde a que el valor ingresado por el usuario sea el 1, es decir ejecutar la opción 1, el caso 2 el número 2, etc. adicionalmente hemos encontrado la opción que se ejecutará por defecto en caso de no suceder ninguno de estos casos, es decir si el usuario ingresa por ejemplo 10, mostraremos un mensaje de error cualquiera.
Espero que haya sido un tanto claro con esto, si no es así, recuerda que puedes preguntar en la sección de comentarios y con gusto te voy a responder o incluso modificar esta sección para responder tu cuestión, de igual forma, vamos a ver ya mismo unos ejemplos para entender mucho mejor de lo que he estado hablando.

La sintaxis de un condicional Switch es bastante distinta a la de un condicional típico, sin embargo es bastante intuitiva y fácil de comprender, es solo cuestión de acostumbrarse. Veamos a continuación la estructura general de un condicional Switch y luego unos cuantos ejemplos.
 
switch(opción) //donde opción es la variable a comparar
{
 case valor1: //Bloque de instrucciones 1;
 break;
 case valor2: //Bloque de instrucciones 2;
 break;
 case valor3: //Bloque de instrucciones 3;
 break;
 //Nótese que valor 1 2 y 3 son los valores que puede tomar la opción
 //la instrucción break es necesaria, para no ejecutar todos los casos.
 default: //Bloque de instrucciones por defecto;
 //default, es el bloque que se ejecuta en caso de que no se de ningún caso
}
 
Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar claros. Posteriormente veremos un ejemplo con valores reales.

Línea 1:

Aquí, tenemos la declaración del condicional switch, estamos diciendo que lo que viene a continuación es esto, entre los paréntesis, el switch recibe la variable que vamos a usar para comparar en cada uno de los casos.

Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual como hemos visto en secciones anteriores, indica que allí comienzan los bloques de instrucciones que se ejecutarán para cada caso.

Línea 3:

En esta línea tenemos una parte vital del condicional switch, aquí tenemos definido un caso posible que puede cumplir nuestra variable, la sintaxis es simple, usamos la instrucción "case" para indicar que allí comienza un caso, luego indicamos el valor que puede tomar la variable, puede ser un numero, una cadena de caracteres o lo que necesitemos, de esto se siguen dos puntos ":" y después de estos ponemos la o las instrucciones a ejecutar para este caso, como ejemplo, podríamos tener algo como esto : case "Hola": cout << "Usted ha escrito Hola";.

Línea 4:

Esta línea contiene la instrucción break, es una instrucción simple, pero fundamental al interior del condicional Switch, esta instrucción indica que hasta allí va el bloque de instrucciones del caso inmediatamente anterior a este, de este modo evitamos que el algoritmo ejecute los demás casos, a modo de ejercicio, podrías intentar ejecutar el código del ejemplo que veremos más adelante y quitar las instrucciones break, con esto podrás comprobar que si el usuario ingresa por ejemplo un 1, se ejecutarán todos los casos, es por esto que el break es fundamental.

Línea 5 a 8

Estas líneas contienen una repetición de las instrucciones de las líneas 3 y 4, evidentemente cada una contiene un caso distinto, ten en cuenta que se pueden definir todos los casos que sean necesarios al interior del switch.

Líneas 9, 10 y 12

Estas líneas como deberías saber ya, contienen diferentes comentarios aclarativos sobre el código, en caso de que no comprendas adecuadamente estas líneas, te recomiendo visitar la sección de comentarios.

Línea 11

Esta línea cambia un poco con respecto a las anteriores, sin embargo conserva la misma esencia, en vez de poner el comando "case", usamos el comando "default", y luego los 2 puntos ":", notemos que no se pone ningún valor a evaluar, pues esta es la acción que se ejecuta en caso de que no lleguemos a entrar en ninguno de los casos.

Línea 13:

En esta línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya sabrás esta nos indica que allí termina el bloque del condicional y se dará por terminada la ejecución de este para continuar ejecutando el resto del programa.
No te preocupes si no comprendiste muy bien lo que acabo de escribir, estoy seguro que con un par de ejemplos que veremos a continuación, te va a quedar todo claro

Funciones:

Declaración

Declaración de variables en un programa C y C++ 
Para tener una variable en un programa, previamente hay que definirla con un tipo y un identificador (es decir, un nombre para la variable).
Por ejemplo:
int numero
define una variable de tipo entero que se llama numero.
Y seguidamente hay que añadir un punto y coma a la expresión:
int numero;
El punto y coma transforma la expresión en una instrucción que se ejecutará en el programa. Cuando se llegue a ella, el programa reservará espacio de memoria según el tipo de variable para poder escribir y leer valores.
Por lo tanto, la fórmula general es:
<tipo> <identificador> <;>
Es lo que llamamos una declaración de variable. En C y C++ todas las variables se deben declarar antes de su uso. Si no, se producirá un error de compilación.
A continuación se muestra un programa completo que funciona: solo declara variables de tipos distintos:
int main()
{
char caracter;
short valor;
int numero;
long numeroMasLargo;
float numeroRealFloat;
double numeroRealDoble;
// fin
return 0;
}
Invocación
Las invocación de funciones se realiza colocando el nombre de la función y los argumentos actuales en el mismo orden que los parámetros formales correspondientes. Ejemplo:

void funcion (int x, char c);
...
int z = 12;
char ch = 'Z';
funcion(ch, z);   // Error: orden de argumentos cambiado !!
funcion(z, ch);   // Ok: invocación con orden correcto

Recordemos que la sintaxis del lenguaje permite también la invocación de funciones a través de punteros a funciones  e incluso de referencias, aunque esto último sea menos frecuente.
Cuando las funciones son miembros de clases la invocación sigue una sintaxis especial. En estos casos incluso existen operadores especiales para invocarlas a través de sus punteros.

Implementación

Comments

Popular posts from this blog

COBOL

PASCAL

PHP