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.