1.11 Estructuras de Control
En todos los algoritmos
realizados hasta este punto, cada instrucción se ha ejecutado exactamente una
vez en el orden en que aparecería. Sin embargo, con frecuencia, se encuentran
situaciones en las que se deben proporcionar instrucciones alternativas que pueden
o no ejecutarse dependiendo de los datos de entrada, reflejado el cumplimiento
o no de una determinada condición.
Una sentencia puede
constar de una de las siguientes:
Una sentencia única o un
bloque de sentencias o ninguna sentencia (sentencia vacía).
Se pueden dividir las
sentencias de control de programa principalmente en 3 categorías:
a) Secuenciales
b) Selectivas
c) Repetitivas
a) SECUENCIALES
Las instrucciones se
ejecutarán en el orden en que ellas aparecen en el programa, a menos de que se
indique lo contrario, el sistema ejecutará automáticamente los enunciados en
una secuencia.
b) SELECTIVAS
Con este tipo de secuencia se
toman decisiones lógicas. Con éstas se evalúa una condición y en función del
resultado de la misma se realiza una opción u otra. La
condición puede resultar verdadera o falsa, así es como se decide si la
condición se ejecuta o no.
Las condiciones se especifican
utilizando expresiones lógicas y relacionales.
Existen tres tipos de
estructuras de selección.
Simple
Se ejecuta una acción si la
condición es verdadera, si la condición es falsa pasa por alto la condición.
Se utiliza la estructura if
(condicion) en este tipo de secuencia.
Bicondicional
La ejecución de la acción de
esta secuencia depende del valor de esta. La acción de diferente en cada valor.
Se utiliza la estructura if (condicion) else en este
tipo de secuencia.
Condición múltiple
Depende del valor de una
expresión la acción que se ejecutara, pero en esta secuencia se decidirá entre
diferentes acciones. Se utiliza la estructura switch (expresion) en
esta secuencia.
Repetitivas
Repiten una secuencia de
instrucciones un número determinado de veces, en tanto cierta condición se
mantenga verdadera.
Esta secuencia proporciona 3
tipos de estructuras repetitivas:
- While
- For
-Do while
En las estructuras selectivas
y en las estructuras repetitivas se utilizan expresiones lógicas y
relacionales.
Operaciones Relacionales
Las expresiones relacionales
pueden tomar la siguiente forma:
operando1 operador
relacional operando2
Los operandos son
variables, valores constantes o expresiones de algún tipo de dato que deben ser
del mismo tipo y el operador relacional determina la relación que existe
entre dos valores.
Los operadores relacionales
son los siguientes:
· <
· >
· <=
· >=
· ==
· !=
Ejemplo:
· 4<5
· x<=y
· z==89
Operaciones Lógicas
Las expresiones lógicas se
forman relacionando operandos booleanos mediante operadores lógicos, de la
siguiente manera:
Operando 1 operador
lógico operando 2
Donde los operandos son
expresiones relacionales que proporcionan dos únicos valores el valor de verdad
y falso y operador lógicocorresponde a los operadores
lógicos.
Los operadores lógicos son los
siguientes:
· &&
· ||
· !
Ejemplo:
{(num<34)
&&(num>=345)} || {num<=214}
PRESEDENCIA Y ASOCIATIVIDAD DE OPERADORES
1 ( )
2 * / %
3 + -
4 > , < , >= , <= , ==
, ! =
5 && , || , !
6 =
SENTENCIA IF
Dado que las expresiones
lógicas toman el valor verdadero o falso, se necesita una sentencia de control
que dirija a las computadoras para ejecutar una sentencia si la expresión es
verdadera, en caso contrario no se toma ninguna acción.
La forma general de la
sentencia if es:
if (condición) sentencia;
La sentencia if funciona
de la siguiente manera:
1. Se evalúa la expresión
lógica
2. Si la expresión toma
el valor verdadero, se ejecutará la sentencia y sino sigue con la siguiente
sentencia.
Ejemplo:
If (num<20)
Cout<<”el valor esta dentro del rango”;
SENTENCIA IF/ELSE
La sentencia if/else se
ejecuta una acción cuando toma un valor de verdad y cuando el valor es falso o
no cumple con la condición cumple con otra acción.
La forma general de la
sentencia if/else es:
if (condición)
sentencia;
else
sentencia;
La sentencia if funciona
de la siguiente manera:
1. Se evalúa la expresión lógica
2. Si la expresión toma el valor verdadero, se
ejecutará la sentencia y sino sigue con la siguiente sentencia.
3. Si la expresión toma el valor de
falso entonces se ejecutara la sentencia.
4. El control pasa de nuevo inmediatamente a
la siguiente sentencia del programa.
Ejemplo:
If (num<44)
Cout<<”esta dentro del rango”;
Else
Cout<<”esta fuera del rango”;
SENTENCIA IF/ELSE
ANIDADAS
La sentencia que sigue de la
palabra else puede ser cualquiera, incluso otra sentencia de este mismo tipo.
Cuando una o más sentencias otra sentencia, se dice que dicha sentencia esta
anidada y al proceso anidamiento.
Una sentencia if anidad se
puede utilizar para construir decisiones con diferentes alternativas.
if (condición)
sentencia;
else if (condición)
sentencia;
else if (condición)
sentencia;
if (condición)
sentencia;
else
if (condición)
sentencia;
else
if (condición)
sentencia;
else
sentencia;
Ejemplo:
If (num<=56)
Cout<<”Esta dentro del rango”;
Else
If
(num>=115)
Cout<<”Esta
fuera del rango”;
Else
If
(num<=0)
Cout<<”Valor no
Valido”;
SWITCH-CASE
La sentencia múltiple switch
( ) está formada por una serie de etiquetas case que
solamente cumplen con una condición determinada y un caso opcional default en
el que están contemplados todos los valores que no se encuentran en los case.
La forma general de las
sentencias switch ( ) es:
switch (expresion)
{
case constante1:
sentencia1;
break;
case constante2:
sentencia2;
break;
case constante_n:
sentencia_n;
break;
default:
sentencias;
break;
En esta sentencias el case solamente
evalúa una expresión y no mas aunque puede llevar n numero de case, pero
son un gran numero se recomienda usar ciclos. Estas expresiones solo puede ser
de tipo entero y de un solo carácter, al igual las constantes que se colocan.
Si el valor de la expresión es
igual a alguna de las constantes, se ejecutará el bloque de instrucciones hasta
encontrar la instrucción break, de lo contrario pasa al siguiente
bloque y si no cumple ninguno de los bloques entonces se ejecuta las sentencias
del default.
Ejemplo:
Switch (confiabilidad_del_producto) {
Case A:
Cout<<”perfecta”;
Break;
Case B:
Cout<<”Muy Buena”;
Break;
Case C:
Cout<<”Regular”;
Default:
Cout<<”Fuera de rango”;
Break ;
CICLO FOR
La estructura de repetición for maneja
de manera automática todos los detalles de la repetición controlada por
contador.
Funciona de la siguiente
manera:
1. El valor inicial de la variable
solo se ejecuta una vez al inicio del ciclo.
2. Se ejecuta la condición.
3. Si es verdadera pasará a ejecutar
el cuerpo del for.
4. Se ejecuta el incremento o
decremento de la variable.
5. Pasa a preguntar por la condición,
resultando así un proceso recursivo.
6. Si la condición fuera falsa la
ejecución pasará a la siguiente instrucción.
La forma general de la
sentencia for es:
for (inicialización;
condición; incremento/decremento)
sentencia;
Esta formada por lo siguiente:
· inicialización es
una sentencia de asignación que el compilador usa para establecer la variable
de control del ciclo.
· condición es
una expresión que comprueba la variable de control del ciclo cada vez para
determinar cuándo debe salir del ciclo.
· incremento/decremento define
la manera en que cambia la variable de control de ciclo cada vez que la
computadora repite el mismo.
El ciclo for continuará
la ejecución mientras la condición sea verdadera. Una vez que es
falsa, la ejecución del programa continuará en la sentencia que sigue en el
programa.
Ejemplo:
Int x
for ( x = 0; x <= 100;
x++){
cout<<x+1;
}
WHILE
Permite que se repita cierta
acción en cuanto la condición evaluada sea verdadera y en el momento en que la
condición sea falsa saldrá del ciclo y continuara con la siguiente instrucción.
La forma general de la
sentencia while es:
while (
condición )
sentencia;
Dentro del cuerpo del while se
incluye la condición para aumentar la variable de control y asi puede
ejecutarse correctamente el ciclo.
{
char
c;
ch
= ‘ \0 ‘;
while
(ch ! = ‘A’ )
ch
= getche ( );
}
El ciclo for funciona de la
siguiente manera:
1.-Comienza comprobando la
condición con la inicialización de la variable.
2.- Determina si es verdadera
y el ciclo comienza.
3.-si la condición llega a
ser falsa el bucle termina.
DO – WHILE
El funcionamiento de la
estructura es sililar a while, la diferencia es que la
condiccion se evalua al final de la estructura.
Así que en esta estructura se
ejecuta por lo menor una sola vez la(s) sentencia(s).
La forma general de la
sentencia do-while es:
do {
sentencia;
}while (condición);
Ejemplo:
int num;
do{
cin
>> num;
}while ( num >
100 );
0 comentarios: