SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

1.4 software numerico
1.4 software numerico1.4 software numerico
1.4 software numericomorenito9001
 
Microcontroladores
MicrocontroladoresMicrocontroladores
MicrocontroladoresJuan Anaya
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turingAnel Sosa
 
Arreglo de punteros
Arreglo de punterosArreglo de punteros
Arreglo de punterospedreror1
 
Flow Chart - Diagramma a blocchi
Flow Chart - Diagramma a blocchiFlow Chart - Diagramma a blocchi
Flow Chart - Diagramma a blocchidibari.92
 
Administracion de Base de Datos Oracle
Administracion de Base de Datos OracleAdministracion de Base de Datos Oracle
Administracion de Base de Datos OracleISRAEL
 
Aritmetica del computador
Aritmetica del computadorAritmetica del computador
Aritmetica del computadorprofruiloba
 
sumadores, codificadores, decodificadores,multiplexores, demultiplexores
sumadores, codificadores, decodificadores,multiplexores, demultiplexoressumadores, codificadores, decodificadores,multiplexores, demultiplexores
sumadores, codificadores, decodificadores,multiplexores, demultiplexoresreinardoCoa
 
Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de PilaPablo Guerra
 
Configuración de multivibrador astable y monoestable
Configuración de multivibrador astable y monoestable Configuración de multivibrador astable y monoestable
Configuración de multivibrador astable y monoestable Gustavo Avella
 
Unidad aritmetica-logica
Unidad aritmetica-logicaUnidad aritmetica-logica
Unidad aritmetica-logicaJoseVasquez373
 
Istoricul calculatorului
Istoricul calculatoruluiIstoricul calculatorului
Istoricul calculatoruluiciorti_xp
 

What's hot (20)

1.4 software numerico
1.4 software numerico1.4 software numerico
1.4 software numerico
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
Unidad aritmética lógica (ALU)
Unidad aritmética  lógica (ALU)Unidad aritmética  lógica (ALU)
Unidad aritmética lógica (ALU)
 
Arreglo de punteros
Arreglo de punterosArreglo de punteros
Arreglo de punteros
 
Suma binaria
Suma binariaSuma binaria
Suma binaria
 
ELECTRONICA DIGITAL.pptx
ELECTRONICA DIGITAL.pptxELECTRONICA DIGITAL.pptx
ELECTRONICA DIGITAL.pptx
 
Flow Chart - Diagramma a blocchi
Flow Chart - Diagramma a blocchiFlow Chart - Diagramma a blocchi
Flow Chart - Diagramma a blocchi
 
332 presentacion grafos
332 presentacion grafos332 presentacion grafos
332 presentacion grafos
 
Multivibrador mesias
Multivibrador   mesiasMultivibrador   mesias
Multivibrador mesias
 
Algebra booleana
Algebra booleanaAlgebra booleana
Algebra booleana
 
Administracion de Base de Datos Oracle
Administracion de Base de Datos OracleAdministracion de Base de Datos Oracle
Administracion de Base de Datos Oracle
 
Aritmetica del computador
Aritmetica del computadorAritmetica del computador
Aritmetica del computador
 
Lenguajes de una maquina de turing
Lenguajes de una maquina de turingLenguajes de una maquina de turing
Lenguajes de una maquina de turing
 
sumadores, codificadores, decodificadores,multiplexores, demultiplexores
sumadores, codificadores, decodificadores,multiplexores, demultiplexoressumadores, codificadores, decodificadores,multiplexores, demultiplexores
sumadores, codificadores, decodificadores,multiplexores, demultiplexores
 
Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de Pila
 
Configuración de multivibrador astable y monoestable
Configuración de multivibrador astable y monoestable Configuración de multivibrador astable y monoestable
Configuración de multivibrador astable y monoestable
 
Unidad aritmetica-logica
Unidad aritmetica-logicaUnidad aritmetica-logica
Unidad aritmetica-logica
 
Máquinas de turing
Máquinas de turingMáquinas de turing
Máquinas de turing
 
Istoricul calculatorului
Istoricul calculatoruluiIstoricul calculatorului
Istoricul calculatorului
 

Viewers also liked

Cosa sono gli algoritmi?
Cosa sono gli algoritmi?Cosa sono gli algoritmi?
Cosa sono gli algoritmi?mattuzzi
 
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
 
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
 

Viewers also liked (20)

come costruire un algoritmo
come costruire un algoritmocome costruire un algoritmo
come costruire un algoritmo
 
Cosa sono gli algoritmi?
Cosa sono gli algoritmi?Cosa sono gli algoritmi?
Cosa sono gli algoritmi?
 
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
 
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
 
L'algoritmo
L'algoritmoL'algoritmo
L'algoritmo
 
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
 

Similar to Algoritmi (20)

Algoritmi
Algoritmi Algoritmi
Algoritmi
 
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
 

Recently uploaded

case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....giorgiadeascaniis59
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxlorenzodemidio01
 
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
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................giorgiadeascaniis59
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxtecongo2007
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxlorenzodemidio01
 
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
 
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
 
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
 
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
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxlorenzodemidio01
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................giorgiadeascaniis59
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileNicola Rabbi
 
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
 
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
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxlorenzodemidio01
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoyanmeng831
 

Recently uploaded (18)

case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 
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
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptx
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).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
 
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
 
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
 
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
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptx
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibile
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.
 
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
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceo
 

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