Gli Algoritmi L’algoritmo è un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si.

Slides:



Advertisements
Presentazioni simili
I Linguaggi di programmazione
Advertisements

Procedure e funzioni A. Ferrari.
L’Informatica dal Problema alla Soluzione
Iterazione enumerativa (for)
Informatica Problema Algoritmo Programma
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Algoritmi.
Unità Didattica 2 I Linguaggi di Programmazione
successioni e limiti di successioni
Il nostro progetto: la valutazione
Fondamenti di Informatica Algoritmi
Fondamenti di Informatica1 Ripetizioni di segmenti di codice Spesso è necessario ripetere più volte uno stesso segmento dell'algoritmo (e.g. I/O, elaborazioni.
Modello E-R Generalizzazioni
Strategia bottom-up Nella strategia bottom-up le specifiche iniziali sono suddivise in componenti via via sempre più piccole, fino a descrivere frammenti.
Modello E-R Generalizzazioni
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
A.Natali DL Maggio1999 Oggetti Concetti fondamentali.
LINGUAGGI DI PROGRAMMAZIONE
Elementi di Informatica
Elementi di Informatica
ELEMENTI DI PROGRAMMAZIONE
Algoritmi e Programmazione strutturata
INFORMATICA MATTEO CRISTANI.
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
Lezione 6 Strutture di controllo Il condizionale
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
Lo sviluppo del software e i linguaggi di programmazione
Un esempio: Calcolo della potenza n-esima di un numero reale
Sistemi e Tecnologie Informatiche Requisiti per la realizzazione di un buon programma.
Programma di Informatica Classi Prime
Ripasso : Algoritmi.
Complessità di un algoritmo
ALGORITMI a.
IO E LA MATEMATICA PROCEDURALE
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Algoritmi CHE COS’è UN ALGORITMO di ORDINAMENTO?
A LGORITMI DI ORDINAMENTO Cinzia Reverberi. COS’È UN ALGORITMO? Un algoritmo è un insieme ben ordinato di operazioni non ambigue ed effettivamente calcolabili.
Definizione di un algoritmo
Array (ordinamento) CORDA – Informatica A. Ferrari.
PROGRAMMA IL FUTURO Anno Scolastico 2014 / 2015
DIVERTIRSI CON SCRATCH
Linguaggi algoritmici
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Dal problema all’ algoritmo
ALGORITMI Un algoritmo (detto anche procedura, prescrizione, processo, routine, metodo) è un insieme di regole (dette anche direttive o istruzioni) che,
ALGORITMO Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi. Un formalismo che permette di rappresentare.
R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting.
GLI ALGORITMI VISIBILE SUL BLOG INFORMATICA ANNO SCOLASTICO 2013 / 2014 GABRIELE SCARICA 2°T.
Informatica 3 V anno.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
Algoritmi.
Realizzazione software
L’ELABORATORE ELETTRONICO uno strumento in grado di eseguire insiemi di azioni (“mosse”) elementari le azioni vengono eseguite su oggetti (dati) per produrre.
Il software Claudia Raibulet
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Problemi, algoritmi e programmazione
Scratch.
GLI ALGORITMI DI ORDINAMENTO
Programmazione dei Calcolatori Elettronici
GLI ALGORITMI Appunti preparati dalla prof.ssa Maria D’Angelo.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Unità di apprendimento 6
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Gli Algoritmi L’algoritmo è un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito.

Analizziamo ora le diverse componenti della frase Un insieme ordinato Un algoritmo è un insieme di operazioni, per le quali deve esistere un ordinamento chiaro e non ambiguo. Ciò significa che sappiamo quale operazione eseguire per prima e quale eseguire dopo averne completata una. Dobbiamo essere estremamente precisi nello specificare l’ordine in cui le operazioni devono essere eseguite.

Non ambigue Le operazioni utilizzate in un algoritmo devono soddisfare due criteri: essere non ambigue ed essere effettivamente computabili. Un’operazione è non ambigua quando può essere compresa ed eseguita direttamente dall’agente di calcolo senza necessità i ulteriori semplificazioni o spiegazioni(detta primitiva).

Effettivamente computabili Tuttavia, non è sufficiente che un’operazione sia comprensibile. Deve anche essere eseguibile dall’agente di calcolo. Eseguibile significa che deve esistere un processo computazionale che consente all’agente di calcolo di completare l’operazione con successo.

Che produce un risultato gli algoritmi risolvono problemi Che produce un risultato gli algoritmi risolvono problemi. Perché sia possibile determinare se una soluzione è corretta, l’algoritmo deve produrre un risultato osservabile da un utente, come un valore numerico, un nuovo oggetto o una modifica dell’ambiente. Utilizziamo la parola risultato invece che la parola risposta. Talvolta un algoritmo non può fornire la risposta corretta, perché per un dato input, tale risposta non esiste. In questi casi l’algoritmo può produrre qualcos’altro, come un messaggio di errore, una luce rossa d’avvertimento, o un’approssimazione della risposta corretta (risultati osservabili).

E termina in un tempo finito un’altra importante caratteristica degli algoritmi è che devono produrre il risultato dopo l’esecuzione di un numero finito di operazioni; dobbiamo garantire che l’algoritmo alla fine raggiungerà un’istruzione del tipo: «stop, ho finito». Quindi alla fine l’algoritmo si dovrà arrestare

Risoluzione algoritmica dei problemi Il dispositivo dovrebbe eseguire meccanicamente le istruzioni e completare con successo il compito senza la necessità di comprendere i processi che hanno portato a scoprire la soluzione. Il robot si limita a eseguire i passi nell’ordine specificato , completando con successo ciascuna operazione e alla fine producendo il risultato desiderato in un tempo finito. Tutto questo grazie a una rivoluzione informatica è eseguito dai computer, che è molto più efficiente di quel particolarissimo agente di calcolo che è il cervello umano.

Top-down e Bottom-up La programmazione top-down è uno stile di programmazione in cui la progettazione inizia specificando parti complesse e suddividendole successivamente in parti più piccole (divide et impera). Il bottom up prende corpo dal punto di partenza (bottom) ovvero dalla situazione iniziale; considera l'obiettivo finale, induce a costruire un percorso sequenziale organizzato in passaggi successivi in cui l'ancoraggio tra traguardi intermedi e obiettivo finale è generalmente ricercato in modo intuitivo.

Esempi di algoritmo

Gli algoritmi vengono raggruppati e catalogati a seconda della loro funzione o delle tecniche utilizzate per realizzarli, tuttavia una catalogazione rigorosa e completa è ormai diventata impossibile. Alcuni tipi di algoritmo Algoritmi di ordinamento Algoritmi di ricerca Genetici evolutivi Swarm Intelligence Ricorsivi Algoritmo combinatorio Codice automodificante Conversione e codifica Algoritmi di compressione: senza perdita di informazioni e con perdita di informazioni Molte categorie di algoritmi sono strettamente legate all'organizzazione dei dati in memoria (strutture dati). Altri algoritmi Algoritmi quantistici Algoritmo apriori Algoritmo di Berger Algoritmo di Sturm Algoritmo online Algoritmo di pitch detection

Risoluzione degli algoritmi Gli algoritmi possono essere espressi in diverse forme linguaggio naturale in forma grafica utilizzando i costrutti di un linguaggio di programmazione. I Programmi descrivono gli algoritmi in termini di sequenze di istruzioni scritte in un opportuno linguaggio di programmazione, comprensibile al calcolatore. Compito del programmatore: Individuare la sequenza di passi che portano alla soluzione del problema e produrre il relativo algoritmo Codificare l'algoritmo in un programma

Per costruire un programma Per costruire un programma sono necessari tre tipi di meccanismi di strutturazione: struttura di sequenza che permette di comporre istruzioni ed eseguirle una di seguito all'altra; ha un solo ingresso ed una sola uscita. struttura condizionale che permette di eseguire una sola istruzione tra due o più istruzioni, in base al valore di un'espressione booleana. struttura di iterazione che permette di eseguire ripetutamente un'istruzione sotto il controllo di un'espressione booleana.

Bubble sort (algoritmo di ordinamento) Il suo funzionamento è semplice: ogni coppia di elementi adiacenti della lista viene comparata e se essi sono nell'ordine sbagliato vengono invertiti. L'algoritmo scorre poi tutta la lista finché non vengono più eseguiti scambi, situazione che indica che la lista è ordinata.

Quicksort Quicksort è un algoritmo di ordinamento ricorsivo che si basa sul paradigma divide et impera.

esempio di Quicksort

es esempio di Bubble sort