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

Documenti analoghi
Introduzione all informatica

Laboratorio di Calcolo di Aerodinamica: II Lezione

LABORATORIO DI INFORMATICA

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

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Rappresentazione con i diagrammi di flusso (Flow - chart)

L ELABORATORE ELETTRONICO

L uomo come esecutore di algoritmi

CORSO DI INFORMATICA Maria Grazia Celentano

Lez. 1 Introduzione all informatica. Prof. Pasquale De Michele Gruppo 2

Sistemi di Elaborazione delle Informazioni

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Lez. 1 Introduzione all informatica. Gruppo 1 e Gruppo 2

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica

Algoritmi e diagrammi di flusso

Algoritmi e diagrammi di flusso versione biennio

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

Problemi, algoritmi, calcolatore

Cosa è l Informatica?

APPUNTI DI INFORMATICA

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

Sistemi di Elaborazione delle Informazioni

MODULO 07. La soluzione dei problemi mediante gli algoritmi

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO!

Lezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma

Informatica. Come si risolve un problema?

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Introduzione agli Algoritmi

3. Programmi e algoritmi

Il concetto di calcolatore e di algoritmo

ALGORITMI E PROGRAMMAZIONE STRUTTURATA. Prof R. Bresolin a.s

Elaboratore Elettronico

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

Lez. 1 Introduzione all informatica

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

Algoritmi e Programmi

La Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema

Corso di Informatica di Base

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica. Compressione dati

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

Concetti Introduttivi. Il Computer

Dall algoritmo al calcolatore: concetti introduttivi. Algoritmo. Problema: consumo medio 9/27/2018. Fondamenti di Programmazione 3

Problemi, algoritmi, linguaggi

Algoritmi. Pagina 1 di 5

Fasi di creazione di un programma

ALGORITMI E SOLUZIONI DI PROBLEMI

Lezione 1. Problemi Algoritmi Programmi

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

Introduzione alla programmazione

Sviluppo di programmi

INFORMATICA Algoritmi come formalizzazione della risoluzione di un problema

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Esecuzione dei programmi

Informatica, Algoritmi, Linguaggi

Introduzione all Informatica e alla Programmazione. Fondamenti di Informatica T

Università degli Studi di Pisa

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi

ALGORITMI: PROPRIETÀ FONDAMENTALI

Programmazione. Informatica. Risoluzione dei Problemi

Risoluzione di un problema

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

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

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

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Le fasi della programmazione

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

! Problemi, domande, risposte. ! Algoritmi che calcolano funzioni. ! Funzioni computabili e non. ! Problema = insieme di domande omogenee. !

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

Sviluppo di programmi

INFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.1a: Gli Algoritmi

1 Esercizi in pseudocodice

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

L informatica comprende: INFORMATICA. Varie definizioni: Definizione proposta: ELABORATORE ELETTRONICO ( COMPUTER ) L ELABORATORE

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Fondamenti di Informatica

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Concetti di base dell ICT

Definizione. E un insieme ordinato di istruzioni che risolvono un problema. Da al- Khwarizmi: importante matematico Arabo nato nel 780 circa a Baghdad

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

1 Esercizi in pseudo-codice

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.)

Elaboratore Elettronico Digitale Logico.

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

Transcript:

Prof.

Elaborazione dell informazione Algoritmo (procedura dielaborazione) Prima definizione: successione finita e ordinata di passi (operazioni) che risolve una classe di problemi in un tempo finito. Programma Codifica dell algoritmo in un linguaggio comprensibile dall esecutore. Esecutore Una macchina capace di eseguire i programmi (le azioni specificate dall algoritmo codificate in un determinato linguaggio di programmazione).

Definizione di algoritmo Un algoritmo è una successione finita e ordinata di operazioni elementari, non ambigue ed effettivamente eseguibili che, applicate ad un insieme di condizioni iniziali, allo scopo di risolvere una classe di problemi, produce un risultato e termina inuna quantità di tempo finita. Ogni compito che noi svolgiamo quotidianamente può essere visto come un algoritmo.

Definizione di algoritmo Un algoritmo è una successione finita e ordinata di operazioni elementari, non ambigue ed effettivamente eseguibili che, applicate ad un insieme di condizioni iniziali, allo scopo di risolvere una classe di problemi, produce un risultato e termina inuna quantità di tempo finita. Parole chiave: Successione finita e ordinata. Operazioni non ambigue ed effettivamente calcolabili. Risolve una classe di problemi. Produce un risultato. Termina in un tempo finito.

Definizione di algoritmo: successione finita e ordinata Algoritmo: unasuccessione finitae ordinata dioperazioni Per finita si intende che un algoritmo ha un inizio ed una fine: non ci sono infinite operazioni da compiere. Di conseguenza, un algoritmo ha sempre un inizio ed una fine. Per ordinato si intende che l ordine con il quale si eseguono le operazioni è fondamentale. Cambiando l ordine con il quale si eseguono le operazioni, cambia l algoritmo stesso.

Definizione di algoritmo: operazioni elementari, non ambigue ed effettivamente eseguibili Algoritmo: operazioni elementari, non ambigue ed effettivamente calcolabili, applicate ad un insieme di condizioni iniziali Operazionielementari (atomicao primitiva) Operazione non atomica: risolvi equazione di II grado. Operazioni atomiche: Richiedi il coefficiente a; Richiedi il coefficiente b; Richiedi il coefficiente c; Calcola il delta; Operazioni non ambigue, nel senso che ogni operazione prevista dall algoritmo deve essere univocamente interpretabile dall esecutore. In questo modo, i risultati ottenuti dall'esecuzione dell'algoritmo non cambiano al variare dell esecutore (macchinao essere umano). Operazione ambigua: se l acqua è calda calare la pasta. Operazione non ambigua: se l acqua raggiunge i 100 C calare la pasta. Operazioni effettivamente eseguibili, nel senso che le informazioni devono poter essere eseguite con le risorse a disposizione dell esecutore: Operazione non effettivamente eseguibile su un PC: prepara il caffè. Operazione effettivamente eseguibile su un PC: calcola l area di un rettangolo.

Definizione di algoritmo: risolve una classe di problemi Algoritmo: allo scopo di risolvere una classe di problemi Classe di problemi: calcolo dell area di un generico rettangolo (qualunque sia la base e qualunque sia l altezza). Problema: calcolo dell area del rettangolo con base di 6cm e altezza di 4cm.

: viene prodotto un risultato in un tempo finito Algoritmo: produce un risultato e termina in una quantità di tempo finito. L algoritmo deve produrre un risultato finale. Ad esempio, il valore dell area del rettangolo dopo che l utilizzatore ha fornito in INPUT il valore della base e dell altezza del rettangolo. L algoritmo deve produrre il suddetto risultato in un tempo finito (anche in virtù del numero finito di passi di cui è costituito).

: le proprietà Tutte le caratteristiche analizzate a proposito degli algoritmo si possono sintetizzare con le seguenti proprietà. Atomicità. I passi costituenti (le operazioni) devono essere elementari, ovvero non ulteriormente scomponibili. Non ambiguità. I passi costituenti devono essere interpretabili in modo diretto e univoco dall'esecutore, siaesso umano o artificiale. Finitezza. L'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso. Terminazione. L'esecuzione deve avere termine dopo un tempo finito. Effettività. L'esecuzione deve portare a un risultato univoco.

: le proprietà Inoltre: Un algoritmo si dice completo quando considera tutti i casi che sipossonoverificare nell esecuzione. Supponiamo di voler verificare se un numero N è positivo, nullo o negativo. Se l algoritmo verificasse solo se il numero N è positivo o negativo, senza controllare se è nullo, allora non saprebbe come comportarsi nel caso in cui N=0. Un algoritmo siffatto sarebbe non completo. Un algoritmo si dice generale quando risolve una classe di problemi. Considera l esempio di prima sulla definizione di classe di problemi. Un algoritmo si dice deterministico quando partendo dalla stessa situazione iniziale (gli stessi input) fornisce sempre lo stesso risultato (output).

Operazioni: istruzioni In informatica le operazioni vengono dette istruzioni. Tipi di istruzioni: Azioni: calcola ilvalore x Controllo: se si verifica A allora calcola x altrimenti calcola y Comunicazione: leggiilvalore x ; stampa ilvalore y Salto: se si verifica A allora prosegui altrimenti salta ad un altra istruzione

Esempi di algoritmi Ricetta di cucina. Sequenza di operazioni per registrare un programma con un videoregistratore. Sequenza di operazioni per montare una tenda. Sequenza di operazioni per moltiplicare due numeri. Sequenza di operazioni per lavarsi i denti

Un algoritmo ben scritto Consideriamo l algoritmoper lavarsi i denti: 1.Prendi lospazzolino. 2.Prendi il dentifricio. 3.Metti il dentifricio sullo spazzolino. 4.Posa ildentifricio. 5.Apri l acqua. 6.Bagna lospazzolino. 7.Chiudi l acqua. 8.Porta lo spazzolino alla bocca. 9.Spazzolare. 10.Controlla se i denti sono puliti. a. Se i denti non sono ancora puliti, ritorna all operazione 9. b. Se i denti sono puliti vai all operazione 11. 11.Posa lospazzolino. 12.Apri l acqua. 13.Sciacqua labocca. 14.Chiudi l acqua.

Un algoritmo ben scritto Nell esempio mostrato, si verificano le proprietà finito e ordinato. L algoritmo è finito: inizia con l operazione 1 e termina con l operazione 14. L algoritmo è ordinato: se cambiassi l ordine di alcune operazioni, potrei ottenere:

Un algoritmo mal scritto 1. Posa il dentifricio. 2. Spazzolare. 3. Chiudi l acqua. 4. Posa lo spazzolino. 5. Prendi il dentifricio. 6. Metti il dentifricio sullo spazzolino. 7. Apri l acqua. 8. Bagna lo spazzolino. 9. Chiudi l acqua. 10. Porta lo spazzolino alla bocca. 11. Controlla se i denti sono puliti. 12. Prendi lo spazzolino. a. Se i denti non sono ancora puliti, ritorna all operazione 11. b. Se i denti sono puliti vai all operazione 13. 13. Apri l acqua. 14. Sciacqua la bocca. Da come possiamo osservare, le operazioni restano le stesse, benché l ordine sia variato, ma sicuramente con questo algoritmo non potremmo dire di aver lavato i denti correttamente.

Concetto di algoritmo L obiettivo è la costruzione di uno o più mezzi di calcolo in grado di eseguire operazioni primitive (ovvero effettivamente calcolabili). Un mezzo di calcolo che esegue operazioni primitive permette di automatizzare la soluzione di un problemaespressa daun algoritmo. La soluzione di un problema espressa da un algoritmo costituito da sequenze di operazioni primitive può essere automatizzata.

Rappresentazione degli algoritmi Uno degli strumenti utilizzati per introdurre e rappresentare gli algoritmi è rappresentato dai diagrammi di flusso (flowchart diagrams) o diagrammi a blocchi. Inizio Fine Azione Comunicazione I Comunicazione O V Controllo F Salto

Un algoritmo rappresentato con i diagrammi di flusso Verificare se un numero è maggiore di 10 oppure no. Nel caso in cui il numero sia maggiore di 10 raddoppiarlo, altrimenti, dividerlo per 2. Stampare il nuovo numero. Inizio Inserisci un numero O N I V N>10 N ß N*2 N ß N/2 F Il nuovo numero è:, N O Fine