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

Programacin de Computadores

RUTA DE TRABAJO PROGRAMACIN DE COMPUTADORES


Sentencias Condicionales Simples: if-else

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 nmeros:

Inicio

a,b

Falso a>b Verdadero

menor = a menor = b

menor

Fin

Observe la interpretacin que, en palabras, se podra dar a la estructura condicional de dicho ejemplo:
si a>b entonces
menor = b
si no es as
menor = a
existe una sentencia 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 sera:
if (a>b)
menor = b;
Programacin de Computadores

else
menor = a;
Esta es la forma ms simple de una sentencia if-else. A la expresin entre parntesis se le denomina Expresin
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 expresin booleana es verdadera, la sentencia escrita por debajo de
if (expresion_booleana) se ejecuta. Si la expresin 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;
Observe que las lneas correspondientes a if y a else no llevan punto y coma.

Cuando se tienen ms 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;
}
Programacin de Computadores

Las sentencias en cada uno de las alternativas pueden ser cualquier sentencia ejecutable . Cuando se tiene una
situacin 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 expresin boolena de una sentencia if-else deber ser encerrada entre parntesis. La forma
ms simple de una expresin booleana consiste de dos nmeros o variables que son comparadas entre s a
travs de algn operador. Los operadores utilizados para comparacin estn constituidos por uno o dos
smbolos. Los operadores son los siguientes:

Operador en Espaol Operador Ejemplo


Matemticas en C++
= Igual a == edad==18
Desigual a != var_1 != 1
< Menor que < contador < 20
< Menor igual que <= suma <= 15
> Mayor que > a>b
> Mayor igual que >= tiempo >= limite

Para escribir los operadores de dos smbolos no debe de dejarse espacio entre ellos. Un error comn es
utilizador un solo smbolo = para comparar si dos variables o nmeros son iguales. Se debe de asegurar de
usar dos smbolos. Recuerde que un solo smbolo = se usa para asignaciones. Observe que el resultado de una
comparacin ser el valor de falso o verdadero.

Es posible combinar varias comparaciones a travs de los operadores and (y en espaol) y or (o en


espaol). El operador and se representa como &&, mientras que el operador or se representa como ||. Por
ejemplo, la siguiente expresin evala si el valor de la variable x es mayor que 2 y menor que 7:
(2 < x) && (x < 7)

Debido al operador and, la expresin slo tiene el valor de verdadero si ambas comparaciones son
verdaderas.
Por otro lado, la siguiente expresin evala si el valor de la variable y es menor a 0 o mayor que 12:
(y < 0) || (y > 12)

Debido al operador or, la expresin anterior es verdadera si alguna (o las dos) de las comparaciones es
verdadera. Hay que recordar que cuando se usa una expresin booleana en una sentencia if-else, toda la
expresin debe de usarse entre parntesis. Por ejemplo, la siguiente es la primera lnea de una sentencia if-
else:
Programacin de Computadores

if ( (temperatura > 35) && (humedad > 85) )

Existe adems un smbolo especial que sirve para obtener el valor contrario de una expresin booleana. Se dice
tambin que dicho smbolo sirve para obtener la negacin de una expresin booleana. El smbolo es !. Por
ejemplo, la expresin:
!(x > y)

En este caso, si x es mayor que y, el valor de la expresin (x>y) sera verdadero. Sin embargo, debido a la
negacin, el valor de la expresin completa !(x > y) sera 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 parntesis 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;
Notas
Algunas veces se desea que una de las alternativas de una estructura if-else no ejecute ninguna
instruccin. 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
Programacin de Computadores

corresponde a la instruccin:
if (a>b)
menor = b

Un error comn es tratar de utilizar operadores de comparacin en serie. Por ejemplo:


if (x<z<y)
Esto es incorrecto. La forma correcta sera:
if ( (x<z) && (z<y) )

La estrutura de control IF permite decidr entre dos opciones resultantes de la evaluacin de una
sentencia. Si la evaluacin es positiva hace una cosa, tambin podemos especificar accioens para
realizar en caso de que la evaluacin sea negativa. Veamos cmo funciona en VBscript.
IF (expresion) then
Sentencias
....
END IF
Vemos que en primer lugar tenemos la sentencia IF, luego una expresin, que puede o no ir entre parntesis, y
ms tarde la parabra THEN. Vemos que luego hay un salto de lnea antes de colocar las sentencias asociadas a
la evaluacin positiva de la sentencia. En VBScript las lneas si que importan.
Despus de poner las sentencias del asociadas a la evaluacin positiva colocamos un END IF, para acabar la
estructura del IF.

Enunciado ELSE

Opcionalmente se puede colocar una serie de sentencias asociadas a la evaluacin negativa de la


expresin. Estas sentencias se deben colocar despus de la orden ELSE y antes del END IF.
IF (expresion) then
Sentencias
....
ELSE
Sentencias
....
END IF
Programacin de Computadores

Enunciado ELSEIF

En Visual Basic Script existe la posibilidad de utilizar un enunciado especial en el lugar donde
utilizaramos un ELSE. Sirve para encadenar sentencias IF de modo que en un resultado negativo
de un IF se pueda evaluar otra expresin, que tendra a su vez otros enunciados THEN y
probablemente ELSE u otro ELSEIF. Se vera en un ejemplo com ms facilidad:
IF (expresion1) then
Sentencias1
....
ELSEIF (expresion2) then
Sentencias2
....
ELSEIF (expresion3) then
Sentencias3
....
ELSE
Sentencias4
....
END IF
Se evala la primera expresin, en caso positivo se ejecutan las sentencias1, en caso negativo se evalua la
expresion 2. Si la expresin 2 es positiva se ejecutan las sentencias 2 en caso negativo evaluamos la expresin
3 con el siguiente ELSEIF. Todo acaba en un ELSE en este ejemplo, pero el ELSE final no es obligatorio.

Ejercicios
1. Leer el nombre de una persona la edad . Imprima el mensaje MAYOR DE EDAD si la edad es Mayor que
18 aos de lo contrario Finalice el programa.

2. Leer el nombre y el sexo de una persona, si el sexo es 1 imprima mensaje Hombre de lo contrario imprima
un mesaje Mujer.
3. Lea un nmero e imprimalo siempre y cuando sea diferente de cero de lo contrario termine el programa
4. Leer un caracter y decir si es una letra del alfabeto(Mayscula o Minscula) , diga si es un Digito(0-9) o por el
contrario un caracter especial.

5.Leer un nmero de celular obtener los tres primeros digitos (divida el nmero por 1000000)
Envie un mensaje deacuerdo a las siguiente tabla
Programacin de Computadores

Prefijo Empresa(MENSAJE)
300-301-302 TIGO
310-314 O el 320 COMCEL
315-318 MOVISTAR

2. Use la tabla de la verdad para resolver el siguiente problema

Una compaa de transporte terrestre enva todos sus carros a un mismo taller para las reparaciones
pertinentes cuando stos lo ameritan . Dada la siguiente informacin de un carro que se remite al taller : la
placa, la marca y el tipo de dao, elaborar un programa en Visual Basic para calcular e indicar el costo del dao.

La marca del vehculo es Ford,Chevrolet, Mitsubishi, Mazda.(Use botn de opciones) el tipo de dao puede ser
uno, dos, tres, use (if elseif)

Segn el tipo de dao hay un factor denominado factor del costo de acuerdo a la siguiente tabla

Marca 1(leve) 2(medio) 3(grave) Costo bsico


1. Ford 1 2 4 150000
2. Chevrolet 1.3 2.5 6 200000
3.Mitsubishi 1.6 3 8 250000
4. Mazda 1.9 3.5 10 300000

Dicho factor del costo se emplea para obtener el costo del dao, el cual es el producto de dicho factor por el
costo bsico

Se debe indicar adems la placa del vehculo y dos letreros a saber. Uno que especifique la marca del vehculo
y otro que especifique el tipo de dao

ClAUSULA AND (&&) OR ( | | )


A B A && B A || B
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
Programacin de Computadores

Desarrollo ejercicio 5

Inicio
Long num;
leer num;
num=num/10000000;
if (num==300 OR num==301)
{
IMPRIMIR(tigo);
}

Else if(num>=310 && num<=314) or(num>=320 or num<=321)


{
IMPRIMIR(Comcel);
}
Else if(num>=315 && num<=318) {
IMPRIMIR(movistar);
}
{
Else
IMPRIMIR(Numero no esta en el rango);
}
fin

Вам также может понравиться