Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012
Concetti importanti da (ri)vedere Programmazione imperativa Strutture di controllo Struttura condizionale Struttura iterativa con contatore (enumerativa) Operatori booleani Algebra di Boole
Programmazione imperativa Perché la programmazione? Per poter comunicare con il computer e automatizzare la risoluzione di problemi. Cos è la programmazione imperativa? È un tipo di programmazione in cui la soluzione del problema è descritta come una sequenza di azioni che producono aggiornamenti/modifiche nel valore delle variabili, in modo da fornire i risultati richiesti.
Strutture di controllo Per descrivere qualsiasi algoritmo è sufficiente usare una combinazione di tre strutture di controllo: Struttura sequenziale: la istruzioni vengono indicate ed eseguite una dopo l altra, in sequenza. Struttura di selezione (condizionale): le istruzioni vengono separate in due gruppi che vengono eseguiti in alternativa, in base al verificarsi di una condizione. Struttura iterativa (ciclica o di ripetizione): un gruppo di istruzioni viene ripetuto più volte, in base al verificarsi di una condizione.
Struttura condizionale Permette di eseguire due diverse sequenze di istruzioni in alternativa, in base al verificarsi di una determinata condizione. se condizione V condizione F istruzioni1 altrimenti istruzioni2 istruzioni1 istruzioni2 fine
Struttura condizionale C e Pascal C/C++ if (condizione) { istruzioni1; } else { istruzioni2; } Pascal if condizione then begin istruzioni1; end else begin istruzioni2; end;
Struttura iterativa Permette di ripetere una sequenza di istruzioni fintanto che una condizione risulta vera; quando questa diventa falsa, il ciclo di ripetizioni termina. mentre condizione istruzioni fine mentre condizione V istruzioni F
Struttura iterativa con controllo in testa Per prima cosa si controlla la condizione. Se questa è vera si procede all esecuzione del blocco di istruzioni, si torna all inizio del ciclo e si effettua un nuovo controllo. C/C++ while (condizione) { istruzioni; } Pascal while condizione do begin istruzioni; end; Entrambe escono sul falso (cioè il ciclo viene ripetuto finché la condizione rimane vera)
Struttura iterativa enumerativa Quando si conosce il numero di ripetizioni da effettuare si utilizza solitamente un ciclo enumerativo: per contatore da valoreiniziale, a valorefinale, con incremento istruzioni fine per Il contatore parte dal valore iniziale e viene confrontato con quello finale; se il confronto dà esito positivo, si eseguono le istruzioni; si incrementa poi il contatore del valore stabilito e si esegue un nuovo confronto con il valore finale. Il ciclo termina quando il contatore raggiunge il valore finale.
Struttura iterativa C C/C++ for(inizializzazione;condizione;incremento) { istruzioni; } Esempio (ciclo con contatore da 0 a n -n escluso- e incremento unitario): for(i=0;i<n;i=i+1){ } Esempio (ciclo con contatore da 0 a n -n compreso- e incremento 3): for(i=0;i<=n;i=i+3){ } Esempio (ciclo con contatore da n a 0-0 compreso- e decremento 2): for(i=n;i>=0;i=i-2){ }
Struttura iterativa Pascal Pascal for indice := valoreiniziale to valorefinale do begin istruzioni; end N.B. In Pascal il passo può essere solo unitario Esempio (ciclo con contatore da 0 a n -n escluso-) : for i:=0 to n-1 do begin end Esempio (ciclo con contatore da n a 0-0 compreso-) : for i:=n downto 0 do begin end
Struttura iterativa e array (vettori e matrici) La struttura iterativa enumerativa (con contatore) è particolarmente utile quando occorre accedere in ordine a tutti gli elementi di un vettore o di una matrice, poiché questi sono contraddistinti da indici che vanno da un valore minimo (1 o 0) ad un valore massimo (dimensione o dimensione-1) prefissati.
Operatori logici (booleani) C/C++ Pascal Quando possibile, evitano la valutazione del secondo operando && And Or and or
Algebra di Boole Consideriamo l insieme U={0,1}, dove 0 e 1 non sono necessariamente cifre numeriche, ma stati (on off, true false ). La somma logica vale 1 se almeno uno degli operandi vale 1. Il prodotto logico vale 1 se entrambi gli operandi valgono 1.
Tavole di verità Sono tabelle in cui le variabili d ingresso vengono organizzate in modo da: prevedere tutte le possibili combinazioni rappresentare per ciascuna il risultato dell operazione logica.
Tabella di verità della somma logica (OR) a b a+b 0 0 0 0 1 1 1 0 1 1 1 1
Tabella di verità del prodotto logico (AND) a b a b 0 0 0 0 1 0 1 0 0 1 1 1