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.
Tal como hemos visto hasta ahora, el programa va leyendo y ejecutando las órdenes o sentencias de manera secuencial, es decir una tras otra. Sin embargo, con las estructuras de control se puede hacer que esto no sea así, y que el orden o la forma en que se ejecutan las sentencias cambie.
Sin embargo, lo primero que tenemos que poder hacer es agrupar varias sentencias en un bloque. par tratarlas todas como una unidad, a la que se le aplican unas determinadas ordenes. Para ello utilizaremos las llaves { ... } .
Dentro de las llaves escribiremos todas las sentencias que queramos agrupar, por ejemplo:
{
int a;
cout << "Tu edad : "; cin >> a;
cout << "tienes " << a << " anyos." << endl;
}
Estas sentencias forman un bloque al estar escritas dentro de las llaves.
La propia función int main () { ... } es un bloque, ya que todas las sentencias del programa deben escribirse dentro de las llaves.
La importancia de los bloques es fundamental para crear todo tipo de estructuras en donde queremos que afecten a más de una sentencia. Un bloque actua de manera uniforme ante ordenes que se le den al mismo, como si fuera una única sentencia.
Un estructura cambia el flujo normal de ejecución del programa, de manera que éste no se realice de una manera secuencial. Distinquimos entre las estructuras de control y otro tipo de estructuras como pueden ser las funciones o las clases.
Hay dos tipos de estructuras de control, que son las condicionales y los bucles. A esto se podría añadir un tercer tipo consitente en los saltos de línea, aunque este último es menos utilizado.
Las condicionales consisten en que llegado un punto, el programa deja de ser secuencial, y se bifurca, para elegir una opción entre dos (o entre varias) ignorando el resto, o pudiendo volver a ellas más tarde.
Los bucles consisten en la repetición de determinadas tareas, La repetición no es exacta, en cada repetición hay alguna variable o algun elemento que cambia de manera controlada, así como una condición necesaria para que vuelva a repetirse la tarea. Cuando esta condición deja de existir la repetición se acaba y se sale del bucle.
Los saltos de línea consisten en forzar el salto de punto del programa a otro que no va en orden secuencial. Pueden hacerse saliendo de un bloque de sentencias antes de acabarlo, o saltando de un punto a otro del programa mediante ciertas instrucciones.
Como otro tipo de estructuras hemos nombrado las funciones y las clases, las cuales las estudiaremos en otros temas.
Dentro de las estructuras de control condicionales, la más importante es la estructura if. Esta consiste en que el programador indica una condicion. Esta condición es evaluada como un dato booleano. Si el valor del dato es verdadero la condición se cumple, y por lo tanto, la sentencia, o el bloque que va asociado a la condición, se ejecuta. Si el resultado de la condición es falso, la sentencia o bloque, no se ejecuta.
Es decir, si la condición que hemos puesto se cumple, el programa realiza la acción, y si no es así no la realiza.
La sintaxis que se usa para esta estructura es la siguiente:
if (<condicion>) { <bloque de sentencias> }
Vamos cada uno de los componentes de esta estructura:
Veamos un ejemplo de una estructura condicional con if:
#include<iostream> using namespace std; int main(){ int a; cout << "Escribe un numero mayor que 10 : "; cin >> a; if (a > 10) { cout << "Bien Hecho !! " << endl; cout << "El numero " << a << " es mayor que 10." << endl; } }
Compilamos y ejecutamos el programa. Aquí pedimos al usuario que escriba un número mayor que 10. En la escructura condicional comprobamos que el número que nos ha dado el usuario sea mayor que 10, y sólo en ese caso se ejecutará el código del bloque que está escrito entre llaves.
Observamos cómo se forma la estructura condicional. En primer lugar la palabra clave if. Depués la condición entre paréntesis: (a > 10), y después la sentencia o bloque de sentencias. { cout << "Bien Hecho !! " << endl; cout << "El numero " << a << " es mayor que 10." << endl; }.
Aquí hemos puesto la estructura escrita en varias líneas, separando la condición, y tabulando las sentencias del bloque. Esto, no es imprescindible, ya que pòdríamos ponerlo todo seguido sin saltos de línea ni tabulaciones. por ejemplo:
if (a > 10) { cout << "Bien Hecho !! " << endl; cout << "El numero " << a << " es mayor que 10." << endl; }
Pero para unaa mayor claridad de los programadores, se suele poner siempre de la forma que lo hemos puesto antes:
if (a > 10) { cout << "Bien Hecho !! " << endl; cout << "El numero " << a << " es mayor que 10." << endl; }
En el ejemplo que hemos puesto anteriormente, el programa da una respuesta en el caso de que el usuario escriba bien el número, pero en el caso contrario, el programa no hace nada. Queremos ahora que el programa, en el caso de que el usuario escriba mal el número, se lo diga también al usuario.
Lo primero que se nos ocurre es poner otra escructura if donde en la condición se detecta el número mal escrito, y se lo hace saber al usuario. Por ejemplo:
if (!(a > 10)) { cout << "Número equivocado!! " << endl; cout << "El numero " << a << " NO es mayor que 10." << endl; }
Observa cómo en esta segunda estructura, la condición es la misma que en la primera pero con el operador de negación delante, lo cual hace que si no se cumple la primera condición, se cumplirá la segunda. Aunque esta no es la forma más normal de resolver el problema, puede valernos, ya que si no se cumple una condición se cumplira la otra. El programa ahora quedará así:
#include<iostream> using namespace std; int main(){ int a; cout << "Escribe un numero mayor que 10 : "; cin >> a; if (a > 10) { cout << "Bien Hecho !! " << endl; cout << "El numero " << a << " es mayor que 10." << endl; } if (!(a > 10)) { cout << "Numero equivocado!! " << endl; cout << "El numero " << a << " NO es mayor que 10." << endl; } }
Tras compilar u ejecutar el archivo, vemos que aquí el programa responde al usuario, tanto si el número que escribe es correcto como si no, indicándole si lo ha escrito bien o no.
Tal como hemos dicho antes, aunque esto es una solucíón, no suele ser la más usada, ya que como veremos en la página siguiente, tenemos también mecanismos, para indicar al programa que haga otra acción en el caso de que la condición no se cumpla.
En la siguiente página seguimos con la escructura condicional if, ampliándola para poder optar por más de una condición.
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