Вы находитесь на странице: 1из 23

Lenguaje de programacin C++ Estructuras de control

Cada funcin de los programas que se han desarrollado, era un conjunto de sentencias que se ejecutaban en el orden que se haban escrito, entendiendo por sentencia una secuencia de expresiones que especifican una o varias operaciones. Pero esto no es siempre as; seguro que en algn momento nos ha surgido la necesidad de ejecutar un conjunto de sentencias un nmero determinado de veces o hasta que se cumpla una condicin impuesta por nosotros.

Sentencia if
La sentencia if permite a un programa tomar una decisin para ejecutar una accin u otra, basndose en el resultado verdadero o falso de una expresin. La sintaxis para utilizar esta sentencia es la siguiente: Estructura selectiva simple Evala una condicin, si es verdadero ejecuta una determinada instruccin o instrucciones:

Para una instruccin if (condicin) sentencia 1;

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal

Ejemplo
#include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int x=2; if (x) //Si x es !=0 cout<<"\n"<<x<<"\n"; system("pause"); return 0;
}

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal

// Dados dos nmeros enteros diferentes determinar cul es el mayor #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { //Variables int n1,n2,m=0; //Entrada cout<<"Numero 1: "; cin>>n1; cout<<"Numero 2: "; cin>>n2; //Proceso if(n1 > n2) m = n1; if(n2 > n1) m = n2; //Salida cout<<"\n"; cout<<"Mayor: "<<m<<"\n"; system ("pause"); return 0; }

Para varias instrucciones if (condicin) { sentencia 1; sentencia n; }


Lenguaje de Programacin C++ Ing. Ana Lenny Hospinal

Ejemplo #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int x=2, a=8, b; if (x) { b=a/x; cout<<"\n"<<b<<"\n"; } system("pause"); return 0;
}

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal

// Determinar si un nmero entero es positivo, negativo o neutro. #include "stdafx.h" #include <iostream> #include <string> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { //Variables int n; string r; //Entrada cout<<"Numero: "; cin>>n; //Proceso if(n > 0) { r = "POSITIVO"; } if(n < 0) { r = "NEGATIVO"; } if(n == 0) { r = "NEUTRO"; } //Salida cout<<"\n"; cout<<"Resultado: "<<r<<"\n"; system ("pause"); return 0; }
Lenguaje de Programacin C++ Ing. Ana Lenny Hospinal

Al principio se ha aadido una nueva lnea, #include <string>. En este programa tenemos una variable, r de tipo string. Las variables de tipo string guardan cadenas de texto. Siempre que utilicemos variables de tipo string es conveniente aadir #include <string>. Estructura selectiva doble Evala una condicin si es verdadero ejecuta una o varias instrucciones y si es falso ejecuta otro grupo de instrucciones. Nota: Si el resultado de la evaluacin de la condicin es falso, y la clusula else se ha omitido, la sentencia 1 se ignora.

If (condicin) { sentencia1; sentencia n; } else { sentencia 1; sentencia n; }

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal

Ejemplo:
// Determinar si un nmero es mltiplo de 3 y 5. #include "stdafx.h" #include <iostream> #include <string> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { //Variables int n; string r; //Entrada cout<<"Numero: "; cin>>n; //Proceso if(n % 3 == 0 && n % 5 == 0) { r = "SI ES MULTIPLO DE 3 Y 5"; } else { r = "NO ES MULTIPLO DE 3 Y 5"; } //Salida cout<<"\n"; cout<<"Resultado: "<<r<<"\n"; system ("pause"); return 0; }

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal

Estructuras anidadas Las sentencias if ... else pueden estar anidadas. Segn el formato general de la sentencia if. Es decir que como sentencia 1 o sentencia 2 se puede escribir otra sentencia if.

if (condicin 1) { f (condicin 2) sentencia 1; } else sentencia 2;

Ejercicio: Dado tres nmeros enteros mostrar el nmero mayor.


Lenguaje de Programacin C++ Ing. Ana Lenny Hospinal

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal

Ejemplo
// Dado tres nmeros enteros devolver el nmero mayor #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { //Variables int n1,n2,n3,m; //Entrada cout<<"Numero 1: "; cin>>n1; cout<<"Numero 2: "; cin>>n2; cout<<"Numero 3: "; cin>>n3; //Proceso if(n1 > n2) { if(n1 > n3) { m = n1; } else { m = n3; } } else { if(n2 > n3) { m = n2; } else { m = n3; } }

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal

//Salida cout<<"\n"; cout<<"Mayor: "<<m<<"\n"; system("pause"); return 0; }

Estructura Else If A continuacin se presenta una estructura que aparece con bastante frecuencia y es por lo que se le da un tratamiento por separado. Esta estructura es consecuencia de las sentencias if anidadas. Su formato general es:

if (condjcin 1) sentencia 1; else if (condicin 2) sentencia 2; else if (condicin 3) sentencia 3; : : else sentencia n
Evaluacin de la estructura: Si se cumple la condicin 1, se ejecuta la sentencia 1 y si no se cumple se examinan secuencialmente las condiciones siguientes hasta el ltimo else, ejecutndose la sentencia correspondiente al primer else if, cuya condicin sea cierta. Si todas las condiciones son falsas, se ejecuta la sentencia n correspondiente al ltimo else. En cualquier caso, se contina en la primera sentencia ejecutable que haya a continuacin de la estructura. Las sentencias 1,2,..., n pueden ser sentencias simples o compuestas.
Lenguaje de Programacin C++ Ing. Ana Lenny Hospinal

Ejemplo:
Dada la nota promedio de un alumno, obtener la categora segn la siguiente tabla:

Promedio Entre 0 y 5 Entre 6 y 10 Entre 11 y 14 Entre 15 y 17 Entre 18 y 20

Categora Psimo Malo Regular Bueno Excelente

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal

// Evala el promedio #include "stdafx.h" #include <iostream> #include <string> using namespace std;

int _tmain(int argc, _TCHAR* argv[]) { //Variables int p; string c = ""; //Entrada cout<<"Promedio: "; cin>>p; //Proceso if(p >= 0 && p <= 5) { c = "PESIMO"; } else if(p >= 6 && p <= 10) { c = "MALO"; } else if(p >= 11 && p <= 14) { c = "REGULAR"; } else if(p >= 15 && p <= 17) { c = "BUENO"; } else if(p >= 18 && p <= 20) { c = "EXCELENTE"; }
Lenguaje de Programacin C++ Ing. Ana Lenny Hospinal

//Salida cout<<"\n"; cout<<"Categoria: "<<c<<"\n"; system ("pause"); return 0; }

Sentencia Switch La sentencia switch permite ejecutar una de varias acciones, en funcin del valor de una expresin. Es decir permite comparar un valor con diversas alternativas, si la comparacin tiene xito se ejecuta el grupo de instruccin que contenga la alternativa seleccionada y luego sale de la estructura. Es una sentencia especial para decisiones mltiples. La sintaxis para utilizar esta sentencia es:

switch (expresin) { declaraciones case expresin constante 1: sentencia1; break; case expresin constante 2: sentencia2; break; : : default. sentencia n; }

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal

Donde: expresin es una expresin entera y expresin-constante es una constante entera, una constante de un solo carcter o una expresin constante, en cuyo caso, el valor resultante tiene que ser entero. Por ltimo, sentencia es una sentencia simple o compuesta. La sentencia switch evala la expresin entre parntesis y compara su valor con las constantes de cada case. La ejecucin de las sentencias del bloque de la sentencia switch, comienza en el case cuya constante coincida con el valor de la expresin y contina hasta el final del bloque o hasta una sentencia que transfiera el control fuera del bloque de switch; por ejemplo, break o return. La sentencia switch puede incluir cualquier nmero de clusulas case. Si no existe una constante igual al valor dela expresin, entonces se ejecutan las sentencias que estn a continuacin de default, si esta clusula ha sido especificada. La clusula default puede colocarse en cualquier parte del bloque y no necesariamente al final. Igual que en cualquier otro bloque, en el bloque de la sentencia switch es posible hacer declaraciones al principio. No obstante, las inicializaciones si las hubiere, son ignoradas.

Ejemplo
Al ingresar un nmero entre 1 y 4 devolver la estacin del ao de acuerdo a la siguiente tabla:

Nmero 1 2 3 4

Estacin Verano Otoo Invierno Primavera

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal

// Ingresar un nmero entre 1 y 4, devolver la estacin del ao // #include "stdafx.h" #include <iostream> #include <string> using namespace std;

int _tmain(int argc, _TCHAR* argv[]) { //Variables int n; string e = ""; //Entrada cout<<"Numero: "; cin>>n;

//Proceso switch(n) { case 1: e = "VERANO"; break; case 2: e = "OTOO"; break; case 3: e = "INVIERNO"; break; case 4: e = "PRIMAVERA"; break; }
Lenguaje de Programacin C++ Ing. Ana Lenny Hospinal

//Salida cout<<"\n"; cout<<"Estacion: "<<e<<"\n"; system ("pause"); return 0; }

Ejemplo
1. Al ingresar el nmero de un mes , devolver la estacin del ao de acuerdo a: Mes 1,2,3 4,5,6 7,8,9 10,11,12 Estacin Verano Otoo Invierno Primavera

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal

// scontrol5.cpp: define el punto de entrada de la aplicacin de consola. // #include "stdafx.h" #include <iostream> #include <string> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { //Variables int m; string e = ""; //Entrada cout<<"Mes: "; cin>>m; //Proceso switch(m){ case 1: case 2: case 3: e = "VERANO"; break; case 4: case 5: case 6: e = "OTOO"; break; case 7: case 8: case 9: e = "INVIERNO"; break; case 10: case 11: case 12: e = "PRIMAVERA";
Lenguaje de Programacin C++ Ing. Ana Lenny Hospinal

break; } //Salida cout<<"\n"; cout<<"Estacion: "<<e<<"\n"; system ("pause"); return 0; }

Sentencias de Salto Sentencia break La sentencia break finaliza la ejecucin de una sentencia switch, while, do, o for, en la cual aparece.

Su sintaxis es: break;


Cuando las sentencias switch, while, do, o for estn anidadas, la sentencia break solamente finaliza la ejecucin de la sentencia switch. while. do, o for donde est incluida.

Sentencia continue: La sentencia continue obliga a ejecutar la siguiente iteracin en el bucle correspondiente a la sentencia while, do, o for, en el que est contenida.

Su sintaxis es: continue;


Lenguaje de Programacin C++ Ing. Ana Lenny Hospinal

Sentencia return El resultado de una funcin es devuelto a la sentencia de llamada, por medio de la sentencia: return [ (] expresin[)] El tipo del resultado especifica qu tipo de datos retorna la funcin. Este, puede ser cualquier tipo fundamental, o tipo definido por el usuario, pero no puede ser un array o una funcin. si no se especifica, se supone que es int. Esta sentencia puede ser o no la ltima y puede aparecer ms de una vez en el cuerpo de la funcin. En el caso de que la funcin no retorne un valor, se puede omitir o especificar simplemente return.

Ejercicios:

2. 3. 4. 5.

Dado un caracter determinar si es una vocal. Determinar si un nmero entero es par o impar Dado 3 nmeros devolver los nmeros en orden ascendente. Debido a los excelentes resultados, la ferretera decide ampliar sus ofertas de acuerdo a la siguiente escala de compra. Compras (s/.) Descuento (%) Hasta 100 10 Mayor a 100 20 Mayor a 200 30

6. Dados los siguientes datos de entrada: Saldo anterior, Tipo de Movimiento R (retiro), D (Depsito) y Monto de la transaccin, obtener como dato de salida el Saldo actual. 7. Dado un nmero entero de un digito (0 al 9), devolver el nmero en letras.

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal

8. Al ingresar el da y el nmero de un mes devolver la estacin de un ao de acuerdo a la siguiente tabla. Estacin Tiempo Verano Del 21 de Diciembre al 20 de Marzo Otoo Del 21 de Marzo al 21 de junio Invierno Del 22 de junio al 22 de setiembre Primavera Del 23 de setiembre al 20 de diciembre 9. Se ha establecido el siguiente puntaje de ingreso a su respectiva facultad. Facultad Puntaje mnimo Civil 100 Electrnica 90 Industrial 80 Administracin 70 De acuerdo al puntaje obtenido determinar la Facultad a la que ingres o dar un mensaje en el caso de que no ingrese.

Lenguaje de Programacin C++

Ing. Ana Lenny Hospinal