61
Aprender a programar desde cero / Re:Curso bases de la programación nivel I ejercicio 8 semana 7 bucles y arrays
« en: 12 de Septiembre 2016, 08:24 »
Con lo visto hasta ahora habremos alcanzado la solución al ejercicio, que puede ser un código similar a este:
En el desarrollo de este código hemos visto algo importante: el desarrollo paso a paso e incremental de un programa. Cuando un programa tiene cierta complejidad puede ser preferible dividirlo en partes. A su vez, cada parte se puede subdividir en pasos. El grado de subdivisión necesario depende de la complejidad del programa y de la experiencia del programador. Cada vez que damos un paso tenemos que comprobar que todo sea correcto antes de dar el siguiente paso.
Para quien quiera practicar por su cuenta, planteo una posible modificación (con la que no deberíamos tener problema), que consistiría en modificar el programa para que se cumplan estas premisas:
a) Utilizar índices de 0 a 7 en lugar de 1 a 8
b) Mostrar todos los mensajes sobre un único label (es decir, siempre usar el mismo label e ir ampliando progresivamente sus contenidos).
Saludos.
Código: [Seleccionar]
'Estadística de personas que entran en un supermercado en las 8 horas que permanece abierto
Option Explicit On
Public Class Form1
REM Declaración de variables
Dim TotalPersonasDia As Integer
Dim PersonasEntranHora(8) As Integer
Dim HorasNoEntraronPersonas As Integer
Dim HoraMaximaAfluencia As Integer
Dim MaximaAfluenciaHoraria As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Text = "Estadística de personas que entran en un supermercado en las 8 horas que permanece abierto"
Dim Contador As Integer
PersonasEntranHora(1) = 0
PersonasEntranHora(2) = 32
PersonasEntranHora(3) = 47
PersonasEntranHora(4) = 22
PersonasEntranHora(5) = 0
PersonasEntranHora(6) = 31
PersonasEntranHora(7) = 0
PersonasEntranHora(8) = 87
For Contador = 1 To 8
Label1.Text = Label1.Text & " En la hora " & Contador & " entraron en el supermercado " & PersonasEntranHora(Contador) & " personas" & vbCrLf
TotalPersonasDia = TotalPersonasDia + PersonasEntranHora(Contador)
If PersonasEntranHora(Contador) = 0 Then
HorasNoEntraronPersonas = HorasNoEntraronPersonas + 1
Label4.Text = Label4.Text & " En la hora " & Contador & " No entraron personas en el supermercado " & vbCrLf
End If
If PersonasEntranHora(Contador) > MaximaAfluenciaHoraria Then
MaximaAfluenciaHoraria = PersonasEntranHora(Contador)
HoraMaximaAfluencia = Contador
End If
Next Contador
Label2.Text = " El total de personas que entraron en el día en el supermercado fue de " & TotalPersonasDia
Label3.Text = " El número de horas en que no entraron personas fue de " & HorasNoEntraronPersonas
Label5.Text = " La máxima afluencia de personas se dio en la hora " & HoraMaximaAfluencia
Label6.Text = " El número de personas que entraron en el supermercado en la hora de máxima afluencia fue de " & MaximaAfluenciaHoraria
Label7.Text = " La media de personas que entraron en el supermercado por hora fue de " & TotalPersonasDia / 8
End Sub
End Class
En el desarrollo de este código hemos visto algo importante: el desarrollo paso a paso e incremental de un programa. Cuando un programa tiene cierta complejidad puede ser preferible dividirlo en partes. A su vez, cada parte se puede subdividir en pasos. El grado de subdivisión necesario depende de la complejidad del programa y de la experiencia del programador. Cada vez que damos un paso tenemos que comprobar que todo sea correcto antes de dar el siguiente paso.
Para quien quiera practicar por su cuenta, planteo una posible modificación (con la que no deberíamos tener problema), que consistiría en modificar el programa para que se cumplan estas premisas:
a) Utilizar índices de 0 a 7 en lugar de 1 a 8
b) Mostrar todos los mensajes sobre un único label (es decir, siempre usar el mismo label e ir ampliando progresivamente sus contenidos).
Saludos.