Sei sulla pagina 1di 17

1

Unit Didattica 1
Algoritmi
2
Analisi e Programmazione
Insieme delle attivit necessarie per la risoluzione dei problemi
per mezzo di un elaboratore: dalla formulazione del problema
alla predisposizione dellelaboratore.
Scopo dellanalisi definire un algoritmo: elenco finito di
istruzioni necessarie per risolvere una classe di problemi; in
generale non pu essere eseguito da un elaboratore;
Scopo della programmazione definire un programma. Un
programma la descrizione comprensibile ed eseguibile di un
algoritmo da parte di un elaboratore

Problema
Analisi e Programmazione
Risultati
3
Algoritmi e Programmi
Problema
Algoritmo
Programma
Risultati
Analisi
Diagramma
a blocchi
Programmazione
Linguaggio
programmativo
4
Algoritmi
Un elenco di istruzioni un algoritmo se sono
soddisfatte le seguenti propriet:

1. Finitezza: ogni istruzione deve essere eseguita in un
tempo finito e un numero finito di volte;

2. Generalit: ogni algoritmo deve fornire la soluzione per i
problemi appartenenti ad una determinata classe.

3. Non ambiguit: devono essere definiti in modo univoco
tutti i passi; devono essere evitati paradossi,
contraddizioni ed ambiguit.
5
Descrizione degli Algoritmi
Uso di un linguaggio generalizzato costituito da strutture
linguistiche prive di ambiguit e ridondanze;

Uso di proposizioni (espressioni) composte da due parti:

1. Descrizioni delle operazioni (istruzioni);
2. Descrizione dei dati su cui eseguire le istruzioni.
6
Dati e Istruzioni
Dati:
Costanti (valore invariabile allinterno dellalgoritmo);
Variabili scalari: <nome, valore>
Variabili vettoriali: <nome, insieme di valori>
(il valore delle variabili indeterminato allinizio di un algoritmo).
Istruzioni:
1. Istruzioni operative (producono risultati se eseguite);
2. Istruzioni di controllo (in funzione del verificarsi di
condizioni determinano lesecuzione
di alcune istruzioni piuttosto che di altre);
3. Istruzioni di salto (alterano lordine di esecuzione delle
istruzioni);
4. Istruzioni di inizio e fine;
5. Istruzioni di I/O (trasmissione dati o messaggi fra
lambiente esterno e lalgoritmo).
7
Proposizioni e predicati
Come sono espresse le condizioni nelle istruzioni di
controllo?
Le istruzioni di controllo verificano se una condizione vera o falsa.
Il controllo viene espresso per mezzo di predicati.

Proposizione:
Costrutto del quale si pu dire se vero o falso.
Predicato:
Una proposizione un predicato se in essa appaiono delle
variabili e il valore di verit delle variabili determina il valore di verit
della proposizione.
I predicati si esprimono con operatori logici e relazionali.
- Predicati Semplici: predicati di un solo operatore (NOT) e una sola
variabile;
- Predicati Composti: predicati con operatori logici (AND, OR, NOT).

8
Tavole di Verit
Tavole di Verit:
descrivono i valori di verit dei predicati in funzione dei valori di
verit delle singole parti.
Esprimono le modalit con cui operano gli operatori relazionali.

Esempi:
A B A and B
0 0 0
0 1 0
1 0 0
1 1 1
A B A or B
0 0 0
0 1 1
1 0 1
1 1 1
A not A
0 1
1 0
9
Diagrammi a Blocchi
Esempio di un linguaggio generalizzato per la
descrizione degli algoritmi;
I blocchi contengono istruzioni elementari, la
forma del blocco indica il tipo di istruzioni;
Inizio
Fine
Lettura
Scrittura
Azioni
Controllo
V F
10
Analisi Strutturata
Procedimento che permette di ottenere descrizioni di algoritmi
che siano facilmente documentabili e comprensibili;
Schemi di flusso:
Schema di sequenza;
Schema di selezione;
Schema di iterazione:
Condizione
di fine
ciclo
Inizializzazione
F
Iterazione
V
Iterazione per falso
con controllo in coda
Condizione
di fine
ciclo
Inizializzazione
Iterazione
V
F
Iterazione per vero
con controllo in testa
11
Diagramma a Blocchi
Strutturati
Uno schema di flusso strutturato se i suoi blocchi
sono collegati con gli schemi di flusso precedenti;

Un diagramma a blocco strutturato se sono
strutturati tutti gli schemi di flusso che lo
compongono;

In un diagramma a blocchi strutturato non compare
mai alcuna istruzione di salto;
12
Principio di Induzione
Sia P
n
una proposizione di cui si pu
dire se vera o falsa

Hp) Sia P
0
vera;
Supponendo P
n-1
vera, si dimostra che P
n
vera;

Ts) P
n
vera n.
13
Algoritmi Ricorsivi
Un algoritmo si dice ricorsivo quando
definito nei termini di se stesso;

costituito da due parti:
1. Passo base
(stabilisce il risultato per valori precisi dei dati iniziali);
2. Passo di induzione
(risultato per n in funzione del risultato per n-1).

14
Esempi di algoritmi ricorsivi
Potenza (definizione iterativa):

=
=
=

0
0 1
1
b a a
b
a
b
b

volte b
........ a a a a
b
=
Potenza (definizione ricorsiva):
15
Esempi di algoritmi ricorsivi
Fattoriale (definizione iterativa):
1 1 = ... ) ( ! n n n
Fattoriale (definizione ricorsiva):

=
=
=
0 1
0 1
n n n
n
n
)! (
!
16
Diagramma di Flusso del
Fattoriale Ricorsivo
V F
Inizio
1 fatt
0 = n
)! ( 1 n n fatt
Fine
17
Sviluppo del Fattoriale
Ricorsivo
! ! 2 3 3 =
! ! 1 2 2 =
! ! 0 1 1 =
1 0 = !
Passo base
1 1 1 0 1 1 = = = ! !
2 1 2 1 2 2 = = = ! !
6 2 3 2 3 3 = = = ! !
! ! 3 4 4 = 24 6 4 3 4 4 = = = ! !