Upload
sansone-de-rossi
View
216
Download
1
Embed Size (px)
Citation preview
12
ESEMPIO DI PROGRAMMA
Sub SOMMA( )Dim A, B, Somma as IntegerA = InputBox("Immetti un numero")B = InputBox(“Immetti un secondo
numero”)Somma = A+BPrint “Somma:”; Somma
End Sub
Somma = A + B
start
Stampa Somma
Leggi A,B
stop
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
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
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
condizioneFT
Serve ad effettuare operazioni alternative:
If condizione Then
Blocco istruzioni
Else
Blocco istruzioni End if
Enunciato if (1)
ESEMPIO DI TRADUZIONE
Dim A, B, X as Integer
…….
If A = B Then
X = 1
Else
X = 2
Endif
…….
ESEMPIO 1.1Se 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
If condizione1 And condizione2 Then
Blocco istruzioni
Else
Blocco istruzioni End if
N.B. Si possono mettere in And anche più di 2 condizioni.
Enunciato if (2)
If condizione1 Or condizione2 Then
Blocco istruzioni
Else
Blocco istruzioni End if
N.B. Si possono mettere in Or anche più di 2 condizioni
Enunciato if (3)
If condizione1 Then
if condizione2 ThenBlocco istruzioni
ElseBlocco istruzioni
End ifElse
Blocco istruzioni
End if
Annidare enunciati if (1)
If condizione Then
Blocco di uno o più enunciati Visual Basic
Else
Blocco di uno o più enunciati Visual Basic
End if
ESEMPIO 1.2Se 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 = bonusElse
bonus = 50 Text1.text = bonus End ifEnd if
If condizione1 Then
Blocco di uno o più enunciati Visual Basic
Elseif condizione2 Then
Blocco di uno o più enunciati Visual Basic
End if
Annidare enunciati if (2)
ESEMPIO 2Dire 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 3Contare 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ù istruzioniNext
Es.For intContatore = 0 to 6 Step 2Next
ESEMPIO 4Calcolare la media dei propri voti
Private Sub Command1_Click()Dim Voto, NumeroEsami, Somma, i as IntegerDim Media as DoublePrint “Inserisci i tuoi voti”Somma = 0numeroEsami=inputBox(“Inserisci numero esami”) For i=1 to NumeroEsami
Voto = InputBox (“Inserisci un voto ”) Somma = Somma + Voto NextMedia = Somma/NumeroEsamiPrint “La tua media è”; MediaEndSub
ESEMPIO 5Calcolare se un certo anno sarà bisestilePrivate 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 Else Print "Anno Non bisestile" End IfEnd Sub
Esercizio: riscrivere ilProgramma 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.