SlideShare une entreprise Scribd logo
1  sur  26
1 CONTENUTI ,[object Object]
Caratteristiche di un algoritmo
Costruzione  di un algoritmo
Operazioni di assegnazione, input e output
Rappresentazione di un algoritmo: pseudocodifica e diagrammi a blocchi
Strutture degli algoritmi: sequenza, selezione, iterazione,[object Object]
3 ALGORITMO Serie di prescrizioni o istruzioni che specifica l’insieme delle azioni da compiere per poter risolvere un problema. In particolare:  L'algoritmo non è solamente l'insieme delle regole o dei comportamenti da applicare, ma anche l'esatta sequenza con cui vanno applicati per risolvere il problema a cui ci si riferisce. L’algoritmo deve essere collocato in un contesto (per costruire un algoritmo è necessario sapere cosa sa fare l’esecutore) Un algoritmo è una descrizione completa, univoca e esaustiva di un insieme finito di operazioni elementari, interpretabili e riproducibili da un esecutore, per portare a termine un dato compito e per raggiungere un risultato definitoin un tempo ragionevole.
4 ALGORITMO - ESEMPIO Deve  Telefonare a Paolo MARIA ,[object Object],Informazioni  necessarie: ,[object Object],Risultati: ,[object Object],Algoritmo leggere il numero telefonico  comporre il numero a seconda della situazione che si presenta :  se Paolo non risponde andare al passo 6 se Paolo risponde conversare con Paolo  Chiudere la comunicazione
5 ALGORITMO - REQUISITI Finitezza (Spaziale – Temporale) Deve pervenire al risultato finale con l'esecuzione di un numero finito di azioni da poter essere eseguite in un tempo finito Generalità 	Deve fornire il risultato del problema per tutti i possibili valori forniti dall'esterno. In questo caso si dice che l'algoritmo è definito su un intero insieme di valori e per tutti  fornisce un risultato corretto Non ambiguità 	Deve sempre essere chiaro qual è il passo successivo da effettuare  Eseguibilità 	Deve essere effettivamente eseguibili dall’esecutore Completezza
6 ALGORITMO - COSTRUZIONE Esaminare una specifica realtà o problema (fase di analisi) Costruirne un’astrazione Rappresentarla (più o meno) formalmente  Individuare i dati di input e output e le risorse disponibili  Individuare una sequenza di azioni che, eseguite, risolvano il problema nel mondo dell’astrazione
7 ALGORITMI E LINGUAGGI Un algoritmo può essere comunicato in più linguaggi Quando chi riceve le istruzioni è un elaboratore elettronico il linguaggio deve essere adeguato al suo contesto A questo scopo sono stati creati i linguaggi di programmazione di alto livello (es. Pascal) Nei linguaggi è possibile codificare l’insieme delle istruzioni di un algoritmo per renderle eseguibili dal calcolatore
8 V  9 V  E Espressione, cioè una formula che specifica sempre un valore. Ogni espressione è composta da operandi e operatori E ASSEGNAZIONE Un'Assegnazione è un'azione in cui ad una variabile del problema, di un certo tipo, viene assegnato un valore di tipo compatibile (in conseguenza di un calcolo o copiandolo direttamente da un'altra variabile o da una costante).  Le variabili  implicate nel calcolo non cambieranno il loro valore, ad eccezione eventualmente di quella che dovrà ricevere il valore calcolato (il risultato del calcolo) Gli operandi possono essere costanti, espressioni o variabili Gli operatori possono essere di tre tipi: aritmetici, di relazione e logici
9 INPUT Un'operazione di Input è un'azione  in cui una variabile del problema viene impostata con un valore fornito dall'esterno.  Con un'operazione di Input si possono impostare, volendo, più variabili con altrettanti valori.  Questa operazione serve per fornire, dall'esterno all'algoritmo, dei valori su cui lavorare.
10 OUTPUT Un'operazione di Output è un'azione in cui il valore o i valori rappresentati, ad un certo momento, da una o più variabili del problema vengono evidenziati all'esterno  Questa operazione serve per comunicare i risultati, parziali o definitivi, ottenuti attraverso l'algoritmo
11 ESEMPIO- ISTRUZIONI Il passo 1 serve a ricevere i dati iniziali,input Il passo 4 serve a comunicare il risultato, output CALCOLARE LA MEDIA ARITMETICA DI DUE NUMERI QUALSIASI Algoritmo: Leggere i due numeri Sommare i due numeri Dividere il risultato per 2 Comunicare il risultato Per acquisire i dati possiamo usare le istruzioni del tipo: leggi, acquisisci, accetta. Per comunicare i dati possiamo usare le istruzioni del tipo: scrivi, comunica, mostra. Ci possono essere delle variabili, che non sono nè di input nè di output, ma che sono necessarie all’elaborazione e che vengono dette Variabili di Lavoro.
12 ALGORITMO RAPPRESENTAZIONE Prima di scrivere il programma, normalmente si formalizza l'Algoritmo che dovrà essere eseguito, utilizzando un modello. La formalizzazione dell'algoritmo renderà più agevole la scrittura del programma stesso. Possiamo utilizzare sostanzialmente due Modelli per la rappresentazione degli Algoritmi: la Pseudo-Codifica e i Diagrammi di Flusso (Flow-Chart )
13 PSEUDOCODIFICA La pseudocodifica è la descrizione di un algoritmo ottenuta utilizzando termini e parole del linguaggio comune, ma applicando una serie di regole che permettono di organizzare un tipo di testo formalmente rigoroso e strettamente orientato alla stesura degli algoritmi La pseudocodifica utilizza delle regole per strutturare il testo: Le parole chiave che aprono e chiudono il testo di un algoritmo sono INIZIO e FINE. Altre parole chiave sono  ALLORA, SE, ALTRIMENTI, DA, ESEGUI, FINCHÉ, MENTRE, PER, RIPETI,  Ogni istruzione è indicata con una frase del linguaggio corrente e può contenere un’espressione di tipo aritmetico o logico Le istruzioni LEGGI (lista di variabili) e SCRIVI (variabili e costanti) vengono utilizzate per descrivere le operazione di immissione ed emissione dei dati La richiesta all’utente per acquisire i dati necessari all’elaborazione può essere indicata con CHIEDI(lista dei dati che servono) Le variabili, le costanti vengono indicate da parole in minuscolo dette identificatori
14 PSEUDOCODIFICA - ESEMPIO h Area del rettangolo PSEUDOCODIFICA b A= b  h INIZIO Dati input Chiedi (base, altezza) Leggi (base, altezza) Area  base * altezza Scrivi Area Dati output FINE Base e altezza del rettangolo Area del rettangolo
15 DIAGRAMMI A BLOCCHI (FLOW – CHART) Il metodo dei diagrammi a blocchi permette un visione immediata dell’intero procedimento e dell’ordine di esecuzione delle varie istruzioni I diagrammi a blocchiprevedono l'utilizzo di simboli grafici in cui vengono racchiuse le azioni da compiere. I simboli di forma diversa hanno ciascuno un proprio significato; all’interno di ogni simbolo è presente un breve testo sintetico. Linee orientate con frecce, che uniscono fra loro i vari simboli, indicano il flusso delle operazioni. Con questo modello si ottiene una rappresentazione che ha, nell'aspetto grafico, lo scopo di   mettere in particolare evidenza le strutture di base utilizzate.
16 DIAGRAMMI A BLOCCHI (FLOW – CHART) Inizio  Condizione  Fine  commento L'Assegnazione viene rappresentata utilizzando un rettangolo, le operazioni di Input/Output da un romboide (due lati orizzontali) e le proposizioni logiche vengono racchiuse in un rombo. I vari simboli grafici vengono uniti fra di loro, nella sequenza da applicare, utilizzando una linea continua; deve sempre essere indicata la FINE e l'INIZIO
17 FLOW CHART - ESEMPIO Inizio  Area del rettangolo DIAGRAMMA A BLOCCHI h Chiedi base, altezza b A= b  h Leggi base altezza Dati input Base e altezza del rettangolo Area base * altezza Dati output Scrivi area  Area del rettangolo Fine
18 ALGORITMI - STRUTTURE Un programma serve per indicare al computer l'algoritmo da eseguire. 	Per risolvere la formalizzazione degli algoritmi e di conseguenza la scrittura dei programmi  (il software) vengono utilizzate tre tipi di strutture logiche che ci permettono di collegare le azioni elementari che compongono un algoritmo: la Sequenza, la Selezione, e l'Iterazione.
19 SEQUENZA è una concatenazione di azioni una o più azioni devono essere eseguite in successione per attuarlanon ci sono termini particolari nella pseudocodifica
20 SEQUENZA - ESEMPIO Algoritmo per calcolare la somma di due numeri Input: i due valori che dovranno essere sommati, indichiamoli con  ADDENDO1 e ADDENDO2  Assegnazione: il risultato ottenuto dalla somma  fra i due valori lo assegneremo alla variabile  SOMMA.  Output: il valore presente nella variabile SOMMA.    
21 SELEZIONE è una scelta di azioni alternative che dipendono da una condizione una o più azioni devono essere eseguite, in alternativa ad altre, in base ad una condizione posta.  come alternativa alle azioni da effettuare, se la condizione è soddisfatta, possono anche non essere indicate azioni (in questo caso si andrà in sequenza, come se la Scelta non fosse presente).    I termini della pseudocodifica sono se, allora, altrimenti
22 SELEZIONE - ESEMPIO algoritmo per trovare il valore più grande fra due valori forniti  Input: i due valori da attribuire alla variabile A e alla variabile B  Output: il contenuto di una delle due variabili   ottenuto attraverso una Scelta;  il valore di A se è maggiore di B oppure il valore di B se A non è maggiore di B

Contenu connexe

Tendances

Unit 1-problem solving with algorithm
Unit 1-problem solving with algorithmUnit 1-problem solving with algorithm
Unit 1-problem solving with algorithmrajkumar1631010038
 
Intro To Programming Concepts
Intro To Programming ConceptsIntro To Programming Concepts
Intro To Programming ConceptsJussi Pohjolainen
 
03 algorithm properties
03 algorithm properties03 algorithm properties
03 algorithm propertiesLincoln School
 
Algorithm and flowchart
Algorithm and flowchartAlgorithm and flowchart
Algorithm and flowchartRabin BK
 
Flowchart and algorithem
Flowchart and algorithemFlowchart and algorithem
Flowchart and algorithemehsanullah786
 
Nonrecursive predictive parsing
Nonrecursive predictive parsingNonrecursive predictive parsing
Nonrecursive predictive parsingalldesign
 
Programming fundamentals lecture 1&2
Programming fundamentals lecture 1&2Programming fundamentals lecture 1&2
Programming fundamentals lecture 1&2Raja Hamid
 
Tema 1 Fundamentos de programación.pdf
Tema 1 Fundamentos de programación.pdfTema 1 Fundamentos de programación.pdf
Tema 1 Fundamentos de programación.pdfAdrianaCamilaCondori
 
Algorithmic problem sloving
Algorithmic problem slovingAlgorithmic problem sloving
Algorithmic problem slovingMani Kandan
 
Our presentation on algorithm design
Our presentation on algorithm designOur presentation on algorithm design
Our presentation on algorithm designNahid Hasan
 
Algorithms and flow charts
Algorithms and flow chartsAlgorithms and flow charts
Algorithms and flow chartsChinnu Edwin
 
Cosa sono gli algoritmi?
Cosa sono gli algoritmi?Cosa sono gli algoritmi?
Cosa sono gli algoritmi?mattuzzi
 

Tendances (20)

Unit 1-problem solving with algorithm
Unit 1-problem solving with algorithmUnit 1-problem solving with algorithm
Unit 1-problem solving with algorithm
 
Intro To Programming Concepts
Intro To Programming ConceptsIntro To Programming Concepts
Intro To Programming Concepts
 
8.unit-1-fds-2022-23.pptx
8.unit-1-fds-2022-23.pptx8.unit-1-fds-2022-23.pptx
8.unit-1-fds-2022-23.pptx
 
03 algorithm properties
03 algorithm properties03 algorithm properties
03 algorithm properties
 
Lettera email
Lettera emailLettera email
Lettera email
 
Algorithm
AlgorithmAlgorithm
Algorithm
 
Compilers
CompilersCompilers
Compilers
 
Algorithm and flowchart
Algorithm and flowchartAlgorithm and flowchart
Algorithm and flowchart
 
Flowchart and algorithem
Flowchart and algorithemFlowchart and algorithem
Flowchart and algorithem
 
Nonrecursive predictive parsing
Nonrecursive predictive parsingNonrecursive predictive parsing
Nonrecursive predictive parsing
 
Programming fundamentals lecture 1&2
Programming fundamentals lecture 1&2Programming fundamentals lecture 1&2
Programming fundamentals lecture 1&2
 
Tema 1 Fundamentos de programación.pdf
Tema 1 Fundamentos de programación.pdfTema 1 Fundamentos de programación.pdf
Tema 1 Fundamentos de programación.pdf
 
Programming in c
Programming in cProgramming in c
Programming in c
 
Compiler lec 8
Compiler lec 8Compiler lec 8
Compiler lec 8
 
DS ppt
DS pptDS ppt
DS ppt
 
Algorithmic problem sloving
Algorithmic problem slovingAlgorithmic problem sloving
Algorithmic problem sloving
 
Our presentation on algorithm design
Our presentation on algorithm designOur presentation on algorithm design
Our presentation on algorithm design
 
Algorithms and flow charts
Algorithms and flow chartsAlgorithms and flow charts
Algorithms and flow charts
 
Guida alla software selection
Guida alla software selectionGuida alla software selection
Guida alla software selection
 
Cosa sono gli algoritmi?
Cosa sono gli algoritmi?Cosa sono gli algoritmi?
Cosa sono gli algoritmi?
 

En vedette

Coding: dai diagrammi di flusso al pipecoding
Coding: dai diagrammi di flusso al pipecodingCoding: dai diagrammi di flusso al pipecoding
Coding: dai diagrammi di flusso al pipecodingAlessandro Bogliolo
 
Insegnare gli algoritmi giocando: progetto sviluppo e sperimentazione di un p...
Insegnare gli algoritmi giocando: progetto sviluppo e sperimentazione di un p...Insegnare gli algoritmi giocando: progetto sviluppo e sperimentazione di un p...
Insegnare gli algoritmi giocando: progetto sviluppo e sperimentazione di un p...Marco Damiano
 
15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi15 - Programmazione: Algoritmi
15 - Programmazione: AlgoritmiMajong DevJfu
 
Flow Chart - Diagramma a blocchi
Flow Chart - Diagramma a blocchiFlow Chart - Diagramma a blocchi
Flow Chart - Diagramma a blocchidibari.92
 
Asd 01 Algoritmi E Strutture Dati
Asd 01 Algoritmi E Strutture DatiAsd 01 Algoritmi E Strutture Dati
Asd 01 Algoritmi E Strutture DatiPier Luca Lanzi
 
Programmazione a blocchi
Programmazione a blocchiProgrammazione a blocchi
Programmazione a blocchiFabio Biscaro
 
Presentazione prova slideshare
Presentazione prova slidesharePresentazione prova slideshare
Presentazione prova slideshareTania de Angelis
 
Algoritmi per l'ottimizzazione convessa
Algoritmi per l'ottimizzazione convessaAlgoritmi per l'ottimizzazione convessa
Algoritmi per l'ottimizzazione convessaVittoriano Muttillo
 
Studio comparativo tra gli algoritmi di Dijkstra e Bellman-Ford
Studio comparativo tra gli algoritmi di Dijkstra e Bellman-FordStudio comparativo tra gli algoritmi di Dijkstra e Bellman-Ford
Studio comparativo tra gli algoritmi di Dijkstra e Bellman-FordFrancesco Ciclosi
 
DENSA:An effective negative selection algorithm with flexible boundaries for ...
DENSA:An effective negative selection algorithm with flexible boundaries for ...DENSA:An effective negative selection algorithm with flexible boundaries for ...
DENSA:An effective negative selection algorithm with flexible boundaries for ...Mario Pavone
 
Lezione3: Reti sociali, Algoritmi spettrali e SNAP
Lezione3: Reti sociali, Algoritmi spettrali e SNAPLezione3: Reti sociali, Algoritmi spettrali e SNAP
Lezione3: Reti sociali, Algoritmi spettrali e SNAPAndrea Capocci
 
Storia algoritmi Google (2003-2014)
Storia algoritmi Google (2003-2014)Storia algoritmi Google (2003-2014)
Storia algoritmi Google (2003-2014)Giusi Castagnetta
 
Lezione 1: Dalle reti sociali alle reti complesse
Lezione 1: Dalle reti sociali alle reti complesseLezione 1: Dalle reti sociali alle reti complesse
Lezione 1: Dalle reti sociali alle reti complesseAndrea Capocci
 
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli AlgoritmiAlgoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli AlgoritmiPier Luca Lanzi
 

En vedette (20)

come costruire un algoritmo
come costruire un algoritmocome costruire un algoritmo
come costruire un algoritmo
 
Un algoritmo è per sempre
Un algoritmo è per sempreUn algoritmo è per sempre
Un algoritmo è per sempre
 
Coding: dai diagrammi di flusso al pipecoding
Coding: dai diagrammi di flusso al pipecodingCoding: dai diagrammi di flusso al pipecoding
Coding: dai diagrammi di flusso al pipecoding
 
Insegnare gli algoritmi giocando: progetto sviluppo e sperimentazione di un p...
Insegnare gli algoritmi giocando: progetto sviluppo e sperimentazione di un p...Insegnare gli algoritmi giocando: progetto sviluppo e sperimentazione di un p...
Insegnare gli algoritmi giocando: progetto sviluppo e sperimentazione di un p...
 
15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi
 
Esercizio Sugli Algoritmi
Esercizio Sugli AlgoritmiEsercizio Sugli Algoritmi
Esercizio Sugli Algoritmi
 
Flow Chart - Diagramma a blocchi
Flow Chart - Diagramma a blocchiFlow Chart - Diagramma a blocchi
Flow Chart - Diagramma a blocchi
 
Asd 01 Algoritmi E Strutture Dati
Asd 01 Algoritmi E Strutture DatiAsd 01 Algoritmi E Strutture Dati
Asd 01 Algoritmi E Strutture Dati
 
Pixel art
Pixel artPixel art
Pixel art
 
Didattica e innovazione
Didattica e innovazioneDidattica e innovazione
Didattica e innovazione
 
Programmazione a blocchi
Programmazione a blocchiProgrammazione a blocchi
Programmazione a blocchi
 
Flow chart
Flow chartFlow chart
Flow chart
 
Presentazione prova slideshare
Presentazione prova slidesharePresentazione prova slideshare
Presentazione prova slideshare
 
Algoritmi per l'ottimizzazione convessa
Algoritmi per l'ottimizzazione convessaAlgoritmi per l'ottimizzazione convessa
Algoritmi per l'ottimizzazione convessa
 
Studio comparativo tra gli algoritmi di Dijkstra e Bellman-Ford
Studio comparativo tra gli algoritmi di Dijkstra e Bellman-FordStudio comparativo tra gli algoritmi di Dijkstra e Bellman-Ford
Studio comparativo tra gli algoritmi di Dijkstra e Bellman-Ford
 
DENSA:An effective negative selection algorithm with flexible boundaries for ...
DENSA:An effective negative selection algorithm with flexible boundaries for ...DENSA:An effective negative selection algorithm with flexible boundaries for ...
DENSA:An effective negative selection algorithm with flexible boundaries for ...
 
Lezione3: Reti sociali, Algoritmi spettrali e SNAP
Lezione3: Reti sociali, Algoritmi spettrali e SNAPLezione3: Reti sociali, Algoritmi spettrali e SNAP
Lezione3: Reti sociali, Algoritmi spettrali e SNAP
 
Storia algoritmi Google (2003-2014)
Storia algoritmi Google (2003-2014)Storia algoritmi Google (2003-2014)
Storia algoritmi Google (2003-2014)
 
Lezione 1: Dalle reti sociali alle reti complesse
Lezione 1: Dalle reti sociali alle reti complesseLezione 1: Dalle reti sociali alle reti complesse
Lezione 1: Dalle reti sociali alle reti complesse
 
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli AlgoritmiAlgoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
 

Similaire à Algoritmi (20)

1 Programmazione
1   Programmazione1   Programmazione
1 Programmazione
 
Informatica prime classi
Informatica prime classiInformatica prime classi
Informatica prime classi
 
7 Sottoprogrammi
7   Sottoprogrammi7   Sottoprogrammi
7 Sottoprogrammi
 
Presentazione,
Presentazione,Presentazione,
Presentazione,
 
Presentazione
PresentazionePresentazione
Presentazione
 
Caratteristiche del linguaggio c
Caratteristiche del linguaggio cCaratteristiche del linguaggio c
Caratteristiche del linguaggio c
 
La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -Fondamenti
 
Elaborazione automatica dei dati: computer e matlab
Elaborazione automatica dei dati: computer e matlabElaborazione automatica dei dati: computer e matlab
Elaborazione automatica dei dati: computer e matlab
 
1.01 Algoritmi
1.01 Algoritmi1.01 Algoritmi
1.01 Algoritmi
 
5 Strutture Iterative
5   Strutture Iterative5   Strutture Iterative
5 Strutture Iterative
 
Lezione js pdatabasecrudterzaparte
Lezione js pdatabasecrudterzaparteLezione js pdatabasecrudterzaparte
Lezione js pdatabasecrudterzaparte
 
Modulo 1 concetti di base dell'ict
Modulo 1 concetti di base dell'ictModulo 1 concetti di base dell'ict
Modulo 1 concetti di base dell'ict
 
La scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptxLa scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptx
 
Lezione1 Linguaggio C
Lezione1 Linguaggio CLezione1 Linguaggio C
Lezione1 Linguaggio C
 
Lezione JSP database Crud
Lezione JSP database CrudLezione JSP database Crud
Lezione JSP database Crud
 
Riepilogo Java C/C++
Riepilogo Java C/C++Riepilogo Java C/C++
Riepilogo Java C/C++
 
Modulo 1 - Lezione 1
Modulo 1 - Lezione 1Modulo 1 - Lezione 1
Modulo 1 - Lezione 1
 
9 Altre Istruzioni Di I O
9   Altre Istruzioni Di I O9   Altre Istruzioni Di I O
9 Altre Istruzioni Di I O
 
Algoritmi
AlgoritmiAlgoritmi
Algoritmi
 

Dernier

LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................giorgiadeascaniis59
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaSalvatore Cianciabella
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxlorenzodemidio01
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxlorenzodemidio01
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxlorenzodemidio01
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxlorenzodemidio01
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxlorenzodemidio01
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxtecongo2007
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileNicola Rabbi
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxtecongo2007
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....giorgiadeascaniis59
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.camillaorlando17
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................giorgiadeascaniis59
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxlorenzodemidio01
 
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxlorenzodemidio01
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoyanmeng831
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxtecongo2007
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxtecongo2007
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxlorenzodemidio01
 

Dernier (19)

LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione Civica
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptx
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptx
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibile
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptx
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
 
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceo
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptx
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptx
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
 

Algoritmi

  • 1.
  • 3. Costruzione di un algoritmo
  • 5. Rappresentazione di un algoritmo: pseudocodifica e diagrammi a blocchi
  • 6.
  • 7. 3 ALGORITMO Serie di prescrizioni o istruzioni che specifica l’insieme delle azioni da compiere per poter risolvere un problema. In particolare: L'algoritmo non è solamente l'insieme delle regole o dei comportamenti da applicare, ma anche l'esatta sequenza con cui vanno applicati per risolvere il problema a cui ci si riferisce. L’algoritmo deve essere collocato in un contesto (per costruire un algoritmo è necessario sapere cosa sa fare l’esecutore) Un algoritmo è una descrizione completa, univoca e esaustiva di un insieme finito di operazioni elementari, interpretabili e riproducibili da un esecutore, per portare a termine un dato compito e per raggiungere un risultato definitoin un tempo ragionevole.
  • 8.
  • 9. 5 ALGORITMO - REQUISITI Finitezza (Spaziale – Temporale) Deve pervenire al risultato finale con l'esecuzione di un numero finito di azioni da poter essere eseguite in un tempo finito Generalità Deve fornire il risultato del problema per tutti i possibili valori forniti dall'esterno. In questo caso si dice che l'algoritmo è definito su un intero insieme di valori e per tutti  fornisce un risultato corretto Non ambiguità Deve sempre essere chiaro qual è il passo successivo da effettuare Eseguibilità Deve essere effettivamente eseguibili dall’esecutore Completezza
  • 10. 6 ALGORITMO - COSTRUZIONE Esaminare una specifica realtà o problema (fase di analisi) Costruirne un’astrazione Rappresentarla (più o meno) formalmente Individuare i dati di input e output e le risorse disponibili Individuare una sequenza di azioni che, eseguite, risolvano il problema nel mondo dell’astrazione
  • 11. 7 ALGORITMI E LINGUAGGI Un algoritmo può essere comunicato in più linguaggi Quando chi riceve le istruzioni è un elaboratore elettronico il linguaggio deve essere adeguato al suo contesto A questo scopo sono stati creati i linguaggi di programmazione di alto livello (es. Pascal) Nei linguaggi è possibile codificare l’insieme delle istruzioni di un algoritmo per renderle eseguibili dal calcolatore
  • 12. 8 V  9 V  E Espressione, cioè una formula che specifica sempre un valore. Ogni espressione è composta da operandi e operatori E ASSEGNAZIONE Un'Assegnazione è un'azione in cui ad una variabile del problema, di un certo tipo, viene assegnato un valore di tipo compatibile (in conseguenza di un calcolo o copiandolo direttamente da un'altra variabile o da una costante). Le variabili  implicate nel calcolo non cambieranno il loro valore, ad eccezione eventualmente di quella che dovrà ricevere il valore calcolato (il risultato del calcolo) Gli operandi possono essere costanti, espressioni o variabili Gli operatori possono essere di tre tipi: aritmetici, di relazione e logici
  • 13. 9 INPUT Un'operazione di Input è un'azione  in cui una variabile del problema viene impostata con un valore fornito dall'esterno. Con un'operazione di Input si possono impostare, volendo, più variabili con altrettanti valori. Questa operazione serve per fornire, dall'esterno all'algoritmo, dei valori su cui lavorare.
  • 14. 10 OUTPUT Un'operazione di Output è un'azione in cui il valore o i valori rappresentati, ad un certo momento, da una o più variabili del problema vengono evidenziati all'esterno Questa operazione serve per comunicare i risultati, parziali o definitivi, ottenuti attraverso l'algoritmo
  • 15. 11 ESEMPIO- ISTRUZIONI Il passo 1 serve a ricevere i dati iniziali,input Il passo 4 serve a comunicare il risultato, output CALCOLARE LA MEDIA ARITMETICA DI DUE NUMERI QUALSIASI Algoritmo: Leggere i due numeri Sommare i due numeri Dividere il risultato per 2 Comunicare il risultato Per acquisire i dati possiamo usare le istruzioni del tipo: leggi, acquisisci, accetta. Per comunicare i dati possiamo usare le istruzioni del tipo: scrivi, comunica, mostra. Ci possono essere delle variabili, che non sono nè di input nè di output, ma che sono necessarie all’elaborazione e che vengono dette Variabili di Lavoro.
  • 16. 12 ALGORITMO RAPPRESENTAZIONE Prima di scrivere il programma, normalmente si formalizza l'Algoritmo che dovrà essere eseguito, utilizzando un modello. La formalizzazione dell'algoritmo renderà più agevole la scrittura del programma stesso. Possiamo utilizzare sostanzialmente due Modelli per la rappresentazione degli Algoritmi: la Pseudo-Codifica e i Diagrammi di Flusso (Flow-Chart )
  • 17. 13 PSEUDOCODIFICA La pseudocodifica è la descrizione di un algoritmo ottenuta utilizzando termini e parole del linguaggio comune, ma applicando una serie di regole che permettono di organizzare un tipo di testo formalmente rigoroso e strettamente orientato alla stesura degli algoritmi La pseudocodifica utilizza delle regole per strutturare il testo: Le parole chiave che aprono e chiudono il testo di un algoritmo sono INIZIO e FINE. Altre parole chiave sono ALLORA, SE, ALTRIMENTI, DA, ESEGUI, FINCHÉ, MENTRE, PER, RIPETI, Ogni istruzione è indicata con una frase del linguaggio corrente e può contenere un’espressione di tipo aritmetico o logico Le istruzioni LEGGI (lista di variabili) e SCRIVI (variabili e costanti) vengono utilizzate per descrivere le operazione di immissione ed emissione dei dati La richiesta all’utente per acquisire i dati necessari all’elaborazione può essere indicata con CHIEDI(lista dei dati che servono) Le variabili, le costanti vengono indicate da parole in minuscolo dette identificatori
  • 18. 14 PSEUDOCODIFICA - ESEMPIO h Area del rettangolo PSEUDOCODIFICA b A= b  h INIZIO Dati input Chiedi (base, altezza) Leggi (base, altezza) Area  base * altezza Scrivi Area Dati output FINE Base e altezza del rettangolo Area del rettangolo
  • 19. 15 DIAGRAMMI A BLOCCHI (FLOW – CHART) Il metodo dei diagrammi a blocchi permette un visione immediata dell’intero procedimento e dell’ordine di esecuzione delle varie istruzioni I diagrammi a blocchiprevedono l'utilizzo di simboli grafici in cui vengono racchiuse le azioni da compiere. I simboli di forma diversa hanno ciascuno un proprio significato; all’interno di ogni simbolo è presente un breve testo sintetico. Linee orientate con frecce, che uniscono fra loro i vari simboli, indicano il flusso delle operazioni. Con questo modello si ottiene una rappresentazione che ha, nell'aspetto grafico, lo scopo di   mettere in particolare evidenza le strutture di base utilizzate.
  • 20. 16 DIAGRAMMI A BLOCCHI (FLOW – CHART) Inizio Condizione Fine commento L'Assegnazione viene rappresentata utilizzando un rettangolo, le operazioni di Input/Output da un romboide (due lati orizzontali) e le proposizioni logiche vengono racchiuse in un rombo. I vari simboli grafici vengono uniti fra di loro, nella sequenza da applicare, utilizzando una linea continua; deve sempre essere indicata la FINE e l'INIZIO
  • 21. 17 FLOW CHART - ESEMPIO Inizio Area del rettangolo DIAGRAMMA A BLOCCHI h Chiedi base, altezza b A= b  h Leggi base altezza Dati input Base e altezza del rettangolo Area base * altezza Dati output Scrivi area Area del rettangolo Fine
  • 22. 18 ALGORITMI - STRUTTURE Un programma serve per indicare al computer l'algoritmo da eseguire. Per risolvere la formalizzazione degli algoritmi e di conseguenza la scrittura dei programmi  (il software) vengono utilizzate tre tipi di strutture logiche che ci permettono di collegare le azioni elementari che compongono un algoritmo: la Sequenza, la Selezione, e l'Iterazione.
  • 23. 19 SEQUENZA è una concatenazione di azioni una o più azioni devono essere eseguite in successione per attuarlanon ci sono termini particolari nella pseudocodifica
  • 24. 20 SEQUENZA - ESEMPIO Algoritmo per calcolare la somma di due numeri Input: i due valori che dovranno essere sommati, indichiamoli con ADDENDO1 e ADDENDO2 Assegnazione: il risultato ottenuto dalla somma  fra i due valori lo assegneremo alla variabile  SOMMA. Output: il valore presente nella variabile SOMMA.    
  • 25. 21 SELEZIONE è una scelta di azioni alternative che dipendono da una condizione una o più azioni devono essere eseguite, in alternativa ad altre, in base ad una condizione posta. come alternativa alle azioni da effettuare, se la condizione è soddisfatta, possono anche non essere indicate azioni (in questo caso si andrà in sequenza, come se la Scelta non fosse presente).   I termini della pseudocodifica sono se, allora, altrimenti
  • 26. 22 SELEZIONE - ESEMPIO algoritmo per trovare il valore più grande fra due valori forniti Input: i due valori da attribuire alla variabile A e alla variabile B Output: il contenuto di una delle due variabili   ottenuto attraverso una Scelta; il valore di A se è maggiore di B oppure il valore di B se A non è maggiore di B
  • 27. 23 ITERAZIONE è la ripetizione di una certa azione dipendente da una condizione una o più azioni devono essere eseguite, più volte, sulla base di una condizione da soddisfare I termini della pseudocodifica usati sono: ripeti, finchè oppure mentre, esegui
  • 28. 24 ITERAZIONE - ESEMPIO Algoritmo per calcolare la somma di tutti i numeri da 1 ad un certo valore n. Input: n, l’ultimo valore che si dovrà sommare, lo indichiamo con Num Output:   Il valore finale della variabile Somma che ha la funzione di Accumulatore e servirà per accumulare  i vari valori sommati. K: variabile di lavoro; viene inizialmente impostata a 1 e successivamente incrementata, ogni volta, di una unità per fornire i numeri da sommare Procedimento: all'interno di un'iterazione (ciclo) verrà, ogni volta, aggiunto a Somma il valore contenuto in K; il ciclo verrà ripetuto  finché K risulta minore o uguale a Num  
  • 29. 25 TEOREMA DI BÖHM-JACOPINI Ogni algoritmo, comunque formulato, è sempre riconducibile a un algoritmo contenete soltanto le strutture logiche di sequenza, selezione, iterazione. Quindi, ogni azione complessa che sia esprimibile collegando in qualche modo azioni elementari eseguibili per qualche esecutore può anche essere espressa con un algoritmo contenente le azioni elementari collegate tra loro solamente dalle tre strutture logiche di sequenza, selezione, iterazione Risultato: è possibile definire e minimizzare un linguaggio algoritmico senza limitarne la potenza espressiva
  • 30. 26 TEOREMA DI BÖHM-JACOPINI LINGUAGGIO COMUNE Ogni frase descrittiva può essere formulata in modi diversi, con sfumature diverse, usando costrutti diversi (Complessità) LINGUAGGIO ALGORITMICO Ogni descrizione operativa utilizza solo azioni elementari e le strutture di selezione, sequenza e iterazione (Riduzione della complessità, Formalizzazione) TEOREMA DI BOHM-JACOPINI Hanno la stessa potenza espressiva sul piano algoritmico operativo