Web Programming
Lezione 2: Programmazione Imperativa, Array e Funzioni
Giulio Rossetti
Guru@Work
24/03/2011
Contatti
Materiale
Tutto il materiale del corso sarà reso disponibile sul sito:
www .guruatwork.com (e su blog .giuliorossetti.net)
Domande
Per domande su temi inerenti al corso è possibile inviare mail all’indirizzo
[email protected] specificando nel Subject [G @W : PHP]
Ripasso veloce..
Cosa abbiamo visto:
• Programmazione Imperativa:
• Condizionali
• If.. elseif.. else
• switch.. case
• Cicli
• While
• For
If...
“Se riesci a mantenere la calma quando tutti intorno a te la stanno
perdendo...” - Joseph Rudyard Kipling
Il costrutto di scelta consente di diversificare l’operato del programma in
base a condizioni prestabilite
if( <condizione> ) {
<codice>
} elseif (<condizione>) {
<codice>
} else {
<codice>
}
Switch
“n un minuto c’è il tempo per decisioni e scelte che il minuto
successivo rovescerà.” - Thomas Stearns Eliot
Il costrutto Switch permette di diversificare l’operato del programma al
valore dell’espressione testata
switch (<condizione>) {
case <valore1>: <codice> break;
case <valore2>: <codice> break;
....
default: <codice>; break;
}
While: un ciclo potenzialmente infinito
“Fratelli! Ciò che facciamo in vita, riecheggia nell’eternità.” - Massimo
Decimo Meridio
Il costrutto While permette di ripetere un blocco di codice finché la
condizione testata è soddisfatta.
while (<condizione>) {
<codice>
<aggiornamento condizione>
}
For: contiamo i passi...
“Lı̀, sempre lı̀, lı̀ nel mezzo, finché ce n’hai stai lı̀.” - Luciano Ligabue
Il costrutto For permette di ripetere un blocco di codice per un numero
prestabilito di volte.
for (<inizializzazione contatore>; <condizione>;
<aggiornamento contatore>) {
<codice>
}
Proviamo a risolvere qualche piccolo
esercizio...
Esercizi:
1
Contiamo fino a 100..
2
Stampiamo un numero se questo è pari..
3
Contiamo fino a 100 ma stampiamo solo i numeri pari..
4
Calcoliamo il massimo tra 3 numeri..
5
Calcoliamo i primi 15 numeri della serie di Fibonacci in modo
iterativo..
6
Dato un numero dividiamolo iterativamente per 2 e finché il numero
ottenuto continua ad essere pari.
Funzioni
Spesso ci troviamo a dover ripetere lo stesso codice più volte in un
programma..
Le funzioni sono quello che fa per noi!
function mia funzione($variabile1, $variabile2, ...){
<codice>
return $risultato;
}
Esercizi
Esercizi
1
Scriviamo una funzione isPari($value) che ritorni true se il numero
passato in input è pari..
2
Definiamo una funzione prodotto($value1, $value2) che ritorna il
prodotto tra i due valori in input..
3
Scriviamo la funzione max($val1,$val2,$val3) che ritorna il valore
massimo tra quelli in input..
Strutture Dati: Array
Un array può essere visto con un contenitore:
$giorni = array(’lun’, ’mart’, ’merc’, ’giov’, ’ven’,’sab’);
$giorni[6] = ’dom’;
echo $giorni[0];
NB: il primo elemento di un array ha indice 0 non 1!!
Strutture Dati: Array Assocativi
L’idea è quella di usare come indici non numeri ma “stringhe”:
$persona = array(’nome’=>’Giulio’, ’cognome’=>’Rossetti’, ’eta’=>26);
$persona[’email’] = ’[email protected]’;
echo $persona[’nome’];
Alcune funzioni di libreria sugli array
Per maneggiare gli array sono presenti numerose funzioni in php,
vediamone alcune.
($vett, nel seguito, è una variabile di tipo array)
• count($vett) - restituisce la lunghezza dell’array
• sort($vett) - ordina un array (le chiavi sono perse)
• in array($valore, $vett) - ritorna true se $valore compare in $vet,
false altrimenti
• array merge($vett, $vett) - effettua il merge di due array
Esercizi
Esercizi:
1
Scorrere un array e stampare i valori in esso contenuti..
2
Stampare la somma dei valori contenuti in un array di interi..
3
Stampare, dato un array di interi, i numeri pari in esso contenuti..
4
Stampare i valori contenuti nelle celle aventi numero pari..
5
Dati due array di interi effettuarne il merge e ordinarli.