Ejercicio de Algoritmos - Evaluación de distintas expresiones en pseudocódigo
Dadas las siguientes declaraciones:
Z = "Z"
NUMEROS = "12345"
NO = falso
OCHO = 8
enumerado posicion { ARRIBA, ABAJO, IZQUIERDA, DERECHA }
enumerado letras { A = -1, B, C, D, E, F }
subrango '1'..'9' valor = '4'
cadena dia = "jueves"
caracter letra = 'j'
entero i = 0, j = 2, k = 6
logico si = verdadero
posicion ficha_de_juego = ARRIBA
real r = 1.5, s = 10.2
¿Qué valores se obtienen de evaluar las siguientes expresiones?
Distintas expresiones | |
---|---|
1 |
j ** ( i div k ) |
2 |
8 div ( k mod j ) |
3 |
( k + j ) mod ( r * j ) |
4 |
j * ( s - k ) ** i |
5 |
dia > "miercoles" = "viernes" < dia |
6 |
no dia <> "domingo" |
7 |
NUMEROS + dia |
8 |
OCHO div 2 >= r * k / j |
9 |
IZQUIERDA <= j y si = no NO |
10 |
F <> Z |
11 |
letra > 't' o no ( 'b' < letra ) |
12 |
( B * j = -4 ) > falso |
13 |
NO < no ( si <> C > i ) |
14 |
k * j > OCHO > E |
15 |
A + D >= ficha_de_juego mod ABAJO * DERECHA |
16 |
valor <> "4" y falso |
17 |
si o verdadero < falso y NO |
18 |
no no no NO |
19 |
1 ** -A ** A |
20 |
( G > B ) <> ( F >= C ) = ( -A <= A ) |
21 |
verdadero = NO falso |
22 |
letras <> posicion |
23 |
falso o ( ">" <> '<' ) |
24 |
OCHO div ( E * A mod j ) + k |
Solución:
Valores | |
---|---|
1 |
1 (actúan en orden los operadores: (div) y (**)) |
2 |
ERROR (no se puede evaluar; no se puede dividir entre cero) |
3 |
ERROR (el operador módulo (mod) no puede operar con números reales) |
4 |
2. (actúan en orden los operadores: signo menos (-), (**) y (*)) |
5 |
verdadero (actúan en orden los operadores: (>), (<) y (=)) |
6 |
ERROR (la expresión es incorrecta; no dia no se puede evaluar) |
7 |
"12345jueves" (actúa el operador concatenación (+)) |
8 |
falso (actúan en orden los operadores: (div), (*), (/) y (>=)) |
9 |
verdadero (actúan en orden los operadores: (no), (<=), (=) e (y)) |
10 |
ERROR (la expresión es incorrecta; Z y F no son comparables, ya que, no son del mismo tipo) |
11 |
falso (actúan en orden los operadores: (<), (no), (>) y (o)) |
12 |
falso (actúan en orden los operadores: (-), (*), (=) y (>)) |
13 |
verdadero (actúan en orden los operadores: (>), (<>), (no) y (<)) |
14 |
ERROR (la expresión es incorrecta; verdadero y E no son comparables, ya que, no son del mismo tipo) |
15 |
verdadero (actúan en orden los operadores: (mod), (*), suma (+) y (>=)) |
16 |
ERROR (la expresión es incorrecta; valor y "4" no son comparables, ya que, no son del mismo tipo) |
17 |
falso (actúan en orden los operadores: (<), (y) y (o)) |
18 |
verdadero (actúan en operador (no) tres veces seguidas) |
19 |
1 (actúan en orden los operadores: signo menos (-), (**) y (**)) |
20 |
verdadero (actúan en orden los operadores: (>), (>=), signo menos (-), (<=), (<>) y (=)) |
21 |
ERROR (la expresión es incorrecta; NO falso no se puede evaluar) |
22 |
ERROR (la expresión es incorrecta; letras y posicion son tipos de da¬tos) |
23 |
ERROR (la expresión es incorrecta; ">" y '<' no son comparables, ya que, no son del mismo tipo) |
24 |
-2 (actúan en orden los operadores: (*), (mod), (div) y suma (+)) |
Para evaluar las expresiones de este ejercicio hay que tener en cuenta la prioridad de los operadores aritméticos, relacionales, lógicos y de cadena.