Option Explicit
' Average age of people working as 'impiegato'.
' Important: the work field is not written always in the same way. Sometimes lower case, other times upper case...
Function esercizio_1() As Double
Dim i As Integer, n As Integer
esercizio_1 = 0
n = 0
For i = 2 To 21
If LCase(Cells(i, 4)) = "impiegato" Then
esercizio_1 = esercizio_1 + Cells(i, 3)
n = n + 1
End If
Next i
esercizio_1 = esercizio_1 / n
End Function
' Minimum age of people with name starts with "m" (or "M") and surname ends with "o" (or "O").
Function esercizio_2() As Integer
Dim i As Integer
esercizio_2 = -1
For i = 2 To 21
If Left(LCase(Cells(i, 1)), 1) = "m" And Left(LCase(Cells(i, 2)), 1) = "o" And (Cells(i, 3) < esercizio_2 Or esercizio_2 = -1) Then
esercizio_2 = Cells(i, 3)
End If
Next i
End Function
' Standard deviation of people age that are students.
Function esercizio_3() As Double
Dim i As Integer, n As Integer
Dim avg As Double
avg = 0
n = 0
For i = 2 To 21
If LCase(Cells(i, 4)) = "studente" Then
avg = avg + Cells(i, 3)
n = n + 1
End If
Next i
avg = avg / n
esercizio_3 = 0
For i = 2 To 21
If LCase(Cells(i, 4)) = "studente" Then
esercizio_3 = esercizio_3 + (Cells(i, 3) - avg) ^ 2
n = n + 1
End If
Next i
esercizio_3 = esercizio_3 / n
End Function
' Number of people with age gretear than the result of previous exercize.
Function esercizio_4() As Integer
Dim i As Integer, ref As Double
ref = esercizio_3()
esercizio_4 = 0
For i = 2 To 21
If Cells(i, 3) < ref Then
esercizio_4 = esercizio_4 + 1
End If
Next i
End Function
' Number of people with age between the average age of student and "libero professionista".
Function esercizio_5() As Integer
Dim i As Integer, n_stud As Integer, n_lib_prof As Integer
Dim avg_stud As Double, avg_lib_prof As Double
avg_stud = 0
avg_lib_prof = 0
n_stud = 0
n_lib_prof = 0
For i = 2 To 21
If LCase(Cells(i, 4)) = "studente" Then
avg_stud = avg_stud + Cells(i, 3)
n_stud = n_stud + 1
ElseIf LCase(Cells(i, 4)) = "libero professionista" Then
avg_lib_prof = avg_lib_prof + Cells(i, 3)
n_lib_prof = n_lib_prof + 1
End If
Next i
avg_stud = avg_stud / n_stud
avg_lib_prof = avg_lib_prof / n_lib_prof
esercizio_5 = 0
For i = 2 To 21
If (Cells(i, 3) >= avg_stud And Cells(i, 3) <= avg_lib_prof) Or (Cells(i, 3) <= avg_stud And Cells(i, 3) >= avg_lib_prof) Then
esercizio_5 = esercizio_5 + 1
End If
Next i
End Function
Comments
0 B
|0 👍
/0 👎
0 B
|👍
/👎