Buenos días, a continuación aclaraciones y orientaciones, cualquier cosa que haga falta aclarar indícamelo y tratamos de aclararlo.
Veamos el pseudocódigo.
Lo primero que tenemos que pensar es qué variables servirán para almacenar datos de entrada, qué variables servirán para almacenar cálculos o resultados y qué variables serán variables auxiliares por ejemplo para controlar la progresión de valores en un bucle.
Las variables que tienen datos de entrada son las que requieren de una instrucción Leer (que equivaldría a leer los datos desde un archivo o pedirle los datos al usuario).
Las variables para almacenar cálculos o resultados no requieren de una instrucción leer, ya que son variables cuyo contenido definimos nosotros como programadores.
Variables que contienen los datos de entrada: personasEntran(1), personasEntran(2), ... así hasta personasEntran( 8 )
Variables que usamos para almacenar cálculos o resultados: personasTotal, transitoCero, maxTransito, media
Variables para controlar la progresión de bucles: i
Cosas incorrectas en el pseudocódigo planteado:
1) La variable personasTotal es una variable para almacenar resultados, por tanto no requiere de una instrucción Leer, ya que no es un dato "externo" al programa, sino un resultado que nosotros vamos a obtener. Por otro lado, si Leer PersonasTotal lo escribiéramos dentro del bucle, significa que se va a repetir 8 veces. Las repeticiones las necesitamos para ir realizando operaciones que necesitan ser repetidas, en este caso no tendría sentido repetir 8 veces esta instrucción.
Conclusión: la línea 2.1 no es correcta tal y como está.
2) Sería correcto (aunque no obligatorio) definir después de la línea de inicio una línea que contenga lo siguiente: personasTotal = 0. ¿Qué significaría esto? Que al empezar el programa la variable personasTotal vale cero. Esto quizás podríamos darlo por supuesto, pero si lo escribimos lo dejamos indicado para que no haya dudas. No es obligatorio, ya que suponemos que toda variable numérica inicialmente tiene valor cero.
3) Tenemos 8 datos relacionados con las personas que entran: personasEntran(1), personasEntran(2) ... por tanto tenemos que hacer 8 veces la lectura (lo cual haremos dentro del bucle). Por tanto la línea 2.1 es lógico que contenga la instrucción Leer personasEntran(i)
La línea 2.2 es correcta: en cada pasada del bucle le vamos sumando a lo que teníamos como total las personas que han entrado en esa hora.
La línea 2.3 es correcta
La línea 2.4 es correcta.
Las líneas 3, 4, 5, 6, 7, 8 son correctas.
Veamos ahora cómo podríamos plantear el código:
En primer lugar tendremos que declarar las variables que vamos a usar. Todas ellas son de tipo entero (ya que no estamos trabajando con decimales). Importante: repasar cómo se declara un array.
En el form_load (es decir, cuando cargue el formulario) tendremos que hacer lo que nos indica el enunciado: Los datos de partida se deben incorporar en el propio código al principio del programa. Por tanto tendremos que escribir cuáles son los datos de partida (los escribimos nosotros mismos porque no los vamos a leer desde un archivo). Por tanto escribiremos (tomo como valores los propuestos en el ejercicio 4):
personasEntran(1) = 0
personasEntran(2) = 32
personasEntran(3) = 47
personasEntran(4) = 22
personasEntran(5) = 0
personasEntran(6) = 31
personasEntran(7) = 0
personasEntran( 8 ) = 87
A continuación necesitaremos escribir un bucle For ... Next utilizando las variables, condicionales y un label para mostrar mensajes.
Tener en cuenta que para ir añadiendo contenido a un label sin borrar el contenido anterior tendremos que usar una sintaxis como: Label2 = Label2 & "A las " & i & " horas no entró ninguna persona" & vbCrLf
Si escribiéramos Label2 = "A las " & i & " horas no entró ninguna persona" & vbCrLf se borraría el contenido previo que tuviera el label.
Cuando termine el for, tendremos que usar labels para mostrar los resultados.
Orientación sobre el diseño del formulario:
No usaremos ningún textbox ya que no vamos a pedir datos al usuario (los datos los vamos a escribir nosotros mismos en el código como hemos indicado antes)
Se pueden usar los siguientes labels:
Label1 para mostrar un mensaje informativo y título del programa
Label2 para mostrar las horas a las que no entró ninguna persona
Label3 para mostrar el total de personas que entraron en el día
Label4 para mostrar cuántas horas no entró ninguna persona
Label5 para mostrar la hora a la que entró el mayor número de personas
Label6 para mostrar el número medio de personas
Esto es orientativo, podemos usar más o menos labels según se considere oportuno.
Saludos.