Tutoriales de informática - Abrirllave.com

Abrirllave.com

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.