Publicado el 7 de Mayo del 2018
975 visualizaciones desde el 7 de Mayo del 2018
372,6 KB
47 paginas
Creado hace 18a (02/08/2005)
Programación Instituto Tecnológico de Celaya
UNIDAD II
EESSTTRRUUCCTTUURRAASS DDEELL LLEENNGGUUAAJJEE YY SSUUSS EESSTTAATTUUTTOOSS
Ingeniería Química
Página 73
Programación Instituto Tecnológico de Celaya
SSEENNTTEENNCCIIAASS CCOONNDDIICCIIOONNAALLEESS SSIIMMPPLLEESS:: iiff--eellssee
Anteriormente se discutió que una de las estructuras utilizadas en la
programación estructurada es la Estructura Selectiva o Condicional. Se
explican aquí las sentencias que se utilizan en el lenguaje C++ para representar
este tipo de estructuras.
Proposiciones Condicionales
Algunas veces es necesario que un programa seleccione entre alternativas
dependiendo de los valores de algunas variables. Recordemos el ejercicio de
tarea acerca del diagrama de flujo que sirvió para encontrar el menor de dos
números:
Inicio
a,b
a>b
Falso
Verdadero
menor = a
menor = b
menor
Fin
Observe la interpretación que, en palabras, se podría dar a la estructura
condicional de dicho ejemplo:
Ingeniería Química
Página 74
Programación Instituto Tecnológico de Celaya
si a>b entonces
menor = b
si no es así
menor = a
Existe una sentencia en C++ que permite este tipo de expresiones. Se trata de
la sentencia if-else. (if = si, else = de otra forma, por el contrario, etc.) Para
el ejemplo que se está analizando, la sentencia sería:
if (a>b)
menor = b;
else
menor = a;
Esta es la forma más simple de una sentencia if-else. A la expresión entre
paréntesis se le denomina Expresión Booleana y, al igual que una variable
booleana, al evaluarla se tiene como resultado al valor de Falso o Verdadero.
Cuando se ejecuta un programa que contiene una sentencia if-else, solamente
las sentencias de una de las alternativas se considera. Si la expresión booleana
es verdadera, la sentencia escrita por debajo de if (expresion_booleana) se
ejecuta. Si la expresión booleana falsa, solamente la sentencia por debajo de
else es la que se ejecuta.
En el ejemplo, cada una de las alternativas contiene solamente una sentencia
(menor=b y menor=a, respectivamente). Sin embargo, cada alternativa puede
presentar varias sentencias.
En general, la sintaxis de una sentencia condicional if-else es la siguiente.
Una sola sentencia en cada alternativa:
if (expresion_booleana)
sentencia_de_verdadero;
else
sentencia_de_falso;
Ingeniería Química
Página 75
Programación Instituto Tecnológico de Celaya
Observe que las líneas correspondientes a if y a else no llevan punto y coma.
Cuando se tienen más de una secuencia en cada alternativa:
if (expresion_booleana)
{
sentencia_1_de_verdadero;
sentencia_2_de_verdadero;
∶
ultima_sentencia_de_verdadero;
}
else
{
sentencia_1_de_falso;
sentencia_2_de_falso;
∶
ultima_sentencia_de_falso;
}
Las sentencias en cada uno de las alternativas pueden ser cualquier sentencia
ejecutable de C++. Cuando se tiene una situación como ésta, en la cual hay
una lista de sentencias entre llaves, se dice que se tiene una sentencia
compuesta.
Expresiones Booleanas
Recordemos que la expresión boolena de una sentencia if-else deber ser
encerrada entre paréntesis. La forma más simple de una expresión booleana
consiste de dos números o variables que son comparadas entre sí a través de
Ingeniería Química
Página 76
Programación Instituto Tecnológico de Celaya
algún operador. Los operadores utilizados para comparación están constituidos
por uno o dos símbolos. Los operadores son los siguientes:
Operador en
Matemáticas
=
≠
<
<
>
>
Español
Igual a
Desigual a
Menor que
Menor ó igual que
Mayor que
Mayor ó igual que
Operador
en C++
Ejemplo
==
!=
<
<=
>
>=
edad==18
var_1 != 1
contador < 20
suma <= 15
a > b
tiempo >= limite
Para escribir los operadores de dos símbolos no debe de dejarse espacio entre
ellos. Un error común es utilizador un solo símbolo = para comparar si dos
variables o números son iguales. Se debe de asegurar de usar dos símbolos.
Recuerde que un solo símbolo = se usa para asignaciones. Observe que el
resultado de una comparación será el valor de falso o verdadero.
Es posible combinar varias comparaciones a través de los operadores “and” (“y”
en español) y “or” (“o” en español). En C++ el operador “and” se representa
como &&, mientras que el operador “or” se representa como ||. Por ejemplo, la
siguiente expresión evalúa si el valor de la variable x es mayor que 2 y menor
que 7:
(2 < x) && (x < 7)
Debido al operador “and”, la expresión sólo tiene el valor de verdadero si
ambas comparaciones son verdaderas.
Por otro lado, la siguiente expresión evalúa si el valor de la variable y es menor
a 0 o mayor que 12:
(y < 0) || (y > 12)
Ingeniería Química
Página 77
Programación Instituto Tecnológico de Celaya
Debido al operador “or”, la expresión anterior es verdadera si alguna (o las
dos) de las comparaciones es verdadera. Hay que recordar que cuando se usa
una expresión booleana en una sentencia if-else, toda la expresión debe de
usarse entre paréntesis. Por ejemplo, la siguiente es la primera línea de una
sentencia if-else:
if ( (temperatura > 35) && (humedad > 85) )
Existe además un símbolo especial que sirve para obtener el valor contrario de
una expresión booleana. Se dice también que dicho símbolo sirve para obtener
la “negación” de una expresión booleana. El símbolo es !. Por ejemplo, la
expresión:
!(x > y)
En este caso, si x es mayor que y, el valor de la expresión (x>y) sería
verdadero. Sin embargo, debido a la negación, el valor de la expresión
completa !(x > y) sería falso.
Formalmente, la sintaxis para el uso de los operadores && y || es la siguiente:
(comparacion_1) && (comparacion_2)... && (ultima_comparacion)
(comparacion_1) || (comparacion_2)... || (ultima_comparacion)
Ambos operadores se pueden combinar utilizando el uso de paréntesis como en:
( (comparacion_1) && (comparacion_2) ) || (comparacion_3)
Ejemplos de uso de la sentencia if-else:
if ( (calificacion > 8.0) && (calificacion < 9.0) )
cout<< “La calificacion esta entre 8 y 9 \n”;
else
cout<< “La calificacion no esta entre 8 y 9 \n”;
Ingeniería Química
Página 78
Programación Instituto Tecnológico de Celaya
Notas
• Algunas veces se desea que una de las alternativas de una estructura if-else
no ejecute ninguna instrucción. En ese caso, es posible utilizar la estructura
condicional omitiendo la parte de la estructura que corresponde a else. En
C++ ese tipo de estructuras se le conoce simplemente como sentencia if.
Por ejemplo, la siguiente parte de un diagrama de flujo:
Falso
a>b
Verdadero
menor = b
corresponde a la instrucción:
if (a>b)
menor = b
• Un error común es tratar de utilizar operadores de comparación en serie.
Por ejemplo:
if (x<z<y)
Esto es incorrecto. La forma correcta sería:
if ( (x<z) && (z<y) )
EEJJEERRCCIICCIIOOSS
1. Escriba una sentencia if-else que muestre en pantalla la palabra Alto si el
valor de la variable puntuacion es mayor que 100, y que muestre la palabra
Bajo si el valor de la variable puntuacion es menor o igual que 100. La
variable puntuacion es de tipo int.
Ingeniería Química
Página 79
Programación Instituto Tecnológico de Celaya
2. Escriba una sentencia if-else que muestre en pantalla la palabra Aprobado
si el valor de la variable examen (variable de tipo double) es mayor o igual a
70 y el valor de la variable programas_entregados es mayor o igual a 8; en
caso contrario, el programa muestra en pantalla la palabra Reprobado.
3. Suponga que se tienen dos variables de tipo double llamadas ahorro y
gasto. Escriba una sentencia if-else que, si el valor de ahorro es mayor al
valor de gasto, entonces muestre en pantalla la palabra Solvente,
disminuya el valor de la variable ahorro mediante la resta del valor de gasto
a su valor original, y asigne a la variable gasto el valor de cero. En caso
contrario (si gasto es mayor que ahorro), simplemente debe mostrarse en
pantalla la palabra Quiebra.
4. Considere dos variables de tipo int llamadas temperatura y presion. Escriba
una sentencia if-else que muestre en pa
Comentarios de: Unidad II - Estructuras del lenguaje y sus estatutos (0)
No hay comentarios