Análisis de llamadas a procedimientos

De Ejercicios


Contenido

Enunciado

Considera el siguiente procedimiento:

 PROCEDIMIENTO Escr(ch: CARÁCTER, long: ENTERO)
 INICIO
   MIENTRAS long>0 HACER
     ESCRIBIR ch
     long <-- long - 1
   FIN_MIENTRAS
 FIN

Enunciado a)

Si ch tiene el valor 'X' y numero el valor 5, ¿cuál sería el efecto de ejecutar cada una de las siguientes llamadas al procedimiento?

 Escr(ch,4*numero-12)
 Escr(ch,6)
 Escr(5,numero)
 Escr('/',numero)
 Escr('.',6)
 Escr('p',-10)

Enunciado b)

Escribe llamadas al procedimiento Escr para que cuando se ejecuten produzcan las siguientes salidas:

1) 35 guiones sucesivos.

2) 6 veces tantos espacios en blanco como el valor de numero

3) El valor actual de ch 14 veces

Soluciones

Para dar la solución del ejercicio hay que tener en cuenta que el procedimiento Escr muestra en el dispositivo de salida el contenido de ch tantas veces como indique el parámetro long.

Solución de a)

Escr(ch,4*numero-12) Muestra el carácter 'x' 8 veces (4*numero-12)
xxxxxxxx 
Escr(ch,6) Muestra el carácter 'x' 6 veces
xxxxxx
Escr(5,numero) La llamada no es correcta, porque para ser un carácter tiene que ir entre comillas, por lo tanto tomará 5 como un entero.
Escr('/',numero) Muestra el carácter '/' 5 veces
/////
Escr('.',6) Muestra el carácter '.' 6 veces
......
Escr('p',-10) No muestra nada ya que -10 es menor que 0 y no entrará dentro del bucle MIENTRAS del procecimiento.


Solucion de b)

1) 35 guiones sucesivos

Escr('-',35)

2) 6 veces tantos espacios en blanco como el valor de numero

Escr(' ',6*numero)

3) El valor actual de ch 14 veces

 Escr(ch,14)
Tipos de soluciones