Está en la página 1de 24

Instrucciones de Control

Ramiro Estigarribia Canese

Objetivos del Captulo


1. Comprender tcnicas para solucionar problemas.
2. Utilizar las estructuras de seleccin if...else para
elegir entre distintas acciones alternativas.
3. Utilizar la estructura de repeticin while para
ejecutar instrucciones de manera repetitiva.
4. Comprender la repeticin controlada por un
contador y la repeticin controlada por un centinela.
5. Utilizar los operadores de asignacin.

Antes de Programar
Antes de escribir un programa que d solucin a un
problema, es imprescindible tener una comprensin
detallada de todo el problema, adems de una
estrategia planeada para resolverlo.
Al escribir un programa, es igualmente esencial
comprender los tipos de bloques de construccin
disponibles, y emplear las tcnicas comprobadas
para construir programas.

El Orden en los Algoritmos


Cualquier problema puede resolverse ejecutando
una serie de acciones en un orden especfico.
Considere el algoritmo para levantarse y
arreglarse que sigue un ejecutivo para levantarse
de la cama e ir a trabajar:
1. Levantarse.
2. Quitarse la ropa de dormir.
3. Baarse.
4. Vestirse.
5. Desayunar.
Esta rutina logra que el ejecutivo llegue al trabajo
bien preparado para tomar decisiones crticas.

Qu es el Pseudocdigo?
Es un lenguaje informal que ayuda a los
programadores a desarrollar algoritmos sin tener
que preocuparse por los estrictos detalles de la
sintaxis del lenguaje C++.
El pseudocdigo es similar al lenguaje cotidiano; es
conveniente y amigable.
No se ejecuta en las computadoras.
En vez de ello, ayuda al programador a organizar
un programa antes de que intente escribirlo en un
lenguaje de programacin como C++.

Ejecucin Secuencial
Generalmente, en un programa las instrucciones se
ejecutan una despus de otra, en el orden en que
estn escritas.
Este proceso se conoce como ejecucin
secuencial. Existen instrucciones en C++, que
permiten especificar que la siguiente instruccin a
ejecutarse tal vez no sea la siguiente en la
secuencia.
Esto se conoce como transferencia de control

Estructura de secuencia
A menos que se le indique lo contrario, la
computadora ejecuta las instrucciones una despus
de otra.
Como veremos pronto, en donde quiera que se
coloque una sola accin, podrn colocarse varias
acciones en secuencia.

Instrucciones de Seleccin
La instruccin if realiza (selecciona) una accin si la
condicin es verdadera, o evita la accin si la
condicin es falsa.
La instruccin if...else realiza una accin si la
condicin es verdadera, o realiza una accin
distinta si la condicin es falsa.
La instruccin switch (captulo 5) realiza una de
entre varias acciones distintas, dependiendo del
valor de una expresin.

Instruccin de seleccin if
Los programas utilizan instrucciones de seleccin
para elegir entre los cursos alternativos de accin.
Por ejemplo, suponga que la calificacin para
aprobar un examen es 60.
Imprimir Aprobado determina si la condicin la
calificacin del estudiante es mayor o igual a 60 es
verdadera o falsa.

Instruccin de seleccin if
if ( calificacion >= 60 )
cout << "Aprobado";

Si calificacin es mayor o igual a 60, imprime


Aprobado y luego se dirige al final.
Si es menor a 60, el programa se dirige
inmediatamente al final sin mostrar mensaje.

Instruccin de seleccin
doble if...else
La instruccin if de seleccin simple realiza una
accin indicada solamente cuando la condicin es
verdadera; de no ser as, se evita dicha accin.
La instruccin if...else permite especificar una
accin a realizar cuando la condicin es verdadera,
y otra cuando la condicin es falsa.
Por ejemplo: Si calificacin es mayor o igual a 60
Imprimir Aprobado
De lo contrario
Imprimir Reprobado

Instruccin de seleccin
doble if...else
As es en C++:
if ( calificacion >= 60 )
cout << "Aprobado";
else
cout << "Reprobado";

Operador Condicional
Puede utilizarse en lugar de if...else:
cout << (calificacion >= 60 ? "Aprobado" : "Reprobado");
Produce como resultado la cadena "Aprobado" si la
expresin es verdadera, o "Reprobado" si es falsa.
Por lo tanto, realiza en esencia la misma funcin que la
instruccin if...else.

Instrucciones if...else
anidadas
Un programa puede evaluar varios casos colocando
instrucciones if...else dentro de otras instrucciones.
Si calificacin es mayor o igual a 90
Imprimir Cinco de lo contrario
Si calificacin es mayor o igual a 80
Imprimir Cuatro de lo contrario
Si calificacin es mayor o igual a 70
Imprimir Tres de lo contrario
Si calificacin es mayor o igual a 60
Imprimir Dos de lo contrario
Imprimir Uno

Instrucciones if...else
anidadas
if ( calificacion >= 90 )
cout << "Cinco";
else
if ( calificacion >= 80 )
printf( "Cuatro" );
else
if ( calificacion >= 70 )
printf( "Tres" );
else
if ( calificacion >= 60 )
printf( "Dos" );
else
printf( "Uno" );

Muchos programadores en
prefieren escribir as:
if ( calificacion >= 90 )
printf( "Cinco" );
else if ( calificacion >= 80 )
printf( "Cuatro" );
else if ( calificacion >= 70 )
printf( "Tres" );
else if ( calificacion >= 60 )
printf( "Dos" );
else
printf( "Uno" );
Las dos formas son idnticas.

#include <iostream>
using namespace std;
int main()
{
int calificacion = 75;
if ( calificacion >= 90 )
cout << "Cinco";
else if ( calificacion >= 80 )
cout << "Cuatro";
else if ( calificacion >= 70 )
cout << "Tres";
else if ( calificacion >= 60 )
cout << "Dos";
else cout << "Uno";
return 0;
}

Bloques
La instruccin if puede incluir varias instrucciones
entre llaves { }.
A este conjunto de instrucciones se le llama bloque.
El siguiente ejemplo incluye un bloque:
if ( calificacion >= 60 )
cout << "Aprobado";
else
{
cout << "Reprobado.";
cout << "Debe tomar este curso otra vez.";
}

Bloques
Las llaves son importantes.
Sin ellas, la instruccin printf ("Debe tomar este
curso otra vez."); estara fuera del cuerpo de la
parte else de la instruccin if...else y se ejecutara
sin importar que la calificacin fuera menor a 60.
Los errores de sintaxis (como cuando se omite una
llave en un bloque del programa) los atrapa el
compilador.
Un error lgico (como cuando se omiten ambas
llaves en un bloque del programa) tiene su efecto
en tiempo de ejecucin.

Instrucciones de Repeticin
C++ cuenta con tres instrucciones de repeticin
que permiten a los programas ejecutar
instrucciones en forma repetida, siempre y cuando
una condicin siga siendo verdadera.
Las instrucciones de repeticin se
implementan con las instrucciones
while, do...while y for.

Instruccin de repeticin
while
Permite especificar que un programa debe repetir una
accin mientras cierta condicin sea verdadera.
Ejemplo:
Mientras existan artculos en mi lista de compras:
Comprar el siguiente artculo.
La condicin existan artculos en mi lista de
compras puede ser verdadera o falsa.
Esta accin se realizar en forma repetida mientras
la condicin sea verdadera.

While (product <= 100)


Este ciclo sigue ejecutndose hasta que la condicin
producto > 100 se vuelva verdadera.
Entonces, la instruccin while termina.

Ejemplo:
Promedio de Notas.
A una clase de diez estudiantes se les aplic un
examen.
Las calificaciones (enteros en el rango de 0 a 100)
de este examen estn disponibles para su anlisis.
Determine el promedio de la clase para este examen.

#include <iostream>
using namespace std;
int main()
{
int total=0, contador=1, nota, promedio;
while ( contador <= 10 ) // itera 10 veces
{
cout << "Escriba la nota:";
cin >> nota; // lee la nota
total = total + nota; // suma calificacin a total
contador = contador + 1; //incrementa contador en 1
}
promedio = total / 10;
cout << "\nEl total de las 10 notas es " << total;
cout << "\nEl promedio es " << promedio ;
return 0;
}