SlideShare a Scribd company logo
4
Most read
10
Most read
11
Most read
Algoritmi
Problema: dati i voti di tutti gli studenti di una classe
determinare il voto medio della classe.
1)Comprendere il problema
2)Stabilire quali sono le azioni da eseguire per risolverlo
3)Stabilire la sequenza di queste azioni (per ricavare la
media devo prima sommare gli n voti)
una sequenza finita di azioni che conduce alla soluzione di
un problema si definisce ALGORITMO
2
3
Definizione: Procedimento di calcolo che permette di risolvere
un problema, partendo da dei dati iniziali ed eseguendo un
numero finito di operazioni o istruzioni
•Il termine algoritmo si fa derivare dal nome del
matematico persiano Al-Khwarizmi, vissuto nel
IX secolo, ed è quindi un concetto che è sempre
stato utilizzato nella matematica e nella logica
come sinonimo di metodo per la risoluzione di
un problema generale.
Esempi di algoritmi per la soluzione di problemi
di vita quotidiana sono:
•le istruzioni per l’uso di un elettrodomestico
•la realizzazione di una ricetta di cucina
4
1) dati iniziali e finali: sono gli elementi che vengono elaborati
dall’algoritmo (dati iniziali o di input) e i risultati prodotti dall’algoritmo
(dati finali o di output). Es. nell’algoritmo dell’addizione, i dati iniziali
sono gli addendi, il dato finale è la somma.
2) sequenza di azioni (istruzioni o passi elementari): un’azione è
un’istruzione (operazione elementare) che deve essere eseguita sui dati
in ingresso per ottenere i dati in uscita.
3) esecutore: è il soggetto che compie le azioni, cioè legge le istruzioni, le
interpreta e le esegue.
Le istruzioni quindi devono essere scritte in modo che l’esecutore possa
comprenderle ed eseguirle correttamente.
ALGORITMO +
ESECUTORE
DATI DI
INPUT
DATI DI
OUTPUT
5
FINITO: un algoritmo deve essere composto da un numero finito di
passi e deve presentare un punto di inizio e uno di fine, raggiunto il
quale si interrompe l’esecuzione delle operazioni.
DETERMINISTICO: l’algoritmo a fronte degli stessi dati di input
deve produrre gli stessi risultati (es. l’istruzione “moltiplica 2x5”
produce sempre il medesimo risultato, mentre l’istruzione “tira una
freccia contro il bersaglio” può avere risultati diversi anche se è
rivolta al medesimo arciere munito del suo solito arco).
NON AMBIGUO: i passi che compongono l’algoritmo devono
essere interpretati in modo chiaro dall’esecutore, senza lasciar dubbi
(es. “se il numero è abbastanza grande allora dividilo per 3 
istruzione ambigua!)
L'algoritmo può essere rappresentato in:
◦ PSEUDOCODIFICA:PSEUDOCODIFICA: descrizione di un algoritmo
utilizzando termini del linguaggio comune. Non si tratta di un
vero e proprio linguaggio di programmazione (non è
direttamente interpretabile dal computer), ma di un
linguaggio sintetico che descrive la soluzione logica del
problema.
◦ DIAGRAMMI A BLOCCHI:DIAGRAMMI A BLOCCHI: linguaggio formale di tipo
grafico per rappresentare l’ordine di esecuzione delle
istruzioni negli algoritmi.
6
Utilizzando la pseudocodifica, il programmatore
esprime le proprie idee attraverso frasi elementari della
lingua italiana (o inglese).
Le regole generali della pseudocodifica sono:
Le parole chiave che aprono e chiudono il testo di un algoritmo
sono: INIZIO e FINE  (BEGIN e END)
Le istruzioni LEGGI e SCRIVI (READ e WRITE) vengono
utilizzate per descrivere le operazioni input ed output dei dati.
Ogni istruzione è indicata con una frase del linguaggio corrente e
può essere un‘operazione oppure può indicare una decisione da
prendere
7
8
Problema:Problema: Calcola la media di 3 numeri interi
Analisi del problema:Analisi del problema:
Dati di INPUT: 3 numeri inseriti da tastiera.
Dati di OUTPUT: La media mostrata su monitor.
Pseudocodifica:Pseudocodifica:
INIZIO
LEGGI (n1, n2, n3);
somma (n1+n2+n3);
media (somma/3) ;
SCRIVI (media);
FINE
Un algoritmo può essere rappresentato anche
attraverso un diagramma a blocchi (o flow
chart) :
Un particolare simbolo grafico detto blocco
elementare è associato a ciascun tipo di
istruzione dell’algoritmo.
I blocchi sono collegati fra loro tramite frecce che
indicano il susseguirsi delle istruzioni.
9
10
INIZIO
FINE
questi simboli indicano il punto di partenza e
di terminazione dell’algoritmo
è il simbolo dell’elaborazione e contiene l’istruzione da eseguire
è il simbolo per le operazioni di Input / Output
condizione
VF
è il simbolo di decisione ed è usato per stabilire se
una proposizione è vera (V) o falsa (F)
11
INIZIO
LEGGI (n1, n2, n3);
somma (n1+n2+n3);
media (somma/3) ;
SCRIVI (media);
FINE
Pseudocodifica:Pseudocodifica:
INIZIOINIZIO
FINEFINE
Leggi(n1, n2, n3)Leggi(n1, n2, n3)
Scrivi(media)Scrivi(media)
somma=(n1+n2+n3)somma=(n1+n2+n3)
media=(somma/3)media=(somma/3)
Problema:Problema: Calcola la media di 3 numeri interi
Analisi del problema:Analisi del problema:
Dati di INPUT: 3 numeri inseriti da tastiera.
Dati di OUTPUT: La media mostrata su monitor.
Diagramma a blocchiDiagramma a blocchi
Un diagramma a blocchi descrive un algoritmo se:
 ha un blocco iniziale e uno finale;
 è costituito da un numero finito di blocchi azione
e/o blocchi lettura/scrittura e/o blocchi di controllo;
Vediamo un esempio di diagramma a blocchi per
un semplice problema di geometria…
 
12
Pseudocodifica: Diagramma a
blocchi:
13
INIZIOINIZIO
FINEFINE
Leggi(base,Leggi(base,
altezza)altezza)
Scrivi(area)Scrivi(area)
area=base*altezzaarea=base*altezza
14
INIZIO
FINE
area = raggio * raggio * π
raggio
I
area
O
INIZIO
FINE
area = raggio * raggio * π
raggio
I
area
O
raggio = 0
VF
area = 0
Cosa calcola questo
algoritmo?
PROBLEMAPROBLEMA ALGORITMO PROGRAMMAALGORITMO PROGRAMMA
 
1.1. Analisi del problema e identificazione di una
soluzione;
2.2. Stesura dell’algoritmo risolutivo;
3.3. Programmazione, cioè scrittura dell’algoritmo
in un linguaggio adatto al computer;
4.4. Esecuzione del programma sul computer e
verifica del suo funzionamento
Attenzione: l’algoritmo è indipendente dal
linguaggio di programmazione!
15
11 22 33 44
I computer usano il sistema binario costitutito dai
simboli (0,1) e di conseguenza non possono
interpretare e comprendere il nostro linguaggio. Il
linguaggio del computer, basato sui simboli binari (bit)
si chiama LINGUAGGIO MACCHINA (codice macchina o
linguaggio di basso livello) ed è costituito da una serie
di istruzioni direttamente eseguibili per il computer.
Per permettere la comunicazione tra “uomo” e
“macchina” sono stati creati i LINGUAGGI DI
PROGRAMMAZIONE (linguaggi ad alto livello o
procedurali).
16
I LINGUAGGI DI
PROGRAMMAZIONE permettono di
scrivere i programmi, cioè di “tradurre”
un algoritmo in un linguaggio più
comprensibile al computer, ma non
direttamente eseguibile.
Il programma scritto in linguaggio di
programmazione si chiama
programma sorgente e per essere
eseguito da una macchina deve essere
compilato, cioè trasformato in
LINGUAGGIO MACCHINA.
Questa trasformazione viene fatta da
un programma che si chiama
COMPILATORE.
17
Linguaggio naturale
Linguaggio macchina
Linguaggio di
programmazione
COMPILATORE
PROGRAMMA SORGENTE
18
19
MAX=N2
MIN=N1
MAX=N1
MIN=N2
20
Esecizio1:
Consideriamo una classe di 20 alunni, scrivere un
algoritmo che conti quanti alunni sono stati
promossi e quanti bocciati ad un esame
universitario (promosso se voto >=18)
22
Alunno= 1
Prom= 0
Resp= 0
leggi (Voto)
Alunno=Alunno+1
ALUNNO<=20
F
V
Scrivi(Prom)
Scrivi(Resp)
FINE
INIZIO
Voto>=18
Prom=Prom+ 1 Resp=Resp+1
Dati input: voti dei 20 alunni (usiamo la variabile
Alunno per contare l’inserimento dei diversi voti
e la variabile Voto per inserire il voto)
Dati output: totale dei promossi e dei bocciati
(usiamo le variabili Prom e Resp per contare i
promossi e i bocciati)
FV

More Related Content

PDF
Esercizi di stimolazione cognitiva
PPT
La Firma Digitale
PPT
Lezione sistema nervoso
PDF
Presentazione corretta algoritmi
PPT
Reti Informatiche
PPTX
Il sistema binario
PDF
Cosa sono gli algoritmi?
PPSX
Il calligramma. Spiegazione ed esempi.
Esercizi di stimolazione cognitiva
La Firma Digitale
Lezione sistema nervoso
Presentazione corretta algoritmi
Reti Informatiche
Il sistema binario
Cosa sono gli algoritmi?
Il calligramma. Spiegazione ed esempi.

What's hot (20)

PDF
Referenti 2016 lab_1_pl_finale
PPT
Informatica di base
PDF
Algo and flowchart
PDF
Introduction to algorithms
PDF
DIDATTICA PER COMPETENZA UNA SCUOLA PER TUTTI
PDF
Relazione finale di tirocinio - Final internship report
PPTX
Alpha beta
PPT
Pe 4030 digital logic chapter 7 (weeks 11 12)
PPTX
Le funzioni PowerPoint
PDF
Business plan forma e contenuto
PPTX
Algorithm Introduction
PDF
Imperialismo
PPTX
LA STORIA DI STEVE JOBS (Emanuele Macciola).pptx
PPTX
Compiler Design
PDF
Economia dei Sistemi Produttivi 09 gestione della produzione2a
PPTX
Diritto del lavoro
PPTX
RABIN KARP ALGORITHM STRING MATCHING
ODP
Decreto legislativo 13/04/2017, n. 62
PPT
SPUNTI PER IL POTENZIAMENTO MATEMATICO
PPTX
Fisica - Onde e suono
Referenti 2016 lab_1_pl_finale
Informatica di base
Algo and flowchart
Introduction to algorithms
DIDATTICA PER COMPETENZA UNA SCUOLA PER TUTTI
Relazione finale di tirocinio - Final internship report
Alpha beta
Pe 4030 digital logic chapter 7 (weeks 11 12)
Le funzioni PowerPoint
Business plan forma e contenuto
Algorithm Introduction
Imperialismo
LA STORIA DI STEVE JOBS (Emanuele Macciola).pptx
Compiler Design
Economia dei Sistemi Produttivi 09 gestione della produzione2a
Diritto del lavoro
RABIN KARP ALGORITHM STRING MATCHING
Decreto legislativo 13/04/2017, n. 62
SPUNTI PER IL POTENZIAMENTO MATEMATICO
Fisica - Onde e suono
Ad

Similar to Algoritmi (20)

PPTX
Algoritmi
PPT
02 algo programmi
PPTX
L'algoritmo
PDF
Flow chart
PPTX
Guida del perfetto Algoritmista I
PDF
Lezione 3 (29 febbraio 2012)
PPT
1 Programmazione
PDF
15 - Programmazione: Algoritmi
PDF
Ecdl modulo 1 -Fondamenti
PDF
Elaborazione automatica dei dati: computer e matlab
PPTX
Presentazione
PPTX
Presentazione,
PDF
Modulo 1 concetti di base dell'ict
PDF
Fondamenti 17/10/2013
PPT
PDF
Lezione 1 (27 febbraio 2012)
PDF
Lezione 1 (27 febbraio 2012)
PDF
Python - Primi passi
PDF
01 - Programmazione: Dai Problemi ai Programmi
PPTX
Pensiero computazionale, cos'è e come formare gli studenti
Algoritmi
02 algo programmi
L'algoritmo
Flow chart
Guida del perfetto Algoritmista I
Lezione 3 (29 febbraio 2012)
1 Programmazione
15 - Programmazione: Algoritmi
Ecdl modulo 1 -Fondamenti
Elaborazione automatica dei dati: computer e matlab
Presentazione
Presentazione,
Modulo 1 concetti di base dell'ict
Fondamenti 17/10/2013
Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)
Python - Primi passi
01 - Programmazione: Dai Problemi ai Programmi
Pensiero computazionale, cos'è e come formare gli studenti
Ad

Recently uploaded (9)

PDF
GIÁO ÁN KẾ HOẠCH BÀI DẠY CHÍNH KHÓA TIẾNG ANH 9 - CẢ NĂM - THEO CÔNG VĂN 5512...
PDF
Mazzoni-Reggi-2012-Effetto-Lucifero-Su-Wikipedia.pdf
PDF
GIÁO ÁN CHÍNH KHÓA TIẾNG ANH 9 - CẢ NĂM - THEO CÔNG VĂN 5512 (2 CỘT) NĂM HỌC ...
PPTX
Copia di PROGETTO VIOLENZA sulle donne PCTO
PDF
BÀI TẬP TEST BỔ TRỢ THEO TỪNG UNIT - TIẾNG ANH 10 EXPLORE NEW WORLDS - CẢ NĂM...
PPTX
SLIDE-DE-CURSOS-OssssFICIAL-DA-EGEPI-.pptx
PDF
BÀI TẬP TEST BỔ TRỢ THEO TỪNG UNIT - TIẾNG ANH 10 FRIENDS GLOBAL - CẢ NĂM (24...
PDF
CHUYÊN ĐỀ BỔ TRỢ NGỮ ÂM, TỪ VỰNG NÂNG CAO - TIẾNG ANH 9 VÀ ÔN THI VÀO LỚP 10 ...
PDF
16 CHUYÊN ĐỀ BÀI TẬP ÔN THI TUYỂN SINH VÀO 10 - MÔN TIẾNG ANH - THEO FORM ĐỀ ...
GIÁO ÁN KẾ HOẠCH BÀI DẠY CHÍNH KHÓA TIẾNG ANH 9 - CẢ NĂM - THEO CÔNG VĂN 5512...
Mazzoni-Reggi-2012-Effetto-Lucifero-Su-Wikipedia.pdf
GIÁO ÁN CHÍNH KHÓA TIẾNG ANH 9 - CẢ NĂM - THEO CÔNG VĂN 5512 (2 CỘT) NĂM HỌC ...
Copia di PROGETTO VIOLENZA sulle donne PCTO
BÀI TẬP TEST BỔ TRỢ THEO TỪNG UNIT - TIẾNG ANH 10 EXPLORE NEW WORLDS - CẢ NĂM...
SLIDE-DE-CURSOS-OssssFICIAL-DA-EGEPI-.pptx
BÀI TẬP TEST BỔ TRỢ THEO TỪNG UNIT - TIẾNG ANH 10 FRIENDS GLOBAL - CẢ NĂM (24...
CHUYÊN ĐỀ BỔ TRỢ NGỮ ÂM, TỪ VỰNG NÂNG CAO - TIẾNG ANH 9 VÀ ÔN THI VÀO LỚP 10 ...
16 CHUYÊN ĐỀ BÀI TẬP ÔN THI TUYỂN SINH VÀO 10 - MÔN TIẾNG ANH - THEO FORM ĐỀ ...

Algoritmi

  • 2. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1)Comprendere il problema 2)Stabilire quali sono le azioni da eseguire per risolverlo 3)Stabilire la sequenza di queste azioni (per ricavare la media devo prima sommare gli n voti) una sequenza finita di azioni che conduce alla soluzione di un problema si definisce ALGORITMO 2
  • 3. 3 Definizione: Procedimento di calcolo che permette di risolvere un problema, partendo da dei dati iniziali ed eseguendo un numero finito di operazioni o istruzioni •Il termine algoritmo si fa derivare dal nome del matematico persiano Al-Khwarizmi, vissuto nel IX secolo, ed è quindi un concetto che è sempre stato utilizzato nella matematica e nella logica come sinonimo di metodo per la risoluzione di un problema generale. Esempi di algoritmi per la soluzione di problemi di vita quotidiana sono: •le istruzioni per l’uso di un elettrodomestico •la realizzazione di una ricetta di cucina
  • 4. 4 1) dati iniziali e finali: sono gli elementi che vengono elaborati dall’algoritmo (dati iniziali o di input) e i risultati prodotti dall’algoritmo (dati finali o di output). Es. nell’algoritmo dell’addizione, i dati iniziali sono gli addendi, il dato finale è la somma. 2) sequenza di azioni (istruzioni o passi elementari): un’azione è un’istruzione (operazione elementare) che deve essere eseguita sui dati in ingresso per ottenere i dati in uscita. 3) esecutore: è il soggetto che compie le azioni, cioè legge le istruzioni, le interpreta e le esegue. Le istruzioni quindi devono essere scritte in modo che l’esecutore possa comprenderle ed eseguirle correttamente. ALGORITMO + ESECUTORE DATI DI INPUT DATI DI OUTPUT
  • 5. 5 FINITO: un algoritmo deve essere composto da un numero finito di passi e deve presentare un punto di inizio e uno di fine, raggiunto il quale si interrompe l’esecuzione delle operazioni. DETERMINISTICO: l’algoritmo a fronte degli stessi dati di input deve produrre gli stessi risultati (es. l’istruzione “moltiplica 2x5” produce sempre il medesimo risultato, mentre l’istruzione “tira una freccia contro il bersaglio” può avere risultati diversi anche se è rivolta al medesimo arciere munito del suo solito arco). NON AMBIGUO: i passi che compongono l’algoritmo devono essere interpretati in modo chiaro dall’esecutore, senza lasciar dubbi (es. “se il numero è abbastanza grande allora dividilo per 3  istruzione ambigua!)
  • 6. L'algoritmo può essere rappresentato in: ◦ PSEUDOCODIFICA:PSEUDOCODIFICA: descrizione di un algoritmo utilizzando termini del linguaggio comune. Non si tratta di un vero e proprio linguaggio di programmazione (non è direttamente interpretabile dal computer), ma di un linguaggio sintetico che descrive la soluzione logica del problema. ◦ DIAGRAMMI A BLOCCHI:DIAGRAMMI A BLOCCHI: linguaggio formale di tipo grafico per rappresentare l’ordine di esecuzione delle istruzioni negli algoritmi. 6
  • 7. Utilizzando la pseudocodifica, il programmatore esprime le proprie idee attraverso frasi elementari della lingua italiana (o inglese). Le regole generali della pseudocodifica sono: Le parole chiave che aprono e chiudono il testo di un algoritmo sono: INIZIO e FINE  (BEGIN e END) Le istruzioni LEGGI e SCRIVI (READ e WRITE) vengono utilizzate per descrivere le operazioni input ed output dei dati. Ogni istruzione è indicata con una frase del linguaggio corrente e può essere un‘operazione oppure può indicare una decisione da prendere 7
  • 8. 8 Problema:Problema: Calcola la media di 3 numeri interi Analisi del problema:Analisi del problema: Dati di INPUT: 3 numeri inseriti da tastiera. Dati di OUTPUT: La media mostrata su monitor. Pseudocodifica:Pseudocodifica: INIZIO LEGGI (n1, n2, n3); somma (n1+n2+n3); media (somma/3) ; SCRIVI (media); FINE
  • 9. Un algoritmo può essere rappresentato anche attraverso un diagramma a blocchi (o flow chart) : Un particolare simbolo grafico detto blocco elementare è associato a ciascun tipo di istruzione dell’algoritmo. I blocchi sono collegati fra loro tramite frecce che indicano il susseguirsi delle istruzioni. 9
  • 10. 10 INIZIO FINE questi simboli indicano il punto di partenza e di terminazione dell’algoritmo è il simbolo dell’elaborazione e contiene l’istruzione da eseguire è il simbolo per le operazioni di Input / Output condizione VF è il simbolo di decisione ed è usato per stabilire se una proposizione è vera (V) o falsa (F)
  • 11. 11 INIZIO LEGGI (n1, n2, n3); somma (n1+n2+n3); media (somma/3) ; SCRIVI (media); FINE Pseudocodifica:Pseudocodifica: INIZIOINIZIO FINEFINE Leggi(n1, n2, n3)Leggi(n1, n2, n3) Scrivi(media)Scrivi(media) somma=(n1+n2+n3)somma=(n1+n2+n3) media=(somma/3)media=(somma/3) Problema:Problema: Calcola la media di 3 numeri interi Analisi del problema:Analisi del problema: Dati di INPUT: 3 numeri inseriti da tastiera. Dati di OUTPUT: La media mostrata su monitor. Diagramma a blocchiDiagramma a blocchi
  • 12. Un diagramma a blocchi descrive un algoritmo se:  ha un blocco iniziale e uno finale;  è costituito da un numero finito di blocchi azione e/o blocchi lettura/scrittura e/o blocchi di controllo; Vediamo un esempio di diagramma a blocchi per un semplice problema di geometria…   12
  • 14. 14 INIZIO FINE area = raggio * raggio * π raggio I area O INIZIO FINE area = raggio * raggio * π raggio I area O raggio = 0 VF area = 0 Cosa calcola questo algoritmo?
  • 15. PROBLEMAPROBLEMA ALGORITMO PROGRAMMAALGORITMO PROGRAMMA   1.1. Analisi del problema e identificazione di una soluzione; 2.2. Stesura dell’algoritmo risolutivo; 3.3. Programmazione, cioè scrittura dell’algoritmo in un linguaggio adatto al computer; 4.4. Esecuzione del programma sul computer e verifica del suo funzionamento Attenzione: l’algoritmo è indipendente dal linguaggio di programmazione! 15 11 22 33 44
  • 16. I computer usano il sistema binario costitutito dai simboli (0,1) e di conseguenza non possono interpretare e comprendere il nostro linguaggio. Il linguaggio del computer, basato sui simboli binari (bit) si chiama LINGUAGGIO MACCHINA (codice macchina o linguaggio di basso livello) ed è costituito da una serie di istruzioni direttamente eseguibili per il computer. Per permettere la comunicazione tra “uomo” e “macchina” sono stati creati i LINGUAGGI DI PROGRAMMAZIONE (linguaggi ad alto livello o procedurali). 16
  • 17. I LINGUAGGI DI PROGRAMMAZIONE permettono di scrivere i programmi, cioè di “tradurre” un algoritmo in un linguaggio più comprensibile al computer, ma non direttamente eseguibile. Il programma scritto in linguaggio di programmazione si chiama programma sorgente e per essere eseguito da una macchina deve essere compilato, cioè trasformato in LINGUAGGIO MACCHINA. Questa trasformazione viene fatta da un programma che si chiama COMPILATORE. 17 Linguaggio naturale Linguaggio macchina Linguaggio di programmazione COMPILATORE PROGRAMMA SORGENTE
  • 18. 18
  • 20. 20
  • 21. Esecizio1: Consideriamo una classe di 20 alunni, scrivere un algoritmo che conti quanti alunni sono stati promossi e quanti bocciati ad un esame universitario (promosso se voto >=18)
  • 22. 22 Alunno= 1 Prom= 0 Resp= 0 leggi (Voto) Alunno=Alunno+1 ALUNNO<=20 F V Scrivi(Prom) Scrivi(Resp) FINE INIZIO Voto>=18 Prom=Prom+ 1 Resp=Resp+1 Dati input: voti dei 20 alunni (usiamo la variabile Alunno per contare l’inserimento dei diversi voti e la variabile Voto per inserire il voto) Dati output: totale dei promossi e dei bocciati (usiamo le variabili Prom e Resp per contare i promossi e i bocciati) FV