You are on page 1of 3

Sentencia eval

La sentencia eval es funcionalmente equivalente a la forma extendida de la sentencia


si, pero aporta mayor legibilidad cuando las condiciones son varias o complejas.

La sintaxis de la sentencia eval es:

eval
{
caso ( condicion ) sentencias...
caso ( condicion ) sentencias...
sino
sentencias...
}
El programa verificará el valor de verdad de la primera condición. Si se cumple,
ejecutará todas las acciones definidas para ese caso en particular y luego irá a
ejecutar la sentencia que siga a la llave que cierra el cuerpo de la sentencia eval. Si
no se cumple, pasará a verificar la siguiente condición y así sucesivamente. Si
ninguna condición fuese verdadera y existiese una cláusula “sino”, se ejecutarán las
acciones definidas bajo esta cláusula. La cláusula “sino” es opcional. Si está presente
debe ser la última.

/*Clasificar un carácter ingresado por el usuario en "letra mayúscula",


"letra minúscula", "dígito" o "algún otro". */

var
let : cadena
msg : cadena

inicio

leer (let)
/* Consideremos solo el primer carácter, por si haya tipeado más de uno.
Observar cómo se usan los corchetes para seleccionar el primer carácter.*/

let = let [1]


eval
{
caso ( let >= 'A' and let <= 'Z' )
msg = "letra mayúscula"
caso ( let >= 'a' and let <= 'z' )
msg = "letra minúscula"
caso ( let >= '0' and let <= '9' )
msg = "dígito"
sino
msg = "algún otro"
}
imprimir ("\nEl carácter que usted ingresó es ", msg)
fin
EJEMPLO 2: Escribir un programa para determinar los días de un mes.

programa DiasMes
var
NroDiasMes, Mes, Anio : numerico
inicio
//Limpiar pantalla
cls()

//Leer Mes y Anio


imprimir("\nMes : ")
leer(Mes)
imprimir("\nAnio : ")
leer(Anio)

//Determinar numero de dias del mes


eval
{
caso (Mes==1 or Mes==3 or Mes==5 or Mes==7 or Mes==8 or Mes==10 or Mes==12)
NroDiasMes = 31
caso (Mes==4 or Mes==6 or Mes==9 or Mes==11)
NroDiasMes = 30
caso (Mes==2)
si(Anio % 4 == 0)
{
NroDiasMes = 29
sino
NroDiasMes = 28
}

//Escribir dias del mes


imprimir("\n Nro dias del Mes : ", NroDiasMes)
fin

programa dias
var
numero:numerico
inicio
cls()
imprimir("introuzca un numero ")
leer(numero)
eval
{
caso(numero==1)
imprimir("es lunes")
caso(numero==2)
imprimir("es Martes")
caso(numero==3)
imprimir("es miercoles")
caso(numero==4)
imprimir("es jueves")
caso(numero==5)
imprimir("es viernes")
caso(numero==6)
imprimir("es sabado")
caso(numero==7)
imprimir("es domingo")
sino
imprimir("error")
}
fin

You might also like