Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.Globalization
- Module Module1
- ' data una lista di stringhe trovare la stringa più lunga
- Function StringaLunga(l As List(Of String)) As String
- Dim risultato As String = l(0) ' faccio finta che la prima sia la più lunga
- For Each s In l ' percorro tutta la lista
- If s.Length > risultato.Length Then risultato = s ' se trovo una stringa più lunga la prendo
- Next
- Return risultato
- End Function
- ' data una lista di stringhe trovare quella che contiene più vocali
- Function ContaVocali(s As String) As Integer
- s = s.ToLower().Replace("è", "e").Replace("ò", "o").Replace("à", "a").Replace("ì", "i").Replace("ù", "u").Replace("é", "e") ' metto in minuscolo e rimpiazzo le accentate
- Dim contatore = 0
- For Each c As Char In s
- If c = "a" Or c = "e" Or c = "i" Or c = "o" Or c = "u" Then contatore += 1
- Next
- Return contatore
- End Function
- Function MaxVocali(l As List(Of String)) As String
- Dim risultato As String = l(0) ' faccio finta che il risultato sia la prima della lista
- Dim vocalirisultato As Integer = ContaVocali(risultato) ' conto quante vocali ci sono
- For Each s In l ' scorro la lista
- Dim vocali = ContaVocali(s)
- If vocali > vocalirisultato Then ' controllo se ci sono più vocali
- risultato = s ' prendo la stringa come candidata al risultato
- vocalirisultato = vocali ' e memorizzo anche il numero di vocali
- End If
- Next
- Return risultato
- End Function
- Function Massimo(l As List(Of Integer)) As Integer
- Dim risultato = l(0) ' il primo numero è il candidato alla vittoria
- For Each n In l ' scansiono la lista
- If n > risultato Then risultato = n ' se trovo un numero più alto, lo prendo
- Next
- Return risultato
- End Function
- Function NumeriPari(l As List(Of Integer)) As List(Of Integer)
- Dim risultato As New List(Of Integer) ' devo restituire una lista
- For Each n In l ' scansiono la lista in input
- If n Mod 2 = 0 Then risultato.Add(n) ' se trovo un numero pari, lo inserisco tra quelli da restituire
- Next
- Return risultato
- End Function
- ' data una lista di istanze della classe Coppia, calcolare il valore della lista in cui
- ' è massima la differenza tra Primo e Secondo
- Class Coppia
- Public Property Primo As Integer
- Public Property Secondo As Integer
- End Class
- Function MaxCoppia(l As List(Of Coppia)) As Coppia
- Dim risultato As Coppia = l(0)
- For Each c In l
- If c.Primo - c.Secondo > risultato.Primo - risultato.Secondo Then
- risultato = c
- End If
- Next
- Return risultato
- End Function
- Sub Main()
- Dim l As New List(Of String) From {
- "arma virumque cano",
- "lorem ipsum dolor sit amet",
- "trentatre trentini tornavano da trento",
- "tutti e trentatré trotterellando",
- "le aiuole e le peonie al sole"
- }
- Dim sl As String = StringaLunga(l)
- Dim sv As String = MaxVocali(l)
- Console.WriteLine("Stringa più lunga: {0}", sl)
- Console.WriteLine("Stringa con più vocali: {0}", sv)
- ' data una lista di numeri individuare il più grande
- Dim n As New List(Of Integer) From {423, 645, 5986, 21345, 9, 1423, 985, 5243, 609, 243, 4689, 465, 8467, 1234, 46}
- Dim max As Integer = Massimo(n)
- Console.WriteLine("Numero più alto: {0}", max)
- ' data una lista di numeri stampare solo i numeri pari
- Dim pari As List(Of Integer) = NumeriPari(n)
- Console.WriteLine("Numeri pari presenti nella lista:")
- For Each x In pari
- Console.WriteLine(x)
- Next
- Dim lc As New List(Of Coppia) From {
- New Coppia With {.Primo = 10, .Secondo = 30},
- New Coppia With {.Primo = -10, .Secondo = 50},
- New Coppia With {.Primo = 410, .Secondo = 130},
- New Coppia With {.Primo = 140, .Secondo = 330}
- }
- Dim r As Coppia = MaxCoppia(lc)
- Console.WriteLine("Coppia: ({0},{1})", r.Primo, r.Secondo)
- End Sub
- End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement