Autor Tema: Duda CU00158A (Uso de contadores en bucle) curso bases programación  (Leído 4783 veces)

sergioab1985

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 13
    • Ver Perfil
Hola a todos. El ejercicio de la entrega CU00158A tiene dos resoluciones. Una está presentada (Desde - hasta - Siguiente). La otra (Mientras - Repetir)no está presentada pero se ponen aclaraciones de cómo debería ser:

· Crear una línea 1.5 i = 1.
· Cambiar la línea 2. Sería 2. Mientras i <= 35 Hacer.
· Crear una línea 2.5 i = i + 1.
· Y por último cambiar Siguiente por Repetir.


No me queda claro del todo. Yo lo hice de este modo antes de leer la resolución y me quedó el siguiente pseudocódigo:

1. INICIO
2. Leer nota(i)

2. mientras i<=35 hacer
   4. aprobados = aprobados + 1
   5. suspensos = suspensos + 1
   6. nota_10 = nota_10 + 1
   7. nota_0 = nota_0 + 1
8. repetir

11. Mostrar "Han aporobado el", porcentaje_aprobados= (aprobados * 35)/100, "% de los alumnos"
12. Mostrar "Han quedado en suspenso el", porcentaje_suspensos = (suspensos*35)/100, "% de los alumnos"
13. Mostrar "Han obtenido nota 10 un total de", nota_10, "alumnos."
14. Mostrar "Han obtenido nota 0 un total de", nota_0, "alumnos."

15. FIN

¿Porqué hay que poner una línea "i=1"? ¿No comienza por este array al leer el fichero?
¿porqué debería crear una linea "i+1"? ¿no hace este trabajo la variable contador de por si?
¿En qué parte del código irian estas líneas? sin entenderlo del todo estimo que i=1 va justo antes de ingresar a la instrucción "Mientras-hacer" y i+1 justo antes de la linea "repetir", por favor ayudenme que no lo entiendo del todo

Gracias!!!
« Última modificación: 12 de Septiembre 2014, 17:31 por Alex Rodríguez »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Duda CU00158A (Uso de contadores en bucle)
« Respuesta #1 en: 21 de Octubre 2012, 11:18 »
Hola sergio,

El pseudocódigo que tú presentas no es correcto. La instrucción leer tiene que estar dentro del bucle para a medida que va cambiando el índice i se vaya leyendo una nota. Si lo pones fuera del bucle solo se leería una vez.

La línea 1 = 1 hay que ponerla porque en un bucle mientras el valor del índice de control inicial y final hay que hacerlo explícito, igual que se hace explícito en un bucle desde ... siguiente. En el bucle desde siguiente se sabe que empezamos en 1 y terminamos en 35, pues en el mientras ... repetir también tenemos que indicar cuáles son los índices.

La línea i = i+1 hay que crearla en un bucle repetir ... mientras porque en este tipo de bucles la variable contador no se incrementa automáticamente. Esto es una diferencia con el desde... siguiente, en los bucles desde... siguiente el incremento del valor de la variable es automático, pero en otros tipos de bucles como este no es automático, tenemos que indicarlo nosotros con una instrucción específica.

La parte del código en que irían es como dices: el valor con que comienza la variable justo antes de entrar al bucle y el incremento al final de las instrucciones dentro del bucle. El pseudocódigo quedaría así:

1. Inicio [Algoritmo Notas de clase]

1.5 i = 1 [Aquí hacemos explícito que el primer índice del array es 1, de la misma manera que en el desde ... siguiente poníamos desde i=1]

 2. Mientras i<=35 Hacer [Aquí hacemos explícito que el último índice válido es 35 de la misma manera que en el desde ... siguiente poníamos ... hasta 35]

 2.1 Leer Nota(i)

 2.2 Si Nota(i) >= 5 Entonces

 Aprobados = Aprobados + 1

SiNo

Suspensos = Suspensos + 1

FinSi

 2.3 Si Nota(i) = 10 Entonces

 Dieces = Dieces + 1

FinSi

 2.4 Si Nota(i) = 0 Entonces

 Ceros = Ceros + 1

FinSi

2.5 i = i+1 [Tenemos que incrementar nosotros el índice, en el caso de un desde...siguiente este incremento es automático pero en el caso de un mientras hacer tenemos que controlarlo nosotros manualmente]

Repetir

 3. Mostrar “% de aprobados es”, (Aprobados / 35) * 100

 4. Mostrar “% de suspensos es”, (Suspensos / 35) * 100

 5. Mostrar “Obtienen un 10 un total de”, Dieces, “alumnos”
 
6. Mostrar “Obtienen un 0 un total de”, Ceros, “alumnos”

7. Fin

Finalmente recomendarte que empieces con el curso de visual basic y al mismo tiempo que estudias pseudocódigo vayas probando a hacer tus pequeños programas para probarlo, de este modo creo que verás más claro este tipo de ejercicios porque podrás probarlos tú mismo.
Responsable de departamento de producción aprenderaprogramar.com

sergioab1985

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 13
    • Ver Perfil
Re:Duda CU00158A (Uso de contadores en bucle)
« Respuesta #2 en: 21 de Octubre 2012, 14:48 »
Gracias César!!!! ahora me queda más claro.
Voy a tomar en cuenta la recomendación.

Saludos!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".