際際滷

際際滷Share a Scribd company logo
1CONTENUTIDefinizione di algoritmo
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, iterazione2PREMESSANel linguaggio comune spesso ci capita di dover descrivere dei procedimenti. Un esempio tipico sono le ricette di cucina	Per esempio, nella ricetta di una torta vengono elencate una serie di azioni da eseguire per ottenere il dolce 	alcune sono azioni elementari perch辿 si possono eseguire senza ulteriori indicazioni (es. mettere lo zucchero)	 altre sono invece azioni complesse perch辿 potrebbero aver bisogno di essere ulteriormente descritte scomponendole in ulteriori azioni elementari Lelenco delle azioni che si ricava fornisce un algoritmo che descrive unazione complessa per mezzo di azioni elementariOgni volta che per risolvere un problema lo si scompone in una successione finita di problemi elementari si utilizza un algoritmo
3ALGORITMOSerie di prescrizioni o istruzioni che specifica linsieme 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.Lalgoritmo deve essere collocato in un contesto (per costruire un algoritmo 竪 necessario sapere cosa sa fare lesecutore)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.
4ALGORITMO - ESEMPIODeve Telefonare a PaoloMARIAnumero telefonico di PaoloInformazioni necessarie:Il messaggio da comunicareRisultati:Esito della telefonataAlgoritmoleggere il numero telefonico comporre il numeroa seconda della situazione che si presenta : se Paolo non risponde andare al passo 6se Paolo rispondeconversare con Paolo Chiudere la comunicazione
5ALGORITMO - REQUISITIFinitezza (Spaziale  Temporale)Deve pervenire al risultato finale con l'esecuzione di un numerofinito di azioni da poter essere eseguite in un tempo finitoGeneralit	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 correttoNon ambiguit	Deve sempre essere chiaro qual 竪 il passo successivo da effettuare Eseguibilit	Deve essere effettivamente eseguibili dallesecutoreCompletezza
6ALGORITMO - COSTRUZIONEEsaminare una specifica realt o problema (fase di analisi)Costruirne unastrazioneRappresentarla (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 dellastrazione
7ALGORITMI E LINGUAGGIUn algoritmo pu嘆 essere comunicato in pi湛 linguaggiQuando chi riceve le istruzioni 竪 un elaboratore elettronico il linguaggio deve essere adeguato al suo contestoA questo scopo sono stati creati i linguaggi di programmazione di alto livello (es. Pascal)Nei linguaggi 竪 possibile codificare linsieme delle istruzioni di un algoritmo per renderle eseguibili dal calcolatore
8V  9V  EEspressione, cio竪 una formula che specifica sempre un valore.Ogni espressione 竪 composta da operandi e operatoriEASSEGNAZIONEUn'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 variabiliGli operatori possono essere di tre tipi: aritmetici, di relazione e logici
9INPUTUn'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.
10OUTPUTUn'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
11ESEMPIO- ISTRUZIONIIl passo 1 serve a ricevere i dati iniziali,inputIl passo 4 serve a comunicare il risultato, outputCALCOLARE LA MEDIA ARITMETICA DI DUE NUMERI QUALSIASIAlgoritmo:Leggere i due numeriSommare i due numeriDividere il risultato per 2Comunicare il risultatoPer 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 allelaborazione e che vengono dette Variabili di Lavoro.
12ALGORITMO RAPPRESENTAZIONEPrima 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 )
13PSEUDOCODIFICALa 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 algoritmiLa 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 unespressione di tipo aritmetico o logicoLe istruzioni LEGGI (lista di variabili) e SCRIVI (variabili e costanti) vengono utilizzate per descrivere le operazione di immissione ed emissione dei datiLa richiesta allutente per acquisire i dati necessari allelaborazione pu嘆 essere indicata con CHIEDI(lista dei dati che servono)Le variabili, le costanti vengono indicate da parole in minuscolo dette identificatori
14PSEUDOCODIFICA - ESEMPIOhArea del rettangoloPSEUDOCODIFICAbA= b  hINIZIODati inputChiedi (base, altezza)Leggi (base, altezza)Area  base * altezzaScrivi AreaDati outputFINEBase e altezza del rettangoloArea del rettangolo
15DIAGRAMMI A BLOCCHI (FLOW  CHART)Il metodo dei diagrammi a blocchi permette un visione immediata dellintero procedimento e dellordine di esecuzione delle varie istruzioniI 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; allinterno 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.
16DIAGRAMMI A BLOCCHI (FLOW  CHART)Inizio Condizione Fine commentoL'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
17FLOW CHART - ESEMPIOInizio Area del rettangoloDIAGRAMMA A BLOCCHIhChiedi base, altezzabA= b  hLeggi base altezzaDati inputBase e altezza del rettangoloArea base * altezzaDati outputScrivi area Area del rettangoloFine
18ALGORITMI - STRUTTUREUn 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.
19SEQUENZA竪 una concatenazione di azioniuna o pi湛 azioni devono essere eseguite in successioneper attuarlanon ci sono termini particolari nella pseudocodifica
20SEQUENZA - ESEMPIOAlgoritmo per calcolare la somma di due numeriInput: 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. 油油油
21SELEZIONE竪 una scelta di azioni alternative che dipendono da una condizioneuna 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
22SELEZIONE - ESEMPIOalgoritmo 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 (20)

SD Corso Word
SD Corso WordSD Corso Word
SD Corso Word
Andrea248812
Sistemi operativi
Sistemi operativiSistemi operativi
Sistemi operativi
Paola Bez
La PEC
La PECLa PEC
La PEC
CarolaTerrenzi
le componenti di un testo poetico
le componenti di un testo poeticole componenti di un testo poetico
le componenti di un testo poetico
ginapina
Introduzione alla Sicurezza Informatica
Introduzione alla Sicurezza InformaticaIntroduzione alla Sicurezza Informatica
Introduzione alla Sicurezza Informatica
Vincenzo Calabr嘆
Ok modello rubrica elaborazione di un cartellone in gruppo
Ok modello rubrica elaborazione di un cartellone in gruppoOk modello rubrica elaborazione di un cartellone in gruppo
Ok modello rubrica elaborazione di un cartellone in gruppo
Istituto Nazionale di Documentazione, Innovazione e Ricerca Educativa
HARDWARE & SOFTWARE
HARDWARE & SOFTWAREHARDWARE & SOFTWARE
HARDWARE & SOFTWARE
GiuseppeSquillaci1
corso web - Introduzione ai Database
corso web - Introduzione ai Databasecorso web - Introduzione ai Database
corso web - Introduzione ai Database
Riccardo Piccioni
Document & Process Management per la gestione delle Bolle Entrata Merce
Document & Process Management per la gestione delle Bolle Entrata MerceDocument & Process Management per la gestione delle Bolle Entrata Merce
Document & Process Management per la gestione delle Bolle Entrata Merce
Talea Consulting Srl
Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01
Majong DevJfu
Iva fattura
Iva fatturaIva fattura
Iva fattura
1csia1415
Laboratorio di scrittura: la punteggiatura
Laboratorio di scrittura: la punteggiaturaLaboratorio di scrittura: la punteggiatura
Laboratorio di scrittura: la punteggiatura
Giovanni Dalla Bona
Il colore
Il coloreIl colore
Il colore
Scuola Grafica Cartaria 束San Zeno損
basics of compiler design
basics of compiler designbasics of compiler design
basics of compiler design
Preeti Katiyar
Presentazione IVA
Presentazione IVAPresentazione IVA
Presentazione IVA
lore10sl
Mapa conceptual   victortorrealbaMapa conceptual   victortorrealba
Mapa conceptual victortorrealba
vmtorrealba
Presentazione IVA
Presentazione IVAPresentazione IVA
Presentazione IVA
prunepinzo
Compilers
CompilersCompilers
Compilers
Satyamevjayte Haxor
Il protocollo informatico e gestione documentale
Il protocollo informatico e gestione documentaleIl protocollo informatico e gestione documentale
Il protocollo informatico e gestione documentale
Cesare Ciabatti
Il sistema informativo
Il sistema informativoIl sistema informativo
Il sistema informativo
Giovanni Carbonara
Sistemi operativi
Sistemi operativiSistemi operativi
Sistemi operativi
Paola Bez
le componenti di un testo poetico
le componenti di un testo poeticole componenti di un testo poetico
le componenti di un testo poetico
ginapina
Introduzione alla Sicurezza Informatica
Introduzione alla Sicurezza InformaticaIntroduzione alla Sicurezza Informatica
Introduzione alla Sicurezza Informatica
Vincenzo Calabr嘆
corso web - Introduzione ai Database
corso web - Introduzione ai Databasecorso web - Introduzione ai Database
corso web - Introduzione ai Database
Riccardo Piccioni
Document & Process Management per la gestione delle Bolle Entrata Merce
Document & Process Management per la gestione delle Bolle Entrata MerceDocument & Process Management per la gestione delle Bolle Entrata Merce
Document & Process Management per la gestione delle Bolle Entrata Merce
Talea Consulting Srl
Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01
Majong DevJfu
Iva fattura
Iva fatturaIva fattura
Iva fattura
1csia1415
Laboratorio di scrittura: la punteggiatura
Laboratorio di scrittura: la punteggiaturaLaboratorio di scrittura: la punteggiatura
Laboratorio di scrittura: la punteggiatura
Giovanni Dalla Bona
basics of compiler design
basics of compiler designbasics of compiler design
basics of compiler design
Preeti Katiyar
Presentazione IVA
Presentazione IVAPresentazione IVA
Presentazione IVA
lore10sl
Mapa conceptual   victortorrealbaMapa conceptual   victortorrealba
Mapa conceptual victortorrealba
vmtorrealba
Presentazione IVA
Presentazione IVAPresentazione IVA
Presentazione IVA
prunepinzo
Il protocollo informatico e gestione documentale
Il protocollo informatico e gestione documentaleIl protocollo informatico e gestione documentale
Il protocollo informatico e gestione documentale
Cesare Ciabatti

Viewers also liked (20)

come costruire un algoritmo
come costruire un algoritmocome costruire un algoritmo
come costruire un algoritmo
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Cosa sono gli algoritmi?
Cosa sono gli algoritmi?Cosa sono gli algoritmi?
Cosa sono gli algoritmi?
mattuzzi
Un algoritmo 竪 per sempre
Un algoritmo 竪 per sempreUn algoritmo 竪 per sempre
Un algoritmo 竪 per sempre
Alessandro Bogliolo
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
Alessandro 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: Algoritmi
Majong DevJfu
Esercizio Sugli Algoritmi
Esercizio Sugli AlgoritmiEsercizio Sugli Algoritmi
Esercizio Sugli Algoritmi
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Flow Chart - Diagramma a blocchi
Flow Chart - Diagramma a blocchiFlow Chart - Diagramma a blocchi
Flow Chart - Diagramma a blocchi
dibari.92
Asd 01 Algoritmi E Strutture Dati
Asd 01 Algoritmi E Strutture DatiAsd 01 Algoritmi E Strutture Dati
Asd 01 Algoritmi E Strutture Dati
Pier Luca Lanzi
Pixel art
Pixel artPixel art
Pixel art
Alessandro Bogliolo
Didattica e innovazione
Didattica e innovazioneDidattica e innovazione
Didattica e innovazione
Alessandro Bogliolo
Programmazione a blocchi
Programmazione a blocchiProgrammazione a blocchi
Programmazione a blocchi
Fabio Biscaro
Flow chart
Flow chartFlow chart
Flow chart
orestJump
Presentazione prova slideshare
Presentazione prova slidesharePresentazione prova slideshare
Presentazione prova slideshare
Tania de Angelis
Algoritmi per l'ottimizzazione convessa
Algoritmi per l'ottimizzazione convessaAlgoritmi per l'ottimizzazione convessa
Algoritmi per l'ottimizzazione convessa
Vittoriano 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-Ford
Francesco 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 SNAP
Andrea 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 complesse
Andrea Capocci
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 pipecoding
Alessandro 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: Algoritmi
Majong DevJfu
Flow Chart - Diagramma a blocchi
Flow Chart - Diagramma a blocchiFlow Chart - Diagramma a blocchi
Flow Chart - Diagramma a blocchi
dibari.92
Asd 01 Algoritmi E Strutture Dati
Asd 01 Algoritmi E Strutture DatiAsd 01 Algoritmi E Strutture Dati
Asd 01 Algoritmi E Strutture Dati
Pier Luca Lanzi
Programmazione a blocchi
Programmazione a blocchiProgrammazione a blocchi
Programmazione a blocchi
Fabio Biscaro
Flow chart
Flow chartFlow chart
Flow chart
orestJump
Presentazione prova slideshare
Presentazione prova slidesharePresentazione prova slideshare
Presentazione prova slideshare
Tania de Angelis
Algoritmi per l'ottimizzazione convessa
Algoritmi per l'ottimizzazione convessaAlgoritmi per l'ottimizzazione convessa
Algoritmi per l'ottimizzazione convessa
Vittoriano 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-Ford
Francesco 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 SNAP
Andrea 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 complesse
Andrea Capocci

Similar to Algoritmi (20)

Informatica prime classi
Informatica prime classiInformatica prime classi
Informatica prime classi
rtilotta
7 Sottoprogrammi
7   Sottoprogrammi7   Sottoprogrammi
7 Sottoprogrammi
guest60e9511
Presentazione,
Presentazione,Presentazione,
Presentazione,
martinarm64
Presentazione
PresentazionePresentazione
Presentazione
martinrm64
Caratteristiche del linguaggio c
Caratteristiche del linguaggio cCaratteristiche del linguaggio c
Caratteristiche del linguaggio c
ughetta
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++
I.S.I.S. "Antonio Serra" - Napoli
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -Fondamenti
Angela Cristina
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
profman
1.01 Algoritmi
1.01 Algoritmi1.01 Algoritmi
1.01 Algoritmi
Angela Cristina
5 Strutture Iterative
5   Strutture Iterative5   Strutture Iterative
5 Strutture Iterative
guest60e9511
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
Andreina Concas
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
I.S.I.S. "Antonio Serra" - Napoli
Lezione1 Linguaggio C
Lezione1 Linguaggio CLezione1 Linguaggio C
Lezione1 Linguaggio C
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Lezione JSP database Crud
Lezione JSP database CrudLezione JSP database Crud
Lezione JSP database Crud
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Riepilogo Java C/C++
Riepilogo Java C/C++Riepilogo Java C/C++
Riepilogo Java C/C++
Pasquale Paola
9 Altre Istruzioni Di I O
9   Altre Istruzioni Di I O9   Altre Istruzioni Di I O
9 Altre Istruzioni Di I O
guest60e9511
Algoritmi
AlgoritmiAlgoritmi
Algoritmi
mattuzzi

Recently uploaded (18)

Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Damiano Orru
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark JohnstonTest Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
pplqadiri
Customer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
Customer Satisfaction a.s. 2023-24 - Questionario AutovalutazioneCustomer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
Customer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
belodevici
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
orrahnaf
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazione
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazioneCustomer Satisfaction a.s. 2022-23 - Questionario autovalutazione
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazione
belodevici
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
Learning Swift Building Apps for OSX, iOS, and Beyond Jon ManningLearning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
jelieltoinks
Test Bank for Systems Analysis and Design 8th Edition: Kendall
Test Bank for Systems Analysis and Design 8th Edition: KendallTest Bank for Systems Analysis and Design 8th Edition: Kendall
Test Bank for Systems Analysis and Design 8th Edition: Kendall
alawamajina
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
izmarmelum
Essentials of Accounting for Governmental and Not for Profit Organizations 13...
Essentials of Accounting for Governmental and Not for Profit Organizations 13...Essentials of Accounting for Governmental and Not for Profit Organizations 13...
Essentials of Accounting for Governmental and Not for Profit Organizations 13...
orakategy
La tossicodipendenza pi湛 difficile da trattare.pptx
La tossicodipendenza pi湛 difficile da trattare.pptxLa tossicodipendenza pi湛 difficile da trattare.pptx
La tossicodipendenza pi湛 difficile da trattare.pptx
Fabio Scandurra
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim WalkerImproving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
aokasmaany
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
orakategy
New Methods of Literacy Research 1st Edition Peggy Albers
New Methods of Literacy Research 1st Edition Peggy AlbersNew Methods of Literacy Research 1st Edition Peggy Albers
New Methods of Literacy Research 1st Edition Peggy Albers
uxhcablende
2 - Presentazione disturbo spettro autismo.pdf
2 - Presentazione disturbo spettro  autismo.pdf2 - Presentazione disturbo spettro  autismo.pdf
2 - Presentazione disturbo spettro autismo.pdf
GiovanniBertoni
Test Bank for Understanding Abnormal Behavior, 10th Edition : Sue
Test Bank for Understanding Abnormal Behavior, 10th Edition : SueTest Bank for Understanding Abnormal Behavior, 10th Edition : Sue
Test Bank for Understanding Abnormal Behavior, 10th Edition : Sue
dementogge
Digital Business Networks 1st Edition Dooley Solutions Manual
Digital Business Networks 1st Edition Dooley Solutions ManualDigital Business Networks 1st Edition Dooley Solutions Manual
Digital Business Networks 1st Edition Dooley Solutions Manual
idderkribo
Designing Intelligent Construction Projects Michael Frahm
Designing Intelligent Construction Projects Michael FrahmDesigning Intelligent Construction Projects Michael Frahm
Designing Intelligent Construction Projects Michael Frahm
ewoadetozito
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
osanoarak
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Damiano Orru
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark JohnstonTest Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
pplqadiri
Customer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
Customer Satisfaction a.s. 2023-24 - Questionario AutovalutazioneCustomer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
Customer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
belodevici
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
orrahnaf
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazione
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazioneCustomer Satisfaction a.s. 2022-23 - Questionario autovalutazione
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazione
belodevici
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
Learning Swift Building Apps for OSX, iOS, and Beyond Jon ManningLearning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
jelieltoinks
Test Bank for Systems Analysis and Design 8th Edition: Kendall
Test Bank for Systems Analysis and Design 8th Edition: KendallTest Bank for Systems Analysis and Design 8th Edition: Kendall
Test Bank for Systems Analysis and Design 8th Edition: Kendall
alawamajina
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
izmarmelum
Essentials of Accounting for Governmental and Not for Profit Organizations 13...
Essentials of Accounting for Governmental and Not for Profit Organizations 13...Essentials of Accounting for Governmental and Not for Profit Organizations 13...
Essentials of Accounting for Governmental and Not for Profit Organizations 13...
orakategy
La tossicodipendenza pi湛 difficile da trattare.pptx
La tossicodipendenza pi湛 difficile da trattare.pptxLa tossicodipendenza pi湛 difficile da trattare.pptx
La tossicodipendenza pi湛 difficile da trattare.pptx
Fabio Scandurra
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim WalkerImproving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
aokasmaany
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
orakategy
New Methods of Literacy Research 1st Edition Peggy Albers
New Methods of Literacy Research 1st Edition Peggy AlbersNew Methods of Literacy Research 1st Edition Peggy Albers
New Methods of Literacy Research 1st Edition Peggy Albers
uxhcablende
2 - Presentazione disturbo spettro autismo.pdf
2 - Presentazione disturbo spettro  autismo.pdf2 - Presentazione disturbo spettro  autismo.pdf
2 - Presentazione disturbo spettro autismo.pdf
GiovanniBertoni
Test Bank for Understanding Abnormal Behavior, 10th Edition : Sue
Test Bank for Understanding Abnormal Behavior, 10th Edition : SueTest Bank for Understanding Abnormal Behavior, 10th Edition : Sue
Test Bank for Understanding Abnormal Behavior, 10th Edition : Sue
dementogge
Digital Business Networks 1st Edition Dooley Solutions Manual
Digital Business Networks 1st Edition Dooley Solutions ManualDigital Business Networks 1st Edition Dooley Solutions Manual
Digital Business Networks 1st Edition Dooley Solutions Manual
idderkribo
Designing Intelligent Construction Projects Michael Frahm
Designing Intelligent Construction Projects Michael FrahmDesigning Intelligent Construction Projects Michael Frahm
Designing Intelligent Construction Projects Michael Frahm
ewoadetozito
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
osanoarak

Algoritmi

  • 3. Costruzione di un algoritmo
  • 5. Rappresentazione di un algoritmo: pseudocodifica e diagrammi a blocchi
  • 6. Strutture degli algoritmi: sequenza, selezione, iterazione2PREMESSANel linguaggio comune spesso ci capita di dover descrivere dei procedimenti. Un esempio tipico sono le ricette di cucina Per esempio, nella ricetta di una torta vengono elencate una serie di azioni da eseguire per ottenere il dolce alcune sono azioni elementari perch辿 si possono eseguire senza ulteriori indicazioni (es. mettere lo zucchero) altre sono invece azioni complesse perch辿 potrebbero aver bisogno di essere ulteriormente descritte scomponendole in ulteriori azioni elementari Lelenco delle azioni che si ricava fornisce un algoritmo che descrive unazione complessa per mezzo di azioni elementariOgni volta che per risolvere un problema lo si scompone in una successione finita di problemi elementari si utilizza un algoritmo
  • 7. 3ALGORITMOSerie di prescrizioni o istruzioni che specifica linsieme 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.Lalgoritmo deve essere collocato in un contesto (per costruire un algoritmo 竪 necessario sapere cosa sa fare lesecutore)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. 4ALGORITMO - ESEMPIODeve Telefonare a PaoloMARIAnumero telefonico di PaoloInformazioni necessarie:Il messaggio da comunicareRisultati:Esito della telefonataAlgoritmoleggere il numero telefonico comporre il numeroa seconda della situazione che si presenta : se Paolo non risponde andare al passo 6se Paolo rispondeconversare con Paolo Chiudere la comunicazione
  • 9. 5ALGORITMO - REQUISITIFinitezza (Spaziale Temporale)Deve pervenire al risultato finale con l'esecuzione di un numerofinito di azioni da poter essere eseguite in un tempo finitoGeneralit 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 correttoNon ambiguit Deve sempre essere chiaro qual 竪 il passo successivo da effettuare Eseguibilit Deve essere effettivamente eseguibili dallesecutoreCompletezza
  • 10. 6ALGORITMO - COSTRUZIONEEsaminare una specifica realt o problema (fase di analisi)Costruirne unastrazioneRappresentarla (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 dellastrazione
  • 11. 7ALGORITMI E LINGUAGGIUn algoritmo pu嘆 essere comunicato in pi湛 linguaggiQuando chi riceve le istruzioni 竪 un elaboratore elettronico il linguaggio deve essere adeguato al suo contestoA questo scopo sono stati creati i linguaggi di programmazione di alto livello (es. Pascal)Nei linguaggi 竪 possibile codificare linsieme delle istruzioni di un algoritmo per renderle eseguibili dal calcolatore
  • 12. 8V 9V EEspressione, cio竪 una formula che specifica sempre un valore.Ogni espressione 竪 composta da operandi e operatoriEASSEGNAZIONEUn'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 variabiliGli operatori possono essere di tre tipi: aritmetici, di relazione e logici
  • 13. 9INPUTUn'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. 10OUTPUTUn'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. 11ESEMPIO- ISTRUZIONIIl passo 1 serve a ricevere i dati iniziali,inputIl passo 4 serve a comunicare il risultato, outputCALCOLARE LA MEDIA ARITMETICA DI DUE NUMERI QUALSIASIAlgoritmo:Leggere i due numeriSommare i due numeriDividere il risultato per 2Comunicare il risultatoPer 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 allelaborazione e che vengono dette Variabili di Lavoro.
  • 16. 12ALGORITMO RAPPRESENTAZIONEPrima 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. 13PSEUDOCODIFICALa 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 algoritmiLa 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 unespressione di tipo aritmetico o logicoLe istruzioni LEGGI (lista di variabili) e SCRIVI (variabili e costanti) vengono utilizzate per descrivere le operazione di immissione ed emissione dei datiLa richiesta allutente per acquisire i dati necessari allelaborazione pu嘆 essere indicata con CHIEDI(lista dei dati che servono)Le variabili, le costanti vengono indicate da parole in minuscolo dette identificatori
  • 18. 14PSEUDOCODIFICA - ESEMPIOhArea del rettangoloPSEUDOCODIFICAbA= b hINIZIODati inputChiedi (base, altezza)Leggi (base, altezza)Area base * altezzaScrivi AreaDati outputFINEBase e altezza del rettangoloArea del rettangolo
  • 19. 15DIAGRAMMI A BLOCCHI (FLOW CHART)Il metodo dei diagrammi a blocchi permette un visione immediata dellintero procedimento e dellordine di esecuzione delle varie istruzioniI 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; allinterno 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. 16DIAGRAMMI A BLOCCHI (FLOW CHART)Inizio Condizione Fine commentoL'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. 17FLOW CHART - ESEMPIOInizio Area del rettangoloDIAGRAMMA A BLOCCHIhChiedi base, altezzabA= b hLeggi base altezzaDati inputBase e altezza del rettangoloArea base * altezzaDati outputScrivi area Area del rettangoloFine
  • 22. 18ALGORITMI - STRUTTUREUn 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. 19SEQUENZA竪 una concatenazione di azioniuna o pi湛 azioni devono essere eseguite in successioneper attuarlanon ci sono termini particolari nella pseudocodifica
  • 24. 20SEQUENZA - ESEMPIOAlgoritmo per calcolare la somma di due numeriInput: 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. 21SELEZIONE竪 una scelta di azioni alternative che dipendono da una condizioneuna 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. 22SELEZIONE - ESEMPIOalgoritmo 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. 23ITERAZIONE竪 la ripetizione di una certa azione dipendente da una condizioneuna o pi湛 azioni devono essere eseguite, pi湛 volte, sulla base di una condizione da soddisfareI termini della pseudocodifica usati sono: ripeti, finch竪 oppure mentre, esegui
  • 28. 24ITERAZIONE - ESEMPIOAlgoritmo per calcolare la somma di tutti i numeri da 1 ad un certo valore n. Input: n, lultimo 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. 25TEOREMA DI BHM-JACOPINIOgni 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, iterazioneRisultato: 竪 possibile definire e minimizzare un linguaggio algoritmico senza limitarne la potenza espressiva
  • 30. 26TEOREMA DI BHM-JACOPINILINGUAGGIO COMUNEOgni frase descrittiva pu嘆 essere formulata in modi diversi, con sfumature diverse, usando costrutti diversi(Complessit)LINGUAGGIO ALGORITMICOOgni descrizione operativa utilizza solo azioni elementari e le strutture di selezione,sequenza e iterazione(Riduzione della complessit,Formalizzazione)TEOREMA DI BOHM-JACOPINIHanno la stessa potenza espressiva sul piano algoritmico operativo