A = InputBox("Immetti un numero") Sub SOMMA( ) Dim A, B as Integer A = InputBox("Immetti un numero") B = InputBox(“Immetti un secondo numero”) Somma = A+B Print Somma End Sub start Leggi A,B Somma = A + B Stampa Somma stop
Proprieta’ Caption Prova OK Sub Command1_Click() Dim A, B as Integer A = InputBox(“Leggi A") B = InputBox(“Leggi B”) Somma = A+B Print Somma End Sub Proprieta’ Caption Prova OK
Funzioni di Input/Output InputBox serve a prendere i dati da input. MsgBox serve a mandare messaggi in output. Print serve a “stampare” il risultato in output.
BLOCCHI DI FLUSSO: BLOCCO CONDIZIONALE Diagramma 1 Diagramma 2 condizione F T
Enunciato if (1) Serve ad effettuare operazioni alternative: If condizione Then Blocco istruzioni Else End if
ESEMPIO DI TRADUZIONE ……. If A = B Then X = 1 Else X = 2 Endif Dim A, B, X as Integer ……. If A = B Then X = 1 Else X = 2 Endif
ESEMPIO 1.1 Private Sub Command1_Click() Dim vendite, bonus as Integer Se le vendite sono maggiori di 10000 e le ore lavorative maggiori di 40 assegna un bonus di 100. Private Sub Command1_Click() Dim vendite, bonus as Integer vendite = InputBox("Immetti il totale delle vendite") If vendite > 10000 Then bonus =100 Else msgbox(“lavora di più!!!”) End if End Sub
Enunciato if (2) If condizione1 And condizione2 Then Blocco istruzioni Else End if N.B. Si possono mettere in And anche più di 2 condizioni.
Enunciato if (3) If condizione1 Or condizione2 Then Blocco istruzioni Else End if N.B. Si possono mettere in Or anche più di 2 condizioni
Annidare enunciati if (1) If condizione1 Then if condizione2 Then Blocco istruzioni Else End if If condizione Then Blocco di uno o più enunciati Visual Basic Else End if
ESEMPIO 1.2 Private Sub Command1_Click() Se le vendite sono maggiori di 10000 e le ore lavorative maggiori di 40 assegna un bonus di 100, altrimenti se le ore sono meno di 40, assegna metà bonus (50). Private Sub Command1_Click() Dim vendite, bonus, oreLavoro as Integer vendite = InputBox("Immetti il totale delle vendite") oreLavoro = InputBox("Immetti ore lavorative") If vendite > 10000 Then If oreLavoro > 40 Then bonus =100 Text1.text = bonus Else bonus = 50 End if
Annidare enunciati if (2) If condizione1 Then Blocco di uno o più enunciati Visual Basic Elseif condizione2 Then End if
ESEMPIO 2 Dim A, B, C As Integer A = InputBox("Inserisci il lato A") Dire se un triangolo è equilatero, isoscele o scaleno Private Sub Command1_Click() Dim A, B, C As Integer A = InputBox("Inserisci il lato A") B = InputBox("Inserisci il lato B") C = InputBox("Inserisci il lato C") If A = B And B = C Then Print "Triangolo Equilatero" ElseIf A = B Or B = C Or A = C Then Print "Triangolo Isoscele" End If End Sub
BLOCCHI DI FLUSSO: BLOCCO DI RIPETIZIONE Diagramma 1 condizione T F
Ciclo While Serve a ripetere un’istruzione (o un blocco di istruzioni) fino a quando una certa condizione rimane vera. Il numero di volte che l’istruzione viene ripetuta non è noto a priori, ma dipende dalla condizione. Do While condizione Blocco di uno o più enunciati Loop
ESEMPIO 3 Contare per quanti giorni la temperatura è stata superiore ai 30 gradi Private Sub Command1_Click() Dim Conta, Temperatura As Integer Conta = 0 Temperatura = 0 Print "Inserisci una serie di temperature quotidiane (terminata da -400)" Do While Temperatura <> -400 Temperatura = InputBox("Dammi un valore di temperatura") If Temperatura > 30 Then Conta = Conta + 1 End If Loop Print "Il numero totale di giorni afosi è "; Conta End Sub
Cicli For Serve a ripetere un’istruzione (o un blocco di istruzioni) un numero x di volte, dove x è un numero noto a priori. For intContatore = intInizio to intFine [Step intIncremento] Blocco di una o più istruzioni Next Es. For intContatore = 0 to 6 Step 2
ESEMPIO 4 Calcolare la media dei propri voti Private Sub Command1_Click() Dim Voto, NumeroEsami, Somma, i as Integer Dim Media as Double Print “Inserisci i tuoi voti” Somma = 0 numeroEsami=inputBox(“Inserisci numero esami”) For i=1 to NumeroEsami Voto = InputBox (“Inserisci un voto ”) Somma = Somma + Voto Next Media = Somma/NumeroEsami Print “La tua media è”; Media EndSub
ESEMPIO 5 Calcolare se un certo anno sarà bisestile Private Sub Command1_Click() Dim Anno As Integer Anno = InputBox("Inserisci l'anno") If Anno Mod 4 = 0 Then If Anno Mod 100 = 0 And Anno Mod 400 <> 0 Then Print "Anno Non Bisestile" Else Print "Anno bisestile" End If Print "Anno Non bisestile" End Sub Esercizio: riscrivere il Programma facendo uso di un unico IF
Esercizio da svolgere Si scriva un programma in Visual Basic che letti da input l’area e l’altezza di un rettangolo, calcoli il triplo dell’area. Si ricorda che l’area del rettangolo è data da base* altezza.