Un algoritmo è costituito da una serie di passaggi che portano alla risoluzione di un problema.

Documenti analoghi
Dispensa di Informatica II.1

Unità di apprendimento 6. Dal problema al programma

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Blocchi di base. Schemi: Sequenza Selezione Iterazione. Flow chart strutturati Sequenza Selezione Iterazione. Teorema di Bohm e Jacopini

DISPENSE DI PROGRAMMAZIONE

L uomo come esecutore di algoritmi

PROGRAMMAZIONE (Corso A)

Diagrammi a blocchi 1

Computer. Capitolo 2. 05/04/2012 continuazione 1

Caratteristiche di un calcolatore elettronico

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Diagrammi a blocchi 1

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile

LA METAFORA DELL UFFICIO

Algoritmi. Pagina 1 di 5

Algoritmi e diagrammi di flusso versione biennio

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan

Algoritmi e diagrammi di flusso

Fondamenti di Informatica

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Introduzione alla programmazione

Corso di Informatica di Base

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

Introduzione all informatica

La rappresentazione dell algoritmo Diagrammi di flusso

Elementi di Informatica. Introduzione. Cos è l informatica. Corso di Laurea in Ingegneria Biomedica aa 2003/2004. Ing.

Rappresentazione con i diagrammi di flusso (Flow - chart)

Cosa è l Informatica?

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Laboratorio di Calcolo di Aerodinamica: II Lezione

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

INFORmazione+autoMATICA. Perché saperne di piu? Le fasi della programmazione. Cosa intendiamo per programmazione

CAPITOLO 3 - ALGORITMI E CODIFICA

Sistemi Web per il turismo - lezione 3 -

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Introduzione agli algoritmi

CORSO DI INFORMATICA Maria Grazia Celentano

Come ragiona il computer

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

1 Esercizi in pseudocodice

Elementi di Informatica e Programmazione

Università degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Come ragiona il computer. Problemi e algoritmi

Gli algoritmi. Prof. Pasquale De Michele. Gli algoritmi. Pasquale De Michele

Il concetto di calcolatore e di algoritmo

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Matlab. Istruzioni condizionali, cicli for e cicli while.

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Analisi strutturata 1

LA METAFORA DELL UFFICIO LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO

Problemi, algoritmi, calcolatore

Algoritmi e programmazione

Algoritmi. Informatica B. Daniele Loiacono

Analisi e programmazione 1

L ELABORATORE ELETTRONICO

Corso di Informatica

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Sommario. Rappresentazione degli Algoritmi e Programmazione Strutturata. Diagrammi di Flusso. Rappresentazione degli algoritmi. Diagrammi di Flusso

Teoria della Complessità Computazionale

Colloquio di informatica (5 crediti)

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA

1 Esercizi in pseudo-codice

Linguaggi algoritmici A. Ferrari

LA METAFORA DELL UFFICIO

Come scrivere bene codice? (1 di 1)

n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

- Dispensa I ALGORITMI

Il concetto di informatica. Graziano Pravadelli (2012)

L ELABORATORE ELETTRONICO!

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Algoritmi e Programmi

Elementi di programmazione

Sistemi di Elaborazione delle Informazioni

ALGORITMI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri

Programmazione e algoritmi

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

Istruzioni Condizionali

Risoluzione di un problema

Informatica. Richiami. Diagrammi di flusso. Algoritmi, programmi e dati. Algoritmi e diagrammi di flusso. per le lauree triennali

LABORATORIO DI INFORMATICA

Analisi Numerica (2 moduli, 12 crediti, 96 ore, a.a )

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Transcript:

Algoritmi e Problem Solving Algoritmo Un algoritmo è costituito da una serie di passaggi che portano alla risoluzione di un problema. 1) I passaggi devono tener conto di vincoli imposti dal problema 2) La serie di passaggi deve essere finita ovvero dobbiamo garantire che il processo termini Un algoritmo ha sempre un obbiettivo, che consiste nel problema da risolvere. Per definire un algoritmo si procede per gradi sino a raggiungere la soluzione ottimale. ALGORITMO Pulizia di una stanza Versione 1 Pulizia efficiente della superficie di una stanza 10X6m con un panno 20X20cm. Il panno deve essere passato almeno 3 volte, facendo una pausa di almeno 5 minuti tra una passata e la successiva e sciacquando con il panno ogni 2 passate. 1) SOGGETTO PRENDE IL PANNO 2) IL SOGGETTO COMINCIA A PULIRE COSA MANCA? I VINCOLI DEL PROBLEMA. Una risoluzione di questo tipo non tiene conto dei vincoli del problema ad esempio non sappiamo quanta superficie è stata pulita ne se sono state rispettate delle condizioni di pulizia efficiente. Questo algoritmo è così generico che nessun esecutore automatico riuscirebbe a svolgerlo. Un esecutore automatico ad esempio una cleaner-machine, ha bisogno di alcuni altri parametri per poter risolvere il problema. Di cosa ha bisogno?

Di una condizione DETERMINISTICA ovvero esso deve portare con certezza ad una soluzione, e se eseguito più volte alle stesse condizioni iniziali deve portare alle stesse conclusioni. Il determinismo presuppone che tutto ciò che accade deve essere legato ad una condizione CAUSA-EFFETTO. Il Clima è deterministico? No perché in base alle stesse condizioni iniziali non è detto che possiamo avere le stesse condizioni finali. Algoritmo Pulizia Stanza VERSIONE 2 1) SOGGETTO PRENDE IL PANNO 2) IL SOGGETTO COMINCIA A PULIRE 3) IL SOGGETTO PULISCE FINO AL COMPLETAMENTO DELLA STANZA Abbiamo aggiunto un requisito deterministico chiunque applicherà questo algoritmo sarà certo di ottenere la pulizia della stanza. Cosa manca? Le garanzie sulla qualità e la garanzia che la pulizia avvenga in modo efficiente. L efficienza è un indice che sarà tanto più alto quanto più si riesce a ottimizzare l utilizzo di fattori di cui disponiamo per risolvere un problema. Uno studente efficiente è uno studente che riesce a studiare bene in poco tempo. Un auto efficiente è un auto che a parità di Km consuma meno carburante rispetto ad altre auto. L efficienza è un indice relativo, un soggetto può essere efficiente rispetto ad un altro ma, nel caso in cui agisca da solo, è necessariamente il più efficiente.

Per lo stesso problema esistono soluzioni più o meno efficienti, infatti esistono degli algoritmi detti ottimali per un dato problema. Quando si vuole cercare efficienza, si deve sempre cercare un parametro sul quale basare l ottimizzazione, detto anche parametro da massimizzare. Algoritmo Pulizia Stanza VERSIONE 3 1) SOGGETTO PRENDE IL PANNO 2) IL SOGGETTO COMINCIA A PULIRE 3) IL SOGGETTO PULISCE FINO AL COMPLETAMENTO DELLA STANZA 4) LADDOVE PERO NON ABBIAMO GIA PULITO La 4) rappresenta la condizione di efficienza. Il teorema di Bohm-Jacopini L informatica, pur rientrando nella categoria delle scienze matematiche, ha un solo teorema enunciato nel 1966 dagli informatici Corrado Bohm e Giuseppe Jacopini. ENUNCIATO Qualunque algoritmo può essere implementato utilizzando tre sole strutture, la sequenza la selezione ed il ciclo, da applicare ricorsivamente alla composizione di istruzioni elementari. Sequenza: successione ordinata o progressiva di operazioni Selezione :ovvero la condizione Ciclo ricorsivo : tempo che l istruzione si ripete ad intervalli regolari

I DIAGRAMMI A BLOCCHI Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica dell algoritmo. Un diagramma a blocchi descrive il flusso delle operazioni da eseguire per realizzare la trasformazione, definita nell algoritmo, dai dati iniziali ai risultati Ogni istruzione dell algoritmo viene rappresentata all interno di un blocco elementare, la cui forma grafica è determinata dal tipo di istruzione I blocchi sono collegati tra loro da linee di flusso, munite di frecce, che indicano il susseguirsi di azioni elementari

Esempio Telefonata

Diagramma di flusso della somma tra due numeri svolto con il software Raptor.