CORSO LAUREA MAGISTRALE IN SCIENZE
E TECNOLOGIE DELLA PRODUZIONE
ANIMALE
Tecnologie Informatiche ed
Elettroniche per le Produzioni
Animali
(corso TIE)
Massimo Lazzari
Scienze veterinarie per la salute,
la produzione animale
e la sicurezza alimentare - VESPA
Università degli Studi di Milano
CORSO LAUREA MAGISTRALE IN SCIENZE E
TECNOLOGIE DELLA PRODUZIONE ANIMALE
Software – Strutture di Controllo
TIE per le Produzioni Animali
Massimo Lazzari
Scienze veterinarie per la salute,
la produzione animale
e la sicurezza alimentare - VESPA
Università degli Studi di Milano
DEFINIZIONI
Private sub calcolaaddizione_click()
Dim a,b,c as integer
A=val(…..)
B=val(…..)
C = A+B
End Sub
PROBLEMA
 Diagrammi a
blocchi
 Pseudocodifica
ALGORITMO
PROGRAMMA
LINGUAGGI di
PROGRAMMAZIONE
DEFINIZIONI
La successione ordinata di passi
elementari che portano alla
soluzione di un problema prende
il nome di ALGORITMO.
MA …
Un algoritmo, per essere definito tale, deve avere le seguenti
caratteristiche:
1. deve possedere un numero finito di passi
2. deve essere comprensibile e non ambiguo per chi ne usufruisce
3. deve risolvere tutti i problemi di una specifica CLASSE
(si definisce CLASSE la totalità dei problemi con le stesse
caratteristiche, p.e.
la somma di 2 numeri)
4. a parità di condizioni iniziali (ossia con gli stessi dati di input )
deve fornire gli stessi risultati ( ossia gli stessi dati di output)
DEFINIZIONI
Gli algoritmi possono essere rappresentati sostanzialmente in 2 modi:
 in modo verbale, utilizzando cioè termini e parole del linguaggio comune,
utilizzando cioè la cosiddetta pseudocodifica
 in modo grafico, utilizzando cioè i cosiddetti diagrammi a blocchi (flow chart)
che prevedono la seguente simbologia:
Inizio
Fine
Blocchi di inizio e fine
algoritmo
Blocco di
assegnazione/elaborazione p.e.
a  b oppure c  a+ b
Blocco per l’introduzione e
la visualizzazione dei dati
Blocco decisionale per
prendere strade diverse
all’interno dell’algoritmo
DEFINIZIONI
Un algoritmo può essere costituito
da passi elementari
• Lettura dati / scrittura dati (operazioni di I/O)
• Operazioni di assegnazione/elaborazione
OPPURE
da passi strutturati (Complessi) / Strutture di Programmazione
• SEQUENZA
• SELEZIONE
• ITERAZIONE
STRUTTURE DI CONTROLLO
1 Strutture di controllo fondamentali
1.1 Sequenza
1.2 Goto
2 Strutture di controllo della programmazione
strutturata
2.1 Alternativa
2.1.1 Alternativa if-then e if-then-else
2.1.2 L'alternativa case
2.2 Iterazione
2.2.1 Ciclo for
2.2.2 Ciclo loop-until
2.2.3 Ciclo while
2.2.4 Varianti di while e loop-until
SEQUENZA
La sequenza è la struttura di controllo
fondamentale di qualsiasi linguaggio
imperativo, inclusi i linguaggi macchina.
Stabilisce l'ordine in cui le istruzioni presenti
nel testo del programma devono essere
eseguite a tempo di esecuzione. Di norma,
non ha una espressione sintattica esplicita:
invece è data dalla semplice successione
delle istruzioni; in tal caso, la macchina
astratta del linguaggio in uso le esegue in
sequenza, una dopo l'altra.
In senso più generale si tratta di una
successione di passi elementari o
complessi.
...........
A=B+1
C=B*4
D=B mod 5
.........
GOTO
Insieme alla sequenza, il goto (vai a) è la
struttura di controllo più semplice. Il significato
generale del goto è quello di "salto" ovvero far
"passare" il controllo a una istruzione
specificata, che può trovarsi in un
punto qualsiasi del programma. Il goto ammette
sempre anche (o solo) una forma condizionata,
il cui significato può essere parafrasato come
segue: "se è vera una condizioneC, vai
alla istruzione I".
ALTERNATIVA
La struttura selettiva, detta anche selezione,
è un passo elaborativo che prevede l’esecuzione
di istruzioni diverse
in base al valore di verità di una certa condizione.
Tale struttura può essere di 2 tipi:

a 1 via
 a 2 vie
ALTERNATIVA
Struttura selettiva a 1 via
IF condizione then
Istruzione 1
Istruzione 2
End if
Struttura
selettiva a 2 vie
MENU’ PREZZO FISSO CON
…
2 OPZIONI:
IF condizione then
Se siedi al tavolo:
Istruzione 1
primo piatto pasta
secondo pesce;
Istruzione 2
Altrimenti
else
primo piatto zuppa
istruzione 3
secondo cotechino
istruzione 4
End if
Ex: MENU’ A PREZZO FISSO
CON 1 OPZIONE
Se ti siedi al tavolo:
primo piatto pasta
secondo pesce
ALTERNATIVA
L'alternativa case può essere assimilata a una catena di
if-then-else con certe restrizioni. In questo caso, la scelta
di uno fra N istruzioni o blocchi alternativi viene fatta sulla
base del valore di una determinata variabile o
espressione, normalmente di tipo intero. Essa può essere
parafrasata come segue: "valuta il valore N; nel caso in
cui il suo valore sia V1, esegui I1; nel caso in cui sia V2,
esegui I2 (ecc.)".
Struttura selettiva
case
MENU’ LIBERO CON 4 PRIMI
case posizione_nel_Menu
A SCELTA:
0: non mangi
0 – SOLO COPERTO
1: spaghetti;
1 – SPAGHETTI
2: penne;
3: agnolotti;
2 – PENNE
4: ravioli;
3 – AGNOLOTTI
end;
4 - RAVIOLI
STRUTTURA ITERATIVA
La struttura iterativa, detta anche ciclo o iterazione,
è un passo elaborativo che prevede la ripetizione
di un certo numero di istruzioni
fino a che una certa condizione cambia di stato.
Tale struttura può essere di 3 tipi:
•soggetta a un numero n di ripetizioni
•a condizione finale
•a condizione iniziale
STRUTTURA ITERATIVA
 Struttura iterativa a N RIPETIZIONI
ospite= 0
MENU’ AZIENDALE A SCELTA FISSA:
A tutti i 100 ospiti chiedi:
primo piatto pasta ?
secondo pesce ?
for ospite = 1 to 100
Istruzione 1
Istruzione 2
Istuzione 3
end
Se gli ospiti sono meno di 100, continui a chiedere e fai la figura del ….
Se gli ospiti sono più di 100, non chiedi a chi c’è seduto e fai la figura del …
FUNZIONA NEI PRANZI NUZIALI DOVE SI CONOSCE IL NUMERO INIZIALE
Meglio ancora funziona per apparecchiare i tavoli prima di cominciare a
servire
STRUTTURA ITERATIVA
 Struttura iterativa a condizione finale
Ospite = 0
INIZIA:
Ospite = ospite +1
primo piatto pasta ?
secondo pesce ?
Fino a che ci sono ospiti al tavolo che
rispondono
Do
Istruzione 1
Istruzione 2
Istuzione 3
Loop until condizione
STRUTTURA ITERATIVA
Struttura iterativa a a condizione iniziale
Ospite = 0
Fino a quando trovi un ospite a tavola
che vuol mangiare:
Ospite = ospite +1
primo piatto pasta ?
secondo pesce ?
Ripeti dall’inizio
Do while condizione
Istruzione 1
Istruzione 2
Istuzione 3
Loop
TIPI di DATI sono classificati in due
categorie:
• tipi elementari (o tipi semplici) in cui i
dati non sono costituiti da altri dati, si tratta
cioè di dati atomici;
• tipi strutturati, in cui i dati sono
rappresentati da aggregazioni dalle quali è
possibile estrarre i singoli dati tramite
appropriate operazioni.
Ogni linguaggio di programmazione prevede
alcuni tipi di dati
sia semplici che strutturati (tipi primitivi).
Per esempio in Visual Basic i TIPI ELEMENTARI o SEMPLICI sono:
INTERO
REALE
CARATTERE
BOOLEANO
(Dim A as integer)
(Dim A as single, Dim B as double)
(Dim A as char)
(DIm A as boolean)
Le VARIABILI SEMPLICI sono entità del tipo specificato associate
a una locazione di memoria la cui lunghezza è stabilita dal tipo con un NOME
e un CONTENUTO.
In Visual Basic i TIPI ELEMENTARI o SEMPLICI predefiniti sono:
INTERO
REALE
CARATTERE
BOOLEANO




Dim A as integer
Dim A as single, Dim B as double
Dim A as char
DIm A as boolean
Le VARIABILI SEMPLICI sono entità del tipo specificato associate
a una locazione di memoria la cui lunghezza è stabilita dal tipo con un NOME
e un CONTENUTO.
I dati strutturati (STRUTTURA di DATI)
corrispondono invece ad un raggruppamento di dati
organizzati in base a un criterio, così da poter essere
considerati come un unico oggetto.
In Visual Basic i TIPI di DATI STRUTTURATI predefiniti sono:
VETTORE (o ARRAY)
RECORD


Dim A(1 to 10) as integer
…………….
Un VETTORE o ARRAY (a una dimensione) è una struttura di dati di tipo
SEQUENZIALE, ossia gli elementi componenti sono disposti uno di fianco
all’altro
costituita da un insieme di elementi OMOGENEI tra di loro
individuabili mediante un INDICE che indica la posizione del singolo
elemento nella struttura.
Il vettore ha un NOME COLLETTIVO mentre ogni elemento ha un NOME
INDIVIDUALE dato dal nome collettivo seguito tra parentesi da un indice.
DIM V(1 TO 10) as INTEGER
V
5
-2
0
5
13
-9
11
10
5
18
1
2
3
4
5
6
7
8
9
10
Ci si riferisce al singolo elemento con la sintassi
V(valore dell’indice)
V(1) contiene il dato intero 5
V(2) contiene il dato intero -2
V(3) contiene il dato intero ……..
V(4) contiene il dato intero ……..
V(5) contiene il dato intero ……..
V(6) contiene il dato intero ……..
V(7) contiene il dato intero ……..
V(8) contiene il dato intero ……..
V(9) contiene il dato intero ……..
V(10) contiene il dato intero ……..
Scarica

struttura iterativa - Web server per gli utenti dell`Università degli