Sei sulla pagina 1di 5

Esercizio 1

Un’agenzia di viaggi deve preparare una bozza di catalogo con N viaggi d’occasione. Di ogni viaggio sono noti:
destinazione, costo, numero posti disponibili. Scegliere la struttura dati più idonea, caricarla e scrivere un programma
in grado di eseguire le seguenti richieste:
1. Caricare e visualizzare i dati in opportune listbox
2. Inserito da tastiera l’importo che si è disponibili e spendere, visualizzare le destinazioni che hanno un costo
inferiore o uguale (ricerca con ciclo for)
3. Inserita da tastiera una destinazione, visualizzarne il costo e il numero di posti disponibili, mandando un messaggio
se non è presente nella lista (ricerca con trovato)
4. Ordinare i viaggi rispetto alla destinazione in ordine alfabetico e visualizzare l’elenco ottenuto con relativo costo
e posti disponibili nelle listbox.

Esercizio 2
Un piccolo comune di provincia si è dotato di alcuni rilevatori di velocità e desidera automatizzare alcune operazioni.
Siano forniti in input 2 vettori paralleli contenenti rispettivamente il numero di targa e la velocità registrata del veicolo.
Tali dati si riferiscono ad N veicoli circolanti in un tratto di strada del comune, in un determinato giorno. Scrivere un
programma che, dato N in input, dopo aver caricato e visualizzato i vettori in due listbox, permetta di gestire le seguenti
richieste:
1. Conta: contare e mostrare quanti veicoli hanno superato il limite di velocità, fornito in input
2. Infrazioni: mostrare la targa del veicolo con velocità massima
3. Targa-veicoli: data la targa di un veicolo, visualizzarne la velocità, mandando un messaggio se non si trova.

Esercizio 3
I prodotti trattati in un’erboristeria sono memorizzati in due vettori paralleli: nome del medicinale, prezzo di vendita.
Dopo aver caricato gli N prodotti nei vettori, scrivere un programma che permetta di gestire le seguenti richieste:
1. Nome-prezzo minimo: ordinare i vettori (bubble sort) mantenendo il parallelismo dei dati, quindi mostrare il
nome del medicinale con prezzo minore
2. Economici: contare e visualizzare quanti medicinali hanno il prezzo minore di una cifra data in input
3. Classe-prodotti: dato il nome di un prodotto, visualizzarne il prezzo, mandando un messaggio se il prodotto non
si trova
4. Media: calcolare e mostrare il prezzo medicinali.

Esercizio 4
Dati 3 vettori con nomi di bambini di una scuola, età e sesso
1. Il nome del bambino/a di età massima
2. L’età media delle femmine
3. Ordinare i vettori in base all’età dei bimbi (dal maggiore al minore)
4. Dato il nome di un bimbo, visualizzare la sua età ed il suo sesso, mandando un messaggio se non si trova il nome.
Public Class Form1
Dim N As Integer
Dim i As Integer
Dim Imp As Integer
Dim D(50) As String
Dim P(50) As Integer
Dim C(50) As Integer
Dim Trovato As Boolean
Dim Chiave As String
Private Sub BtnCarica_Click(sender As Object, e As EventArgs) Handles BtnCarica.Click
N = TxtN.Text
For i = 0 To N - 1
D(i) = InputBox(“Scrivi la destinazione del “ + Str(i + 1) + “° viaggio”,
“Destinazione”)
P(i) = Val(InputBox(“Quanti sono i posti disponibili per “ + D(i) + ”?”, “Posti
disponibili”))
C(i) = Val(InputBox(“Quanto costa il viaggio per “ + D(i) + “?”, “Costo del viaggio”))
ListaD.Items.Add(D(i))
ListaP.Items.Add(P(i))
ListaC.Items.Add(C(i))
Next
End Sub

Private Sub BtnTrova_Click(sender As Object, e As EventArgs) Handles BtnTrova.Click


Imp = TxtImp.Text
For i = 0 To N - 1
If Imp >= C(i) Then
ListaDest.Items.Add(D(i))
End If
Next
End Sub

Private Sub BtnTrovaD_Click(sender As Object, e As EventArgs) Handles BtnTrovaD.Click


Chiave = TxtDest.Text
Trovato = False
i = 0
Do
If Chiave = D(i) Then
Trovato = True
TxtPD.Text = P(i)
TxtCV.Text = C(i)
Else
i = i + 1
End If
Loop Until Trovato = True Or i = N
If Trovato = False Then
Chiave = MsgBox("La destinazione non è disponibile", "Cerca destinazione")
End If
End Sub
End Class
Public Class Form1
Dim N As Integer
Dim V(50) As Integer
Dim T(50) As String
Dim LV As Integer
Dim Chiave As String
Dim Trovato As Boolean
Dim VM As Integer
Dim i As Integer
Dim Cont As Integer
Dim Max As Integer

Private Sub BtnCarica_Click(sender As Object, e As EventArgs) Handles BtnCarica.Click


N = Val(TxtN.Text)
LV = Val(TxtLV.Text)
For i = 0 To N - 1
T(i) = InputBox("Scrivi il numero di targa del " + Str(i + 1) + "° veicolo", "Targa")
V(i) = Val(InputBox("Inserisci la velocità del veicolo " + T(i), "Velocità"))
ListaTarga.Items.Add(T(i))
ListaV.Items.Add(V(i))
Next
Cont = 0
i = 0
For i = 0 To N - 1
If V(i) > LV Then
ListaLimite.Items.Add(T(i))
Cont = Cont + 1
End If
Next
TxtNVL.Text = Cont
Max = -32678
i = 0
For i = 0 To N - 1
If V(i) > Max Then
Max = V(i)
End If
Next
TxtVM.Text = Max
End Sub

Private Sub BtnTrova_Click(sender As Object, e As EventArgs) Handles BtnTrova.Click


Chiave = TxtTarga.Text
i = 0
Trovato = False
Do
If Chiave = T(i) Then
Trovato = True
TxtVC.Text = V(i)
Else
i = i + 1
End If
Loop Until Trovato = True Or i = N
If Trovato = False Then
Chiave = MsgBox("La targa non è presente")
End If
End Sub
End Class
Public Class Form1
Dim N As Integer
Dim i As Integer
Dim Nome(50) As String
Dim Età(50) As Integer
Dim Sesso(50) As String
Dim Cont As Integer
Dim EF As Integer
Dim EM As Integer
Dim Chiave As String
Dim Trovato As Boolean
Dim Ordinato As Boolean
Dim Sup As Integer
Dim ComodoN As String
Dim ComodoE As Integer
Dim ComodoS As String
Private Sub BtnCarica_Click(sender As Object, e As EventArgs) Handles BtnCarica.Click
N = TxtN.Text
For i = 0 To N - 1
Nome(i) = InputBox("Inserisci il nome del " + Str(i + 1) + "° alunno", "Nome alunno")
Età(i) = Val(InputBox("Inserisci l'età di " + Nome(i), "Età alunno"))
Sesso(i) = InputBox("inserisci il sesso di " + Nome(i) + " (F/M)", "Sesso dell'alunno")
ListaNomi.Items.Add(Nome(i))
ListaEtà.Items.Add(Età(i))
ListaSesso.Items.Add(Sesso(i))
Next
Cont = 0
EF = 0
i = 0
For i = 0 To N - 1
If Sesso(i) = "F" Then
Cont = Cont + 1
EF = EF + Età(i)
End If
Next
EM = EF / Cont
TxtMF.Text = EM
End Sub

Private Sub BtnOrdina_Click(sender As Object, e As EventArgs) Handles BtnOrdina.Click


Sup = N
Ordinato = False
i = 0
Do While (Sup > 1 And Ordinato = False)
Ordinato = True
For i = 0 To Sup - 1
If Età(i) > Età(i + 1) Then
ComodoE = Età(i)
Età(i) = Età(i + 1)
Età(i + 1) = ComodoE
ComodoN = Nome(i)
Nome(i) = Nome(i + 1)
Nome(i + 1) = ComodoN
ComodoS = Sesso(i)
Sesso(i) = Sesso(i + 1)
Sesso(i + 1) = ComodoS
End If
Next
Sup = Sup - 1
Loop
End Sub

Private Sub BtnTrova_Click(sender As Object, e As EventArgs) Handles BtnTrova.Click


i = 0
Chiave = TxtChiave.Text
Trovato = False
Do
If Chiave = Nome(i) Then
Trovato = True
TxtEA.Text = Età(i)
TxtSA.Text = Sesso(i)
Else
i = i + 1
End If
Loop Until trovato = True Or i = N
If Trovato = False Then
Chiave = MsgBox("L'alunno non è presente")
End If
End Sub

Private Sub BtnCancella_Click(sender As Object, e As EventArgs) Handles BtnCancella.Click


ListaNomi.Items.Clear()
ListaEtà.Items.Clear()
ListaSesso.Items.Clear()
End Sub
End Class