Ciao.
Andiamo per ordine.
Questo codice non ha molto senso:
codice:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
I = 0
For I = 0 To N - 1
Tipologia_Stanza(1) = "Normal"
Tipologia_Stanza(2) = "Suite"
Tipologia_Stanza(3) = "ExtraSuite"
Prezzo_notte_Adulto(1) = "40"
Prezzo_notte_Adulto(2) = "80"
Prezzo_notte_Adulto(3) = "120"
Prezzo_Children(1) = "20"
Prezzo_Children(2) = "40"
Prezzo_Children(3) = "80"
Next
End Sub
Non ti serve iterare di 0 a N-1, visto che N non è inizializzata e che il codice per riempire gli array non necessita di iterazioni. Secondo me è più corretto fare così:
codice:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Prezzo_notte_Adulto(0) = 40 'Le virgolette non servono: gli array sono di tipo decimal
Prezzo_notte_Adulto(1) = 80
Prezzo_notte_Adulto(2) = 120
Prezzo_Children(0) = 20
Prezzo_Children(1) = 40
Prezzo_Children(2) = 80
End Sub
Inoltre in VB.NET gli array sono in base zero, quindi nel tuo caso gli array dei prezzi vanno dichiarati come di indice 2 (Tipologia_Stanza(2)) perchè gli array conterranno gli elementi di indice 0, 1, 2.
Anche il codice che genera il preventivo va rivisto:
codice:
Tipologia_Stanza(I) = InputBox("inserisci in che tipo di stanza soggiorneranno", "2")
Questa riga non ha senso: hai già riempito l'array di Tipologia_Stanza. Io riscriverei tutto così:
codice:
Private Sub BtnPreventivo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPreventivo.Click
I = 0
Dim IndiceStanza As Short = 0
Do
Somma = 0
IndiceStanza = 0
Num_Adulti(I) = InputBox("Quanti adulti ci sono?")
Num_Bambini(I) = InputBox("Quanti bambini ci sono?")
Num_notti(I) = InputBox("Quante notti soggiorneranno?")
IndiceStanza = CInt(InputBox("In che tipo di stanza soggiorneranno (0 = Normal; 1 = Suite; 2 = ExtraSuite)?"))
Somma = (Prezzo_Children(IndiceStanza) * Num_Bambini(I)) + (Prezzo_notte_Adulto(IndiceStanza) * Num_Adulti(I)) * Num_notti(I)
MessageBox.Show(Somma)
I = I + 1
Scelta = InputBox("Inserire altri?")
Loop Until Scelta = "no" End Sub
Così ho anche eliminato la variabile N e l'array Tipologia_Stanza.
Spero di esserti stato di aiuto.
P.S.:Mancano anche la gestione degli errori e il controllo sull'input dell'utente: vedi se vuoi aggiungierli.