Informatica?
• Scienza della rappresentazione e
dell’elaborazione dell’informazione
ovvero
• Studio degli algoritmi che descrivono e
trasformano l’informazione
Algoritmo?
• Sequenza di passi per risolvere un
determinato problema
• Calcolatore = Esecutore di algoritmi
• Gli algoritmi sono descritti tramite
programmi scritti in linguaggi ad alto livello
e poi tradotti in linguaggio macchina
Algoritmo
• Concetti fondamentali:
– Correttezza = l’algoritmo risolve il problema in
modo completo (spesso occorre provare la
correttezza manualmente usando tecniche
matematiche)
– Efficienza = lo risolve nel modo più veloce
possibile (esistono criteri matematici di
valutazione)
Esempio: potenza
•
•
•
•
•
Problema: Calcolare a elevato alla n (a^n)
Utilizziamo le variabili N, Ris
Inizialmente Ris=1 e N=n
Algoritmo:
Fino a che N>0
Calcola Ris*a e memorizzalo in Ris
Decrementa N
• Correttezza:
• Al termine Ris=a^n
Linguaggi di Programmazione
Linguaggi per esprimere in maniera rigorosa un
algoritmo
• Linguaggio macchina (seq. Istruzioni)
• Linguaggi ad alto livello (vicini al ling. naturale)
– Esempi:
•
•
•
•
Pascal
C e C++
Java
Basic
Esempio in Pseudo Pascal
Program potenza;
Integer Ris,N,A;
Read(N);Read(A);
Ris=1;
While (N>0) do
Ris=Ris*A;
N=N-1;
Print(Ris);
Esempio
• Il precedente programma va tradotto in linguaggio
macchina (comprensibile all’elaboratore), i.e.,
viene compilato in sequenze di istruzioni
• Quando le istruzioni vengono eseguite, il
programma prende dati in ingresso (valori iniziali
di N e A) attraverso la tastiera (input) e poi stampa
il risultato sul video (valore finale di Ris) (output)
• In generale un programma può essere visto infatti
come una funzione da input ad output...
Utilizzo di un elaboratore
• Come utente:
– Uso software applicativo esistente per creare documenti
e interfacce grafiche, effettuare calcoli, navigare in rete
• Come sviluppatore:
– Creo nuovi programmi sullo strato del software
esistente
• Nuovi programmi applicativi
• Nuovi programmi di sistema (cioè che fanno funzionae il
calcolatore)
Visual Basic
Linguaggio di programmazione per lo sviluppo
di applicazioni da eseguire in un qualunque
ambiente Microsoft Windows.
VB è un’implementazione Microsoft
dell’originario linguaggio Basic
Visual Basic
Linguaggio di programmazione
• ad alto livello
• interpretato (ambiente interattivo)
• visuale
• guidato dagli eventi
Visual Basic VISUALE!!!!
•Text Box - permette di inserire e visualizzare dati
(stringhe, interi, double, etc)
•Command Botton – permette l’esecuzione di eventi
•CheckBox
•OptionButton
Processo di programmazione
in Visual Basic
• Progetto dell’applicazione
• Creazione dell’interfaccia grafica
• Aggiunta del codice agli elementi visivi
(interpretazione e compilazione)
• Esecuzione
Processo di programmazione
in Visual Basic
Un programma è costituito da
• controlli (ciascuno rappresentato da un’icona)
• istruzioni
L’interazione dell’utente con un qualunque
controllo rappresenta un evento
Ad ogni controllo sono associati diversi eventi
Processo di programmazione
in Visual Basic
Il codice di un’applicazione VB è suddiviso in
singoli blocchi definiti routine.
Una routine di eventi contiene il codice eseguito
quando viene generato un evento.
Definizioni di base
• Form: indicativo di finestra e comprende barra
del titolo, barra del menù…
• Controlli: sono le icone con le quali l’utente
interagisce ad es. pulsanti di comando, di
opzione, caselle di testo…
Form e controlli sono indicati come oggetti
Definizioni di base
A ciascun oggetto possono essere associate:
• Proprietà – le proprietà rappresentano gli attributi che
definiscono l'aspetto e varie funzionalità di ogni controllo; ad
es., la proprietà Name indica il nome con cui quel controllo è
identificato all'interno del codice; le proprietà Height e Width
indicano l'altezza e la larghezza del controllo, ecc.
• Metodi – corrispondono ad istruzioni di programma
• Eventi - "situazioni" generate dal controllo quando si verificano
certe condizioni (es. click con il mouse)
Definizioni di base
Un programma in VB può essere visto come un
insieme di oggetti, dove ad ogni oggetto è
associato un insieme di proprietà che
descrivono il comportamento dell’oggetto
stesso.
Gli oggetti sono oggetti grafici (bottoni, finestre,
text box…)
Programmazione visuale
Il codice viene associato ad una o più azioni che
vengono compiute sull’oggetto: click del
mouse, apertura di una finestra, pressione di un
tasto ecc.
Avvio di Microsoft Visual
Basic
Progetto :
- Nuovo
- Esistente
- Recente
Tipi di Dati
Integer (Valori interi -32,768 to 32,767)
Es: 0, 123, -4534
Double (Valori reali da -1.79769313486232e+308 a
-4.94065645841247E-324 negativi
4.94065645841247E-324 a
1.79769313486232e+308 positivi
Es: 0, 12.34, 0.123E+123
String Es: “Ciao”, “Inserisci il primo numero” , “”
Operatori
• +, -, *, /, Mod , \
• Su Stringhe: + oppure &
ES: “Visual” & “Basic” = VisualBasic”
Il mio primo programma
Private Sub Form_Activate()
print “Buongiorno!"
End Sub
Programma giallo/rosso
Private Sub command1_click()
text1.text = “Rosso"
End Sub
Private Sub command2_click()
text1.text = “Giallo"
End Sub
Funzioni di Input e Output
• InputBox(Prompt, Title, default_text, x-position, y-position)
Es:
a = InputBox(“Inserire Primo Numero?", “Numero", “Inserire qui il primo
numero!", 500, 700)
a= InputBox(“Numero”)
• Scelta= MsgBox (Prompt, Style Value, Title
dove style value puo’ essere:
0
vbOkOnlyOk button
1
vbOkCancelOk and Cancel buttons
etc
e scelta puo’ essere uguale a:
1 Hai premuto OK!
2 Hai premuto Cancel!
• Print
)
Programma nome/cognome
Private Sub command1_click()
dim msg as string
Msg = InputBox(“insert nome”….)
If msg <> “” then
text1.text = msg
endif
End Sub
Private Sub command2_click()
…. Cognome…
Calcolo dell’area di un
rettangolo
•
•
•
•
Leggi da input l’altezza
Leggi da input la base
Calcola l’area
Dai in output il risultato
Calcolo del perimetro di un
rettangolo
•
•
•
•
Leggi da input l’altezza
Leggi da input la base
Calcola il perimetro
Dai in output il risultato
Conversione lire in euro
• Leggi da input l’importo in lire
• Calcola il corrispettivo in euro
• Dai in output il risultato
Anno bisestile
• Leggi da input l’anno
• Verifica se è bisestile
ESEMPIO DI PROGRAMMA
Sub SOMMA( )
Dim A, B, Somma as Integer
A = InputBox("Immetti un numero")
B = InputBox(“Immetti un secondo
numero”)
Somma = A+B
Print “Somma:”; Somma
End Sub
12
start
Leggi A,B
Sub SOMMA( )
Dim A, B as Integer
A = InputBox("Immetti un
numero")
B = InputBox(“Immetti un
secondo numero”)
Somma = A + B
Somma = A+B
Stampa Somma
Print Somma
stop
End Sub
Sub Command1_Click()
Dim A, B as Integer
Proprieta’
Caption
A = InputBox(“Leggi A")
B = InputBox(“Leggi B”)
Somma = A+B
Print Somma
Prova
End Sub
OK
BLOCCHI DI FLUSSO:
BLOCCO CONDIZIONALE
F
T
condizione
Diagramma 1
Diagramma 2
ESEMPIO DI TRADUZIONE
Dim A, B, X as Integer
…….
If A = B Then
X=1
Else
X=2
Endif
…….
ESEMPIO DI TRADUZIONE
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
Annidare enunciati if
If condizione Then
Blocco di uno o più enunciati Visual Basic
Else
Blocco di uno o più enunciati Visual Basic
End if
ESEMPIO 1
Dire se un triangolo è equilatero, isoscele o scaleno
Sub Main()
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 Then
Print "Triangolo Scaleno"
End If
End Sub
ESEMPIO 2
Trasformare la propria media espressa in trentesimi in
centodecimi
Sub Main()
Dim A As Integer
A = InputBox("Dammi la tua media")
Print "La tua media espressa in centodecimi è"; A / 3*11
End Sub
BLOCCHI DI FLUSSO:
BLOCCO DI RIPETIZIONE
F
condizione
T
Diagramma 1
Ciclo While
Do While condizione
Blocco di uno o più enunciati
Loop
ESEMPIO
Contare per quanti giorni la temperatura è stata superiore ai 30 gradi
Sub Main()
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
ESEMPIO
Calcolare la media dei propri voti
Sub Main()
Dim Voto, NumeroVoti, Somma as Integer
Print “Inserisci i tuoi voti”
While Voto <> -1
Voto = InputBox (“Inserisci un voto (-1 per finire)”)
NumeroVoti = NumeroVoti + 1
Somma = Somma + Voto
Wend
Print “La tua media è”; Somma/NumeroVoti
Cicli For
For intContatore = intInizio to intFine [Step
intIncremento]
Blocco di una o più istruzioni
Next
Esempio:
For intContatore = 0 to 6 Step 2
Next
ESEMPIO
Calcolare la media dei propri voti
Sub Main()
Dim Voto, NumeroEsami, Somma, i as Integer
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
Print “La tua media è”; Somma/NumeroEsami
ESEMPIO
Calcolare se un certo anno sarà bisestile
Sub Main()
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
Esercizio: riscrivere il
Print "Anno bisestile"
Programma facendo uso
End If
di un unico IF
Else
Print "Anno Non bisestile"
End If
End Sub