GLI
ALGORITMI
Appunti preparati dalla
prof.ssa Maria D’Angelo
L’ALGORITMO
L’ algoritmo è un insieme finito di operazioni, che devono
essere eseguite per portare a termine un dato compito e
risolvere un problema.
Esempi di algoritmo:
Le istruzioni per usare un elettrodomestico
Le istruzioni per fare il caffè
Le regole per eseguire la divisione tra due numeri
Dati iniziali
Input
Soluzione
adottata
Risultati attesi
Algoritmo
Output
L’ESECUTORE
Gli algoritmi sono espressi mediante un
linguaggio e sono realizzati da un
esecutore.
Deve esistere un esecutore (uomo o
macchina) in grado di eseguire ogni
operazione.
L’esecutore deve terminare il suo lavoro in un
numero finito di passi.
Nell’elaboratore gli algoritmi per la soluzioni di
particolari problemi sono espressi mediante un
linguaggio di programmazione.
Linguaggio di programmazione = linguaggio
formale che l’elaboratore e’ in grado di
comprendere.
Un programma e’ la descrizione di un
algoritmo ed e’ costituito da una sequenza di
istruzioni che il calcolatore e’ in grado di
comprendere ed eseguire.
METODOLOGIA DI LAVORO
Risoluzione di un problema
Prima
Prima fase:
fase:
1)
1) Definizione
Definizione del
del problema
problema
2)
2) Descrizione
Descrizione dei
dei dati
dati che
che sono
sono
coinvolti,
coinvolti, distinguendo
distinguendo quelli
quelli
che
che abbiamo
abbiamo aa disposizione
disposizione
cioè
cioè in
in ingresso
ingresso
3)
3) Descrizione
Descrizione dei
dei risultati
risultati da
da
ottenere
ottenere cioè
cioè in
in uscita
uscita
Seconda fase:
1) Definizione delle azioni da
intraprendere
2) Definizione dell’esatta sequenza
delle azioni da compiere (fasi)
per ottenere la soluzione del
problema
IL DIAGRAMMA A BLOCCHI
Il diagramma a blocchi è uno schema grafico; esso permette un
visione immediata dell’intero procedimento e dell’ordine di
esecuzione delle varie istruzioni.
I diagrammi a blocchi sono formati da simboli di forma diversa,
ciascuno con un proprio significato; all’interno di ogni simbolo è
presente un breve testo sintetico. Per unire fra loro i vari simboli
si usano delle frecce.
Ingresso e uscita
Inizio
Leggi base altezza
Scrivi area
sì
condizione
no
Area =base * altezza
condizione
Fine
Esempio di algoritmo sequenziale
Si vuole calcolare il prodotto dei due
numeri: num1 e num2.
ALGORITMO Prodotto()
Leggi(num1)
Leggi(num2)
prod=Prodotto(num1,num2)
Scrivi(prod);
UD 1: concetti e ruoli dell'informazione
Esempio di algoritmo sequenziale
Esempio: Date le misure dei due cateti di un triangolo rettangolo, si
vuole calcolare la misura del perimetro del triangolo
Dati iniziali sono:
 Cateto 1
 Cateto 2
Risultato finale:
 perimetro
Per il calcolo del perimetro
abbiamo bisogno dell’ipotenusa
che possiamo calcolare a partire
dai cateti (teorema di Pitagora).
L’ipotenusa è una variabile di
lavoro
Per fare in modo che l’esecutore acquisisca i dati possiamo usare le
istruzioni del tipo: leggi, acquisisci, accetta.
Per fare in modo che l’esecutore comunichi i dati possiamo usare le
istruzioni del tipo: scrivi, comunica, mostra.
lE sei caratteristiche
dELL’ALGORITMO
Non Ambiguo
Deterministico
Finito
Generale
Riproducibile
Esaustivo
Collega la caratteristica alla definizione
CARATTERISTICA
1. Non Ambiguo
2. Deterministico
3. Finito
DEFINIZIONE
a) L’algoritmo deve essere
utilizzabile per ogni problema
della stessa classe.
b) L’algoritmo deve coprire tutti i
casi possibili.
c) Avendo in ingresso gli stessi dati
l’algoritmo deve produrre gli stessi
risultati.
DEFINIZIONE
a) L’algoritmo deve essere utilizzabile per ogni problema della stessa classe.
d) Ogni istruzione dell’algoritmo
a) L’algoritmo deve coprire tutti i casi possibili.
4. Generale
deve produrre un risultato
a) Avendo in ingresso gli stessi dati l’algoritmo deve produrre gli stessi risultati.
osservabile.
a) Ogni istruzione dell’algoritmo deve produrre
un risultato osservabile.
e) Iinterpretabili
passi costituenti
l’algoritmo
a) I passi costituenti l’algoritmo devono essere
in modo
diretto e
univoco dall'esecutore, sia esso umano odevono
artificiale.
essere interpretabili in
a)
L'algoritmo
deve
essere
composto
da
un
numero
finito
e richiedere una
5. Riproducibile
modo direttodiepassi
univoco
quantità finita di dati in ingresso.
6. Esaustivo
dall'esecutore, sia esso umano o
artificiale.
f) L'algoritmo deve essere
composto da un numero finito di
passi e richiedere una quantità
finita di dati in ingresso.
soluzioni
CARATTERISTICA
1. Non Ambiguo
2. Deterministico
3. Finito
4. Generale
5. Riproducibile
6. Esaustivo
DEFINIZIONE
1e
a) L’algoritmo deve essere utilizzabile per
ogni problema della stessa classe.
2c
b) L’algoritmo deve coprire tutti i casi
possibili.
3f
4a
5d
6b
c) Avendo in ingresso gli stessi dati
l’algoritmo deve produrre gli stessi
risultati.
d) Ogni istruzione dell’algoritmo deve
produrre un risultato osservabile.
e) I passi costituenti l’algoritmo devono
essere interpretabili in modo diretto e
univoco dall'esecutore, sia esso umano o
artificiale.
f) L'algoritmo deve essere composto da
un numero finito di passi e richiedere una
quantità finita di dati in ingresso.
12
Il ciclo for

Nella struttura del ciclo for:





azione di inizializzazione
condizione di ripetizione
corpo del ciclo
azione di continuazione
Sintassi:
for (Inizializzazione; Condizione; Continuazione)
Blocco istruzioni
fine del for
13
Esempio di uso del ciclo for
Sommare separatamente i numeri pari e quelli dispari
compresi tra 1 e 100 (codifica in Javascript)
var sompari= 0, somdispari = 0;
var num;
for (num=1; num<=99; num=num+2)
{
somdispari = somdispari + num;
sompari = sompari + num+1;
}
SITOGRAFIA
www.ba.infn.it/~pierro/Didattica/ssis/42A/ferilli/pierro-algoritmo03.ppt
www.unisa.it/secure/get/file/prima_parte_introduzione...ppt/id/2241
www.mat.unisi.it/personalpages/simi/computer%20casa/.../informatica.pp