Está en la página 1de 5

En esta clase

Algorítmica II  Revisión de algunos ejercicios de la clase anterior.


Licenciatura en Ciencias Informáticas  Sentencia condicionales en SL:
Plan 2009  Expresiones relacionales y lógicas
 Propósito, sintaxis y funcionamiento de la sentencia condicional
simple “si”.
Año: 2010
 Propósito, sintaxis y funcionamiento de la sentencia condicional
Profesor: Ricardo Barboza Lezcano escalonada “eval”.
 Ejercicios utilizando sentencias condicionales
Sentencias Condicionales en SL

Fuente: Materia “Algoritmos, IE”, del Prof. Cristian Cappo


(ccappo@pol.una.py)

Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 2

Expresiones relacionales Expresiones lógicas

Un operador relacional es un operador que compara los valores de Las expresiones lógicas consisten en variables booleanas, constantes
dos operandos. Un expresión relacional tiene dos operandos y un booleanas (SI,NO,TRUE,FALSE), expresiones relacionales y
operador relacional. El resultado de la expresión relacional siempre operadores booleanos (and,or,not).
es lógica o booleana excepto.

Operación Símbolo en SL
Las expresiones aritméticas pueden ser operandos de expresiones
Igual == relacionales y las relacionales de expresiones booleanas, por ello las
No Igual <> tres categorías de operadores deben ser puestas en niveles de
Mayor que > precedencia relativos a cada categoría.
Menor que <
Mayor o igual >=
Operación Símbolo en SL
Menor o igual <=
Y and (conjunción)
O or (disyunción)
Ejemplos (aplicables a numeros, cadenas y logicos): NO not (negación)
10 > 20 ==> FALSO
20 == 10 ==> FALSO
5 == 5 ==> TRUE
“a” == “a” ==> TRUE
“ab” > “abc” ==> FALSO
SI = SI ==> TRUE
NO > SI ==> FALSE (como esta implementado en SL)

Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 3 Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 4
Precedencia de operadores Propósito de las sentencias condicionales

- Condicionar el flujo de ejecución de un programa.


Nivel Operador - Permite tener procesos no lineales.
1(mayor) ^
2 -,+ (cambio de signo, identidad)
3 *,/,% Ejecución Lineal Ejecución Condicionada
4 +,-
5 ==,<>,<,<=,>,>= Inicio Inicio
6 not
7 and
8(menor) or
Falsa Verdadera
Paso..1 Condic.
¿Qué resultado dan las siguientes expresiones?

10 > 20 or 10+90 == 5^2 Paso..N Proceso-A Proceso-B

5 >= 2 and 6^2 <= -30 or 20%7 and not 5 == 6

Fin Fin

Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 5 Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 6

Sintaxis Sintaxis – Ejemplo

Sentencia condicional simple “si”


Sentencia condicional simple “si” Inicio
Ejemplo con una expresión relacional simple
si ( <expr-LOGICA> ) { SI
Imprimir el mensaje “Es un nro. negativo” cuando un nro. leído por teclado es
<lista-sentencias> Condic. Proceso negativo.
}
NO
programa cond_si
Fin var
a : numerico
Se ejecuta <lista-sentencias> cuando la condición resultante de inicio
<expr-LOGICA> es verdadera imprimir(“Ingrese un número:”)
leer(a)
Nótese que en negrita estan las palabras y simbolos obligatorios del si ( a < 0 ) {
lenguaje. imprimir ("\nEs un nro. negativo")
}
<expr-LOGICA> imprimir(“Fin del programa”)
Retorna Verdadero(TRUE o SI) o Falso (FALSE o NO) fin

Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 7 Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 8
Sintaxis – Ejemplo Sintaxis
Sentencia condicional simple “si”
Sentencia condicional simple “si” con “sino”
Ejemplo con una expresión lógica
Se ejecuta <lista-sentencias-verdadera> cuando la condición resultante
Imprimir el mensaje “Es un nro. mayor a 100 y es par” cuando un nro. leído por de <expr-LOGICA> es verdadera o
teclado es mayor a 100 y par. <lista-sentencias-falsa> cuando la condición resultante es falsa.
var
a : numerico; espar : logico La palabra “sino” es opcional y puede
inicio aparecer “n” veces
Inicio
imprimir(“Ingrese un nro.”); leer(a)
espar = FALSE si ( <expr-condic> ) {
<lista-sentencias-verdadera>
sino NO SI
si ( a % 2 == 0 ) { Condic.
espar = TRUE <lista-sentencias-falsa>]
} }
Proceso-A Proceso-B
si ( a > 100 and espar ) {
imprimir ("\nEs un mayor a 100 y par")
}
fin Fin

Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 9 Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 10

Sintaxis -Ejemplo Sintaxis - Ejemplo


Sentencia condicional simple “si” con “sino” (cont.)
Sentencia condicional simple “si” con “sino” (cont.)
Ejemplo con una expresión lógica:
Imprimir el mensaje “Es un nro. negativo” cuando un nro. leído por teclado es
negativo y “Es un nro. mayor o igual a cero” cuando no. Imprimir el mensaje “Es un nro. mayor a 100 y es par” cuando un nro. leído
por teclado es mayor a 100 y par.
programa cond_si_sino var
var a : numerico
a : numerico espar : logico
inicio inicio
// Imprimir "es un nro. negativo" si leer(a)
// el nro. leido lo es. si ( a % 2 == 0 ) {
leer(a) espar = TRUE
sino
si ( a < 0 ) { espar = FALSE
imprimir ("\nEs un nro. negativo") }
sino si ( a > 100 and espar ) {
imprimir ("\nEs un nro.mayor o igual a cero") imprimir ("\nEs un mayor a 100 y par")
} }
fin fin

Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 11 Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 12
Ejercicios Ejercicios
Ejercicio 1 Ejercicio 2

Hacer un algoritmo que determine si un alumno tiene o no derecho a examen Hacer un algoritmo que determine si tres valores ingresados pueden ser lados
final en una materia. Un alumno tiene firma si la semisuma de los puntajes de de una triángulo. Ninguno de sus lados puede ser superior a la suma de los
los parciales es mayor o igual a 60. Si tiene derecho entonces imprimir el otros dos. Si los valores pueden ser lados de un triángulo, entonces calcular la
nombre y su promedio. superficie según la fórmula del semi perímetro

Se leen los puntajes de los dos parciales y el nombre del alumno.


Ejemplos:
Ejemplos: - Si a=10, b=40 y c=100
- Si p1=60 y p2=40 nombre=”Juan Perez” Se imprime : “No pueden ser lados de un triangulo”.
No se imprime nada.

- Si p1=60 y p2=60 nombre=”Juan Perez” - Si a=10, b=40 y c=30


Se imprime Se imprime : “Pueden ser lados de un triangulo”.
Juan Perez tiene firma y su promedio es 60. Su superficie es:...

Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 13 Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 14

Sintaxis Funcionamiento
Sentencia condicional escalonada “eval” Sentencia condicional escalonada “eval”
eval {
caso ( <expr-LOGICA> )
<lista-sentencias>
caso ( <expr-LOGICA> )
<lista-sentencias>
caso ( <expr-LOGICA> )
<lista-sentencias>
[ sino
<lista-sentencias-sino> ]
}

[ ] : Indica opcionalidad
Se ejecuta <lista-sentencias> cuando la condición resultante de
<expr-LOGICA> es verdadera en cada “caso”

Se ejecuta <lista-sentencias-sino> cuando existe una claúsula


“sino” y todos los “casos” fueron falsos.

Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 15 Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 16
Sintaxis - Ejemplo Sintaxis - Ejemplo

Sentencia condicional escalonada “eval”


Ejemplo anterior con “si”- “sino”
Introducir el valor para una variable “a” e imprimir si es negativo, positivo o
cero.

programa pos_neg_cero programa pos_neg_cero


var var
a : numerico a : numerico
inicio inicio
imprimir(“Introduzca un nro.:”); leer(a) leer(a)
eval { si ( a == 0 ) {
imprimir (“Es cero”)
caso ( a == 0 )
sino si ( a > 0 )
imprimir (“Es cero”)
imprimir (“Es positivo”)
caso ( a > 0 )
sino si ( a < 0 )
imprimir (“Es positivo”) imprimir (“Es negativo”)
caso ( a < 0 ) sino }
imprimir (“Es negativo”) imprimir (“Es negativo”) fin
}
fin

Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 17 Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 18

Desarrollo de ejercicios con sentencias


condicionales

Resuelva los ejercicios sugeridos

Algorítmica II – Ciencias Informáticas (Fuente: "Algoritmos, IE”, Prof. Cristian Cappo) 19

También podría gustarte