VARIABILI
Nella precedente lezione abbiamo usato delle variabili all’interno
dei flowchart. Possiamo pensare ad una variabile come ad un
“contenitore” di valori identificato da un nome
Supponiamo di avere una variabile chiamata a
a
L’esecuzione dell’assegnamento a=5 provoca l’inserimento del
valore numerico 5 all’interno del “contenitore”
a
BIOINFO3 - Lezione 17
5
1
ASSEGNAMENTI A VARIABILI
L’esecuzione dell’assegnamento a=a+1 comporta
In questo caso a e` una variabile scalare, cioe` contiene un solo valore
1. Il calcolo dell’espressione a+1, ovvero
- leggere il valore della variabile a
- sommare 1 a tale valore
2. Assegnamento del risultato dell’espressione alla variabile a
a
5
a+1= 5+1= 6
a
BIOINFO3 - Lezione 17
6
1.
2.
2
TIPO DELLE VARIABILI
Le variabili possono contenere qualsiasi tipo di dato ad esempio
numeri interi, reali, valori logici (booleani: VERO o FALSO),
stringhe alfanumeriche, date, puntatori ad altre variabili, ecc…
ed in alcuni linguaggi anche delle strutture dati molto complesse.
nome
data
Mario
2003-03-17
In alcuni linguaggi è necessario “dichiarare” le variabili prima
del loro uso, specificando il nome ed il tipo, che non è più
modificabile. Il loro valore, fino al primo assegnamento, è
INDEFINITO. Altri linguaggi (es. Perl) invece sono definiti
typeless e permettono di assegnare ad una variabile anche tipi
diversi di dati (es. prima un numero, poi una stringa) ed il valore
di una variabile non ancora utilizzata è 0 o “” (stringa vuota)
BIOINFO3 - Lezione 17
3
STRUTTURE DATI
È frequente che in un algoritmo (programma) si debbano
elaborare degli insiemi di dati in qualche modo correlati tra di
loro.
Per questa ragione sono state inventate alcune strutture dati, che
raggruppano questi insiemi di dati sotto un unico nome,
permettendo di trattarli nel loro complesso o singolarmente.
Vedremo:
•ARRAY
•ARRAY ASSOCIATIVI
•LISTE
BIOINFO3 - Lezione 17
4
ARRAY
Possiamo pensare ad un array come ad un insieme di variabili
aventi lo stesso nome ma identificate singolarmente da un indice
numerico
a
5 2 3 8 7
a[0]a[1]a[2]a[3]a[4]
nomi
Maria
nomi[0]
Giorgio Luca
nomi[1]
nomi[2]
In alcuni linguaggi è necessario dichiarare gli array prima
dell’uso, specificandone nome, numero di elementi e loro tipo (es.
un array chiamato “nomi” di 3 elementi di tipo stringa). In altri
linguaggi (Perl ad es.) ciò non è necessario ed è possibile in ogni
momento aggiungere nuovi elementi (anche di tipo diverso!)
BIOINFO3 - Lezione 17
5
RIFERIMENTI AD UN ARRAY
Alcuni linguaggi permettono di riferirsi all’intero array (per
assegnare dei valori simultaneamente a tutte le celle o per
ricavare il valore di tutte le celle semplicemente usandone il nome
a=(5,2,3,8,7)
a
nomi=(‘Maria’,’Giorgio’,’Luca’)
nomi
5 2 3 8 7
a[0]a[1]a[2]a[3]a[4]
Maria
nomi[0]
Giorgio Luca
nomi[1]
nomi[2]
Potete notare ancora una volta che normalmente i valori
alfanumerici sono racchiusi tra apici (‘ ’ o “ ” a seconda dei
linguaggi e talvolta con effetti diversi)
BIOINFO3 - Lezione 17
6
RIFERIMENTI AD UN ARRAY
È possibile riferirsi alla singola cella di un array (ovviamente per
assegnarvi un valore o per ricavarlo) indicandone il nome e
l’indice.
a
5 2 3 8 7
a[2]=4
a
a[0]a[1]a[2]a[3]a[4]
nomi
Maria
nomi[0]
a[0]a[1]a[2]a[3]a[4]
Giorgio Luca
nomi[1]
nomi[0]=‘Marta’
nomi[2]
nomi
Marta
nomi[0]
BIOINFO3 - Lezione 17
5 2 4 8 7
Giorgio Luca
nomi[1]
nomi[2]
7
ESEMPIO
Provate ad eseguire su carta
l‘algoritmo per ricavare il
valore contenuto nell‘array al
termine dell‘esecuzione
a=(6,3,5,8,9)
BIOINFO3 - Lezione 17
8
ESERCIZIO
Inserire all’interno di un flowchart, in cui siano già stati
inizializzati 2 array a e b di n
elementi,
le
operazioni
necessarie per assegnare agli
elementi di un array s la
somma dei corrispondenti
elementi di a e b.
BIOINFO3 - Lezione 17
9
ESERCIZIO
Trovare il valore minimo
all’interno di un array a di
n elementi ed assegnarlo
alla
variabile
min,
assegnando anche ad una
variabile index il suo indice
nell’array.
Supponiamo
che tutti i valori di a siano
diversi (un solo minimo!)
BIOINFO3 - Lezione 17
10
RIEPILOGO
•Variabili
•Strutture dati
•Array: ricerca minimo
BIOINFO3 - Lezione 17
11
Scarica

bioinfo3-17 - CRIBI Genomics group