Pregunta de algoritmo

valeroasm ayuda otra vez por fa con esto no se como hacerlo gracias!!

x = 2
Do While (h < x)
If (h Mod 2) Then
For x = 1 To x
x = x + 1
Next x
i = 0
Else
Do
i = i + 2
Loop While (i <= 4)
End If
s = s + i
h = h + 1
Loop
TextBox1 = h + x + s

que numero da en textbox1?

1 respuesta

Respuesta
1

Puesto que no nos dicen el valor de h se supone 0.

Entramos en el bucle

Do While (h<x)

Porque x vale 2

L apregunta

If(h mod 2) then

es falsa porque h=0 y h mod 2 = 0 y eso significa falso. Luego vamos a la instrucción tras el else

Como i no se ha inicializado todavia se supone i=0, se le suma 2 dentro del bucle y i<=4 se repite el bucle con lo que se le suma 2 y tenemos i=4 que es <=4 luego se repite el bucle i=6 y ya se sale del bucle.

Entonces llegamos a

s=s+i

como s no estaba inicializado será s=0+6 = 6

y despues tenemos

h=h+1

que hace h=0+1 = 1

Y volvemos al comienzo del bucle

Do While (h < x)

se cumple porque h=1 y x=2 luego entramos en el bucle

ahora tenemos h mod 2 = 1 luego se cumple la pregunta

if (h mod 2) then

y vamos a estas órdenes

For x = 1 To x
x = x + 1
Next x

Esas tres líneas no son muy ortodoxas en programación, el índice del bucle for no puede ser el límite superior a la vez y no es bueno modificarlo dentro del mismo bucle. No sé lo que hará el programa, depende de como esté diseñado el compilador o interprete del Basic usado. Podría ser que Excel hiciese una cosa y otro Basic hiciese otra.

Lo mejor será que lo pruebes.

Suponiendo que el límite superior del bucle sea asignado al principio y sea inamovible sería un bucle de x=1 hasta 2 en la primera pasada seria x=1+1=2 como 2 no es mayor que 2 pasa por segunda vez y tenemos x=2+1=3 y ya sale del bucle for.

La siguiente instrucción es

i=0

después viene

s=s+i

como s valía 6 de antes tendremos s=6+0 = 6

Luego tenemos

h=h+1

como h valía uno tendremos h=2

Volvemos al comienzo del bucle. como h=2 y x=3 se vuelve a introducir en el bucle, como h mod 2=0 se salta al else, i pasa de 6 a 8, s pasa de 6 a 14 y h pasa de 2 a 3.

Volvemos al bucle, como h=x=3 nos metemos en el, se cumple h mod 3=1 con lo cual vamos a ese bucle raro de la x que termina con x=3, luego i=0, después s=s+i hace que s=14, y luego h=4. Y volvemos a principio dle bucle y ya no se cumple, luego vamos a la orden del

Textbox1= h+x+s = 4 + 3 + 14 = 21

No estoy seguro de la respuesta porque han usado algunas órdenes conflictivas y porque ha salido un poco más largo de lo normal. Pruébalo y si no da eso me lo dices y me instalo aunque solo sea un Office 97 o 2003 aquí para probarlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas