1
Aprender a programar desde cero / EJERCICIO CU00163A bucles mientras repetir en pseudocódigo y uso interruptores
« en: 09 de Noviembre 2012, 01:20 »
Hola a todos. Voy por la lección CU00163A del curso básico.
Antes de ver la solución yo llegué al siguiente resultado:
INICIO
j=1
Mientras condicion_prevista <= 100 hacer
Leer paquete (i)
Si dato(j)>600 y dato(j)<700 entonces
condicion_prevista = condicion_prevista + 1
Datos_extraidos = Datos_extraidos + 1
Sino
Datos_extraidos = Datos_extraidos + 1
FinSi
Si j = 100 entonces
i=i+1
j=1
Sino
j=j+1
FinSi
Repetir
Mostrar "Se cumple lo previsto."
Mostrar "Se extrajeron", condicion_prevista, "Datos con valores mayores que 600 y menores que 700 de", datos_extraidos, "datos totales revisados."
FIN
Ahora bien, cuando vi la solución publicada observé que el hecho de usar interruptores facilita las cosas, pero hay algunas cosas que no entiendo:
1. Inicio [Extracción de datos p100]
2. n = 1
3. Mientras Esperado = Falso Hacer
3.1 Desde i = n hasta n + 99 Hacer
Leer Dato(i)
Si Dato(i) > 600 y Dato(i) < 700 Entonces
j = j + 1
FinSi
Siguiente
3.2 Si j > 100 Entonces
Esperado = Verdadero
FinSi
3.3 Si Esperado = Verdadero Entonces
Mostrar “Se cumple lo previsto habiendo extraído”, j, “datos de un total de”, n + 99, “datos”
SiNo
Mostrar “Extracción de un nuevo paquete”
n = n + 100
FinSi
Repetir
4. Fin
No entiendo porqué es necesario manipular el contador de este modo, pues a mi entender, n ya secuentra en el valor necesario en el caso de retomar el bucle o en caso de mostrar el mensaje
¿Cuál es la necesidad de poner Mostrar “Se cumple lo previsto habiendo extraído”, j, “datos de un total de”, n + 99, “datos”?
Me parece que esto no es adecuado, porque de este modo se está sumando 99 al último valor de n en el bucle...
Lo mismo cuando se dice:
Mostrar “Extracción de un nuevo paquete”
n = n + 100
Si se vuelve a ingresar al bucle porque esperado=falso al finalizar el primer paquete, sin esta aclaración el bucle empezaría en n=101, con la instrucción n=n+100 se empezaría en 201...
No lo entiendo del todo... AYUDAAAAAAA!!!!!
a mi me queda asi:
INICIO
n=1
esperado = falso
Mientras esperado = falso hacer
desde i = n hasta n+99 hacer
leer Dato(i)
Si dato(i)>600 y dato(o) < 700 entonces
j=j+1
FinSi
Siguiente
Si j>100 entonces
esperado = verdadero
FinSi
Si esperado = verdadero entonces
Mostrar "Se cumple lo previsto."
Mostrar "Se extrajeron", j, "Datos con valores mayores que 600 y menores que 700 de", n, "datos totales revisados."
Sino
Mostrar "Extracción de un nuevo paquete de datos"
FinSi
Repetir
FIN
Antes de ver la solución yo llegué al siguiente resultado:
INICIO
j=1
Mientras condicion_prevista <= 100 hacer
Leer paquete (i)
Si dato(j)>600 y dato(j)<700 entonces
condicion_prevista = condicion_prevista + 1
Datos_extraidos = Datos_extraidos + 1
Sino
Datos_extraidos = Datos_extraidos + 1
FinSi
Si j = 100 entonces
i=i+1
j=1
Sino
j=j+1
FinSi
Repetir
Mostrar "Se cumple lo previsto."
Mostrar "Se extrajeron", condicion_prevista, "Datos con valores mayores que 600 y menores que 700 de", datos_extraidos, "datos totales revisados."
FIN
Ahora bien, cuando vi la solución publicada observé que el hecho de usar interruptores facilita las cosas, pero hay algunas cosas que no entiendo:
1. Inicio [Extracción de datos p100]
2. n = 1
3. Mientras Esperado = Falso Hacer
3.1 Desde i = n hasta n + 99 Hacer
Leer Dato(i)
Si Dato(i) > 600 y Dato(i) < 700 Entonces
j = j + 1
FinSi
Siguiente
3.2 Si j > 100 Entonces
Esperado = Verdadero
FinSi
3.3 Si Esperado = Verdadero Entonces
Mostrar “Se cumple lo previsto habiendo extraído”, j, “datos de un total de”, n + 99, “datos”
SiNo
Mostrar “Extracción de un nuevo paquete”
n = n + 100
FinSi
Repetir
4. Fin
No entiendo porqué es necesario manipular el contador de este modo, pues a mi entender, n ya secuentra en el valor necesario en el caso de retomar el bucle o en caso de mostrar el mensaje
¿Cuál es la necesidad de poner Mostrar “Se cumple lo previsto habiendo extraído”, j, “datos de un total de”, n + 99, “datos”?
Me parece que esto no es adecuado, porque de este modo se está sumando 99 al último valor de n en el bucle...
Lo mismo cuando se dice:
Mostrar “Extracción de un nuevo paquete”
n = n + 100
Si se vuelve a ingresar al bucle porque esperado=falso al finalizar el primer paquete, sin esta aclaración el bucle empezaría en n=101, con la instrucción n=n+100 se empezaría en 201...
No lo entiendo del todo... AYUDAAAAAAA!!!!!
a mi me queda asi:
INICIO
n=1
esperado = falso
Mientras esperado = falso hacer
desde i = n hasta n+99 hacer
leer Dato(i)
Si dato(i)>600 y dato(o) < 700 entonces
j=j+1
FinSi
Siguiente
Si j>100 entonces
esperado = verdadero
FinSi
Si esperado = verdadero entonces
Mostrar "Se cumple lo previsto."
Mostrar "Se extrajeron", j, "Datos con valores mayores que 600 y menores que 700 de", n, "datos totales revisados."
Sino
Mostrar "Extracción de un nuevo paquete de datos"
FinSi
Repetir
FIN