programación en C++ desde cero.
y entérate de las novedades o deja un comentario.
Ültima modificación: 13-07-2018.
Visitas este mes: 1
Visitas el mes pasado:
Mi agradecimiento a los siguientes sitios en los que me he basado para la elaboración de los manuales.:
En los distintos manuales incluimosm más webgrafía especifica de cada sección.
Si este sitio te parece interesante puedes contribuir con una pequeña aportación.
Podemos incluir unas estructuras de control dentro de otras, de manera que se crean estructuras más complejas, veamos los casos que se pueden dar:
Aunque básicamente estos son los casos que podemos tener, las estrucutras pueden ser más complejas ya que podemos anidar las estructuras unas dentro de otras todas las veces que queramos llegando a los niveles de profundidad que sean necesarios.
Cada condicional es una bifurcación que hace que el programa vaya por un sitio o por otro, de esta manera podemos hacer que dependiendo de lo que se elija, el programa vaya hacia un sitio o hacia otro. Veamos un pequeño ejemplo:
#include<iostream> using namespace std; int main() { cout << "Contesta si (s) o no (n)." << endl; char c; cout << "Has nacido en primavera o en verano? " ;cin >> c; if (c=='s' or c=='S') { cout << "has nacido en primavera? "; cin >> c; if (c=='s' or c=='S') { cout << "Puedes ser Aries, Tauro o Geminis." << endl; } else { cout << "Puedes ser Cancer, Leo o Virgo." << endl; } } else { cout << "has nacido en otonyo? "; cin >> c; if (c=='s' or c=='S') { cout << "Puedes ser Libra, Escorpo o Sagitario." << endl; } else { cout << "Puedes ser Capricornio, Acuario o Piscis." << endl; } } }
En este ejemplo la segunda pregunta que se le hace al usuario está condicionada por lo que responde en la primera. Podríamos hacer una tercera pregunta o una cuarta condicionadas cada una de ellas por lo que hayan respondido en la anterior, de manera que hacemos un sistema complejo de ramificaciones.
Al poner una escructura condicional dentro de un bucle, se puede hacer que en ciertas repeticiones del bucle el programa haga cosas diferentes de el resto de repeticiones. En el siguiente ejemplo el programa escribe un abecedario en el que alternamos dos letras escritas en minusculas con la siguiente en mayúsculas.
#include<iostream> using namespace std; int main() { char c; for (int i=97;i<=122;i++) { if (i%3==0) { c=char(i-32); cout << c << ", "; } else { c=char(i); cout << c << ", "; } } cout << endl; }
El resultado tras compilar y ejecutar el archivo es el que vemos aquí a la derecha. Se escribe el abecedario, pero una de cada tres letras está en mayúsculas.
Vemos que hemos utilizado un condicional "if", dentro del bucle. Recordemos que en el código ASCII, el abecedario en minúsculas va desde los números 97 (a) al 122 (z), es por eso que empleamos estos números en la inicialización y condición del bucle.
En código ASCII el abecedario en mayúsculas empieza en el número 65 (A), es por eso que en el condicional 1f restamos 32 (97-65=32), para buscar la letra mayúscula. Observa cómo hemos usado la operación módulo para que una de cada tres letras sea mayuscula.
#include<iostream> using namespace std; int main() { char c; cout << "Pulsa S para mayusculas o N para minusculas : "; cin >> c; if (c=='s' or c=='S') { for (int i=65; i<=90; i++) { cout << char(i) << ", "; } } else if (c=='N' or c=='n') { for (int i=97; i<=122; i++) { cout << char(i) << ", "; } } else { cout << "No has escrito ni S ni N."; } cout << endl; }
Al compilar y ejecutar este archivo, éste pide al usuario que escriba "S" o "N", dependiendo de lo que haga escribirá un hbucle u otro, y además si en lugar de estas letras, escribe otra le avisa de que no es correcto y no ejecuta ningún bucle.
Por lo tanto la ejecución del bucle depende del resultado de la condicional.
Al hacer un bucle dentro de otro creamos una escructura de tabla, con sus filas y columnas. En este caso el bucle de fuera hace las veces de filas de la tabla, mientras que el bucle de dentro marca el número de columnas y va rellenando las celdas de la tabla.
En el siguiente ejemplo escribiremos los números del 1 al 100 en 10 filas de 10 números en cada una, como si fuera una tabla.
#include<iostream> using namespace std; int main() { int n=1; for (int i=0; i<10; i++){ for (int j=0; j<10; j++){ cout << n << " , "; n++; } cout << endl << endl; } }
Tras compilar y ejecutr el archivo obrenemos el resultado, en el cual tenemos diez filas, y en cada una de ellas 10 números.
Cada una de las filas se corresponde con una repetición del bucle principal. Cada una de estas repeticiones consiste en recorrer el bucle secundario que escribe 10 números, al salir de este bucle hacemos el salto de línea, de manera que la siguiente repetición vuelve a escribir 10 números en la siguiente fila.
De esta manera se crea una estructura de tabla, en este caso de 10 filas por 10 columnas.
Se pueden anidar estructuras tanto condicionales comom de bucle unas dentro de otras en varios niveles, de manera que se creen estructuras más complejas quem puedan solucionar porblemas de programación más complicados.
En el siguiente tema trataremos otro tipo de esctructuras:
Sugerencias:
aprendeweb@aprende-web.net. Envia un
Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog
Más sobre anyelguti en http://anyelguti.16mb.com