Zona de programación, todo lo necesario para aprender a programar

 
 
 

 

 

Quick basic

 

6) If..then..else

 

 

  • Operadores de Relación:

Los operadores relacionales nos sirven para determinar la relación que tiene una expresión con otra. Los operadores relacionales que manejaremos en QBasic son los siguientes:

Operador

Descripción

=

 Es igual a

<>

 No es igual a

>

 Es mayor que

<

 Es menor que

>=

 Es mayor o igual que

<=

 Es menor o igual que

Muchas veces se nos presentan situaciones en las que tenemos que evaluar una condición o situación. Si la condición es verdadera, entonces ejecutamos una o más instrucciones; si no es verdadera, ejecutamos otra u otras instrucciones.

 

Sintaxis: IF (condición) THEN (comandos) ELSE (comandos)

Veamos el siguiente ejemplo:

CLS
COLOR
2: PRINT TAB(20); "NUMERO NEGATIVO O POSITIVO"
COLOR
1: PRINT : PRINT
INPUT "
Introduce un numero entero", numero
PRINT
IF
numero < 0 THEN
PRINT "
El número es negativo"
ELSE
PRINT "
El número es positivo"
END IF

· El programa pide un número.
· Si (IF) el numero introducido es menor que cero entonces (THEN) se imprime el mensaje El número es negativo.
· Si no (ELSE), es menor que cero, entonces se imprime el mensaje El número es positivo.

Un bloque de instrucciones IF...THEN...ELSE debe terminar siempre con END IF para indicar que nuestro proceso de selección IF ha terminado.

Otro ejemplo:

CLS
INPUT "
¿Cuántos años tienes"; edad
IF
edad < 18 THEN
PRINT : PRINT "
Eres menor de edad"
ELSE
PRINT : PRINT "
Eres mayor de edad"
END IF

Para mas información escribe IF y luego presiona F1.

  • Operadores Lógicos:

Las condiciones suelen también ser afectadas por los Operadores Lógicos. Los Operadores Lógicos nos sirven para evaluar condiciones tales como:

Si numero1 no es igual a cero entonces...
IF NOT numero1 = 0 THEN...

Si numero1 es igual a cero o menor que 1 entonces...
IF numero1 = 0 OR numero1 < 1 THEN...

Si numero1 es igual a 1 y numero2 es menor que cero entonces...
IF numero1 = 1 AND numero2 < 0 THEN…

Si numero1 es igual a cero ó numero1 es menor que cero entonces...
IF numero1 = 0 XOR numero1 < 0 THEN…

Ejemplos de los operadores lógicos:

  • NOT:

Una chica le pregunta a otra:

¿Vas a ir al baile?. La otra contesta:
No, no iré.
Si no vas al baile, no verás a Fernando...

Aquí si la chica no va al baile, entonces no podrá ver a Fernando. Si va, entonces lo verá.

CLS
INPUT "
¿Irá Petra al baile (si = 1, no = 0)?. Introduzca un número: ", baile
si = 1
no = 0
?
IF
NOT baile = si THEN
PRINT "
Petra no verá a Fernando"
ELSE
? "
Petra si verá a Fernando"
END IF

  • AND:

Una persona va a sacar la cartilla y la secretaría le dice:

Necesitas el acta de nacimiento original y un comprobante de domicilio.

Para que esa persona pueda obtener su cartilla, necesita el acta y un comprobante de domicilio. Si le falta cualquiera de estos papeles entonces no se la dan.

CLS
PRINT "
Introduzca la respuesta siendo SI = 1 Y NO = 0"
INPUT "
¿Trajo el acta de nacimiento"; acta
INPUT "
¿Trajo el comprobante de domicilio"; domicilio
si = 1
no = 0
IF
acta = si AND domicilio = si THEN
PRINT "
Toma tu cartilla"
ELSE
PRINT "
Vuelva cuando tenga todos los papeles"
END IF

  • OR:

¿Mamá, me compras un helado?. La mamá le dice:
¿De cual quieres hijo, de mantecado ó de chocolate?. El niño le contesta:
Quiero de los dos.
Esta bien hijo.

Aquí, si el niño escoge de mantecado, de chocolate o de ambos, de todas maneras comerá helado.

CLS
INPUT "
¿Quieres helado de mantecado (si = 1, no = 0)"; mantecado
INPUT "
¿Quieres helado de chocolate (si = 1, no = 0)"; chocolate
si = 1
no = 0
?
IF
mantecado = si OR chocolate = si THEN
PRINT "
Toma tu helado"
ELSE
PRINT "
No comerás helado" ' Si el niño no quisiera ninguna de las dos o de otra
END IF

  • XOR:

¿Mamá, me compras un helado?. La mamá le dice:
¿De cual quieres hijo, de mantecado ó de chocolate?. El niño le contesta:
Quiero de las dos.
No, hijo: mantecado ó chocolate, de las dos no.

CLS
INPUT "
¿Quieres helado de mantecado (si = 1, no = 0)"; mantecado
INPUT "
¿Quieres helado de chocolate (si = 1, no = 0)"; chocolate
si = 1
no = 0
?
IF
mantecado = si XOR chocolate = si THEN
'
Si mantecado y chocolate son si, la condición no se cumple y por lo tanto no se ejecuta
? "
Toma tu helado" 'Si el niño quiere solo alguna de las dos
ELSE
? "
mantecado o chocolate, pero no de las dos o de otra"
END IF

  • EQV:

Cuando aumenta la temperatura, todos los metales se dilatan:

CLS
INPUT "
¿Aumentó la temperatura (si = 1, no = 0)"; temp
INPUT "
¿Se dilató la varilla (si = 1, no =0)"; delta
si = 1
no = 0
?
IF temp = si EQV delta = si THEN
PRINT "
Correcto"
ELSE
PRINT "
Mentiroso"
END IF

  • IMP:

Si estudias para el examen pasarás.
Aquí estamos afirmando que si se estudia, entonces se pasará.

CLS
? "
si = 1, no = 0"
INPUT "
¿Estudiaste"; estudiar
INPUT "
¿Pasaste el examen"; examen
si = 1
no = 0
?
IF
estudiar = si IMP examen = si THEN
? "
Si te creo"
ELSE
? "
Es difícil que alguien que estudie repruebe un examen"
END IF

Para mas información sobre todo esto, escribe NOT y luego presiona F1.

  • IF ANIDADOS:

Dentro de un programa podemos evaluar ciertas condiciones utilizando sentencias IF dentro de más bloques IF...THEN...ELSE. A este conjunto de sentencias agrupadas se les llama IF anidados.

Ejemplo:

CLS
INPUT "
Introduce un número del 1 al 4: ", n
PRINT : PRINT "
El número introducido fue: ";
COLOR
10
IF
n < 3 THEN
IF
n = 1 THEN PRINT "uno"
IF
n = 2 THEN PRINT "dos"
ELSE
IF
n = 3 THEN PRINT "tres"
IF
n = 4 THEN PRINT "cuatro"
END IF

En el ejemplo podemos ver algunas cosas:

La sentencias IF pueden ejecutarse sin necesidad de que haya un ELSE después. O sea, si la sentencia se cumple la orden se ejecuta y si no, no pasa nada.

Si la sentencia IF solo tiene una orden que ejecutar, esta puede ir inmediatamente después del THEN.

El END IF solo se pone cuando existe un bloque IF...THEN..ELSE, o cuando existe un IF que si se cumple ejecutará varias instrucciones, sin que después haya un ELSE; esto es:

IF condición THEN
instrucción 1
instrucción 2
instrucción 3
...
instrucción n
END IF


Ahora veamos un ejemplo más complejo:

CLS
PRINT "
PROGRAMA QUE DETERMINA SI UN CARACTER ES:"
PRINT "
1) Letra minúscula de (a) hasta (c)"
PRINT "
2) Letra mayúscula de (A) hasta (C)"
PRINT "
3) Numero del 1 al 3"
PRINT
INPUT "
Introduce un carácter: ", c$
PRINT "
El carácter introducido es: ";
COLOR
2
IF
c$ = "1" XOR c$ = "2" XOR c$ = "3" THEN
PRINT "
número"
ELSE
IF
c$ = "a" XOR c$ = "b" XOR c$ = "c" THEN
PRINT "
letra minúscula"
ELSE
IF
c$ = "A" XOR c$ = "B" XOR c$ = "C" THEN
PRINT "
letra mayúscula"
END IF
END IF
END IF


Como el carácter introducido solo puede ser uno particular, usamos XOR.

Existen bloques IF...THEN...ELSE anidados.

Si un IF no se cumple, entonces se salta al ELSE inmediato que da lugar a otro IF.

Cada bloque IF...THEN...ELSE termina con el END IF que le queda más cerca. Por ejemplo, el ultimo bloque IF...THEN...ELSE termina con el primer END IF; luego, el bloque que contenía a este bloque, termina con el segundo END IF, y así sucesivamente.

Para mas información escribe IF y luego presiona F1.

  • ELSEIF:

En pocas palabras, ELSEIF es un IF inmediatamente después de un ELSE o también lo podemos definir como un ELSE que evalúa una condición.

Veamos el ejemplo anterior usando ELSEIF:

INPUT "Introduce un carácter: ", c$
PRINT "
El carácter introducido es: ";
COLOR
2
IF
c$ = "1" XOR c$ = "2" XOR c$ = "3" THEN
PRINT "
número"
ELSEIF
c$ = "a" XOR c$ = "b" XOR c$ = "c" THEN
PRINT "letra minúscula"
ELSEIF
c$ = "A" XOR c$ = "B" XOR c$ = "C" THEN
PRINT "
letra mayúscula"
ELSE
PRINT "
otro carácter diferente de letra (a - c) y número (1 - 3)"
END IF

La sentencia ELSEIF es también una parte opcional de un bloque IF...THEN...ELSE. Podemos también tener uno o varios ELSEIF dentro de un solo bloque IF...THEN...ELSE

Si el primer IF no se cumple, QBasic automáticamente va hasta el ELSEIF donde la condición se cumple y evalúa las ordenes que están después de este hasta que se topa con otro ELSEIF, entonces saldrá del bloque IF...THEN...ELSE.

Si ni el IF ni los ELSEIF se cumplen, entonces el programa se va hasta ELSE.

Otro Ejemplo:

CLS
INPUT "
Número (1- 3): ", n
PRINT : COLOR
2
IF
n = 1 THEN
PRINT "
uno"
ELSEIF
n = 2 THEN
PRINT "
dos"
ELSEIF
n = 3 THEN
PRINT "
tres"
ELSE
PRINT "
fuera de rango"
END IF

Para mas información escribe ELSEIF y luego presiona F1.

 

 

Descargar gratis los programas y compiladores necesarios para aprender a programar

 
 

  ¿Buscas algo?

Google

 

Regresar al índice de quick basic

 

Regresar a la página principal