Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.
|
|
|
- Arrigo Valenti
- 9 anni fa
- Просмотров:
Транскрипт
1 Algoritmi Un tema centrale dell informatica è lo studio degli algoritmi. Ora nostro obiettivo sarà quello di esplorare a sufficienza questa materia fondamentale per poter capire e apprezzare appieno l informatica. Brookshear Informatica XI ed Capitolo 5 l 00/00/00 1
2 ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo INPUT: dati iniziali INPUT: x,y,z AZIONI esempio: Somma x ed y Somma z al risultato OUTPUT: risultato OUTPUT: x+y+z Algoritmo: Sequenza di azioni per svolgere il calcolo Programma: Algoritmo espresso in notazione formale (linguaggio di programmazione) Creazione programma: Fase 1 = algoritmo Fase 2 = implementazione in dato linguaggio (C) Vedremo: Elementi di base per semplici algoritmi e programmi
3 ALGORITMI Tecniche algoritmiche permettono di risolvere problemi di: Trasmissione dati in Internet come si gestisce in pratica il flusso di dati nella rete? Ricerca nel WEB come fa Google a trovare le informazioni nel WEB? Bioinformatica come il DNA determina le nostre caratteristiche? Processi economici come si gestiscono le aste on-line su Ebay? come si effettua la compravendita di azioni su Internet? Organizzazione di risorse e servizi come si schedulano i voli delle aerolinee? come si assegnano le frequenze nelle celle delle reti cellulari?
4 Il termine Algoritmo deriva dal matematico Arabo al-khwarizmı (c ), autore del testo Al-jabrw al-muqabâla (da cui anche il termine Algebra)
5 Algoritmi di tipo numerico furono studiati da matematici babilonesi ed indiani più di di 3000 anni fa. Algoritmi in uso fino a tempi recenti furono studiati dai matematici greci nel 500 a.c. Esempio: Algoritmo di Euclide per il Massimo Comun Divisore Esempio: Algoritmi geometrici (calcolo di tangenti, sezioni di angoli,...)
6 Algoritmo: procedura computazionale che prende certi valori in input (ingresso) e produce i valori richiesti in output (uscita)
7 Un esempio si prepara ad un uscita galante... Va in profumeria, ma vuole risparmiare Come identificare il profumo più economico? 0. Prendi la prima bottiglia, 1. Vai alla prossima bottiglia nello scaffale 2. Confronta il prezzo sulla bottiglia nello scaffale con quello in mano 3. Se e minore scambia la bottiglia in mano con quella sullo scaffale 4. Se ci sono bottiglie non controllare, allora ripeti da Se le bottiglie sono finite, la bottiglia più economica è quella in mano
8 Algoritmo: procedura computazionale che prende certi valori in input (ingresso) e produce i valori richiesti in output (uscita) Problema: determina il profumo più economico Input: profumi con relativi costi Output: profumo di costo minimo Algoritmo: 0. Prendi la prima bottiglia, 1. Vai alla prossima bottiglia nello scaffale 2. Confronta il prezzo sulla bottiglia nello scaffale con quello in mano 3. Se è minore scambia la bottiglia in mano con quella sullo scaffale 4. Se ci sono bottiglie non controllare, allora ripeti da Se le bottiglie sono finite, la bottiglia più economica è quella in mano Procedura computazionale per ottenere la relazione costi/costo minimo
9 Riassumendo Un algoritmo è una serie di operazion non ambigue ed efficientemente computabili, che una volta eseguite producono un risultato in un tempo finito Se possiamo specificare un algoritmo allora possiamo automatizzare la soluzione
10 Un esempio Come identificare il profumo più economico? 0. Prendi la prima bottiglia, 1. Vai alla prossima bottiglia nello scaffale 2. Confronta il prezzo sulla bottiglia nello scaffale con quello in mano 3. Se è minore scambia la bottiglia in mano con quella sullo scaffale 4. Se ci sono bottiglie non controllare, allora ripeti da Se le bottiglie sono finite, la bottiglia più economica è quella in mano E un algoritmo? La soluzione è corretta? Quanto tempo prende?
11 Un algoritmo è una sequenza finita di passi elementari che descrive come risolvere in un tempo finito un problema Altri esempi di algoritmi: Istruzioni di montaggio Preparazione del caffè Prelievo bancomat Preparazione di un ricetta Algoritmo Calcolo del massimo comun divisore tra due interi
12 Algoritmo Dati iniziali ALGORITMO Dati finali (soluzione) Algoritmo: sequenza di azioni elementari che consenta di trasformare i dati iniziali nei risultati finali attraverso un numero finito di passi, elementari e non ambigui. Note: Insieme di dati iniziali ben definito Sequenza di passi può essere eseguita da un opportuno esecutore (es. calcolatore).
13 Algoritmo Dati iniziali ALGORITMO Dati finali (soluzione) Proprietà fondamentali di un Algoritmo Correttezza; produce sempre una soluzione Efficienza: L algoritmo perviene alla soluzione del problema usando la minor quantità possibile di risorse fisiche, quali tempo di esecuzione, memoria,.
14 Algoritmo Dati iniziali ALGORITMO Dati finali (soluzione) Ricapitolando, un algoritmo deve essere: applicabile a qualsiasi insieme di dati di ingresso appartenenti al dominio di definizione dell algoritmo costituito da operazioni appartenenti ad un determinato insieme di operazioni fondamentali costituito da regole non ambigue, cioè interpretabili in modo univoco qualunque sia l esecutore (persona o macchina ) che le legge
15 Un esempio Come identificare il profumo più economico? 0. Prendi la prima bottiglia, 1. Vai alla prossima bottiglia nello scaffale 2. Confronta il prezzo sulla bottiglia nello scaffale con quello in mano 3. Se è minore scambia la bottiglia in mano con quella sullo scaffale 4. Se ci sono bottiglie non controllare, allora ripeti da Se le bottiglie sono finite, la bottiglia più economica è quella in mano Dati ingresso? Operazioni? Esecutore?
16 Esempio: prendere l automobile Algoritmo 1. Aprire l auto 2. Aprire la portiera 3. Sedersi al posto di guida 4. Schiacciare la frizione 5. Avviare il motore 6. Inserire la prima marcia 7. Rilasciare delicatamente la frizione per partire I passi sono eseguiti in sequenza l'ordine delle istruzioni è essenziale per la correttezza
17 I libri sono disposti sugli scaffali Esempio: Biblioteca La posizione di ogni libro è fissa ed è individuata da due coordinate: -Scaffale(i.e. numero dello scaffale) -Posizione nello scaffale La biblioteca è dotata di uno schedario (ordinato per autore/i e titolo). Ogni scheda contiene, nell ordine: -cognome e nome dell autore -titolo del libro -data di pubblicazione -numero dello scaffale in cui si trova -posizione attribuita al libro nello scaffale.
18 Esempio: Biblioteca Esempio di scheda Autore/i: Brookshear, J. Glenn Titolo: Informatica, una panoramica generale, 11 Edizione Scaffale: 09 Posizione: 25
19 Formulazione dell algoritmo 1.Decidi il libro da richiedere 2.Preleva il libro richiesto Esempio: Biblioteca Raffinamenti successivi : se un passo non è direttamente comprensibile ed eseguibile dall esecutore (operazione semplice), occorre dettagliarlo a sua volta mediante un ulteriore algoritmo.
20 Un algoritmo per il prelievo Esempio: Biblioteca 1.Decidi il libro da richiedere 2.Cerca la scheda del libro richiesto 3.Segnati numero scaffale e posizione 4.Cerca lo scaffale indicato 5.Accedi alla posizione indicata e preleva il libro 6.Scrivi i tuoi dati sulla "scheda prestito"
21 Il sotto-algoritmo di ricerca 1.Prendi la prima scheda. Esempio: Biblioteca 2.Esamina se titolo e autore/i sono quelli cercati. In caso positivo la ricerca termina con successo, altrimenti passa alla scheda successiva e ripeti. 3.Se esaurisci le schede il libro cercato non esiste.
22 Un algoritmo per il prelievo Esempio: Biblioteca 1.Decidi il libro da richiedere 2.Cerca la scheda del libro richiesto come segue: 2.1. Prendi la prima scheda Esamina se titolo e autore/i sono quelli cercati. In caso positivo la ricerca termina con successo, altrimenti passa alla scheda successiva e ripeti Se esaurisci le schede il libro cercato non esiste. 3.Segnati numero scaffale e posizione 4.Cerca lo scaffale indicato 5.Accedi alla posizione indicata e preleva il libro 6.Scrivi i tuoi dati sulla "scheda prestito"
23 ES. Come piegare un foglio quadrato per ottenere un uccello. Brookshear Informatica XI ed Capitolo 5 l 00/00/00 23
24 Primitive per l origami. Sono richieste delle primitive ben definite Un insieme di primitive costituisce un linguaggio di programmazione. Ogni primitiva è costituita da due parti: Sintassi Semantica Brookshear Informatica XI ed Capitolo 5 l 00/00/00 24
25 Pseudocodice Primitivo Istruzione di assegnamento nome espressione Selezione condizionale if condizione then attività Esecuzione ripetuta while condizione do azione Procedura procedure nome Brookshear Informatica XI ed Capitolo 5 l 00/00/00 25
26 ISTRUZIONI Assegnamento: x E, Calcola il valore dell espressione E e lo assegna alla variabile x Esempio: x x+y calcola il valore di x+y e lo assegna ad x se x vale 5 e y vale 3, x x+y da ad x valore 8 Istruzioni Strutturate: 1) Composizione di Istruzioni: I I I 2 m 1 ; ; ; Esegui I 1, quando e terminata esegui I 2, quando e terminata esegui I m. X 1; y 2; x x+y; (x vale 3) y x*y (y vale 6)
27 2) Istruzioni Condizionali: ISTRUZIONI Condizionali If (C) then I; C condizione, I azione Es. if (x<=y) then z 0: Poni z=0 se x<=y; altrimenti lascia il valore di z inalterato If (C) then I else I ; C condizione, I ed I azioni Es. Poni z=0 se x<=y; poni z=x-y se x>y if (x<=y) then z 0 else z x-y
Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.
Algoritmi Un tema centrale dell informatica è lo studio degli algoritmi. Ora nostro obiettivo sarà quello di esplorare a sufficienza questa materia fondamentale per poter capire e apprezzare appieno l
ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo
ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo INPUT: dati iniziali INPUT: x,y,z AZIONI esempio: Somma x ed y
Dal problema all algoritmo
Dal problema all algoritmo Un esempio di problema Problema Come si cucina un uovo al burro? Soluzione Far sciogliere in un tegamino 20 g. di burro, quando il burro assume un colore dorato rompere il guscio
Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)
Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande
Introduzione agli Algoritmi
Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione
Laboratorio di Programmazione
Laboratorio di Programmazione Laurea in Bioinformatica Docente: Carlo Drioli Web: www.scienze.univr.it/fol/main?ent=oi&id=39990 Programmazione: Dati Strutture di controllo Algoritmi Materiale tratto dai
L ELABORATORE ELETTRONICO
L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Esempi di Testi di esame Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del corso
Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi
Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive
Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso
Programmazione I Fondamenti di programmazione ( Lezione I ) Problemi, Algoritmi, Diagrammi di flusso Fabrizio Messina [email protected] www.dmi.unict.it/~messina Algoritmo Dato un problema, un algoritmo
Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie
Università degli Studi di Verona Dipartimento di Biotecnologie Laurea in Biotecnologie Corso di Informatica2014/2015 Algoritmie Diagrammidiflusso Gennaio 2015 - Sergio Marin Vargas Problemi e soluzioni
Corso di Informatica di Base
Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere
Il concetto di calcolatore e di algoritmo
Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica
L ELABORATORE ELETTRONICO!
L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
Introduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
Introduzione alla programmazione strutturata
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio
in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico
Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito
Problemi, algoritmi, calcolatore
Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione
Risoluzione di un problema
Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito
Algoritmi e Strutture Dati
Introduzione al Corso Maria Rita Di Berardini (Camerino), Emanuela Merelli (Ascoli) 1 1 Scuola di Scienze e Tecnologie - Sezione di Informatica Università di Camerino Parte I Il concetto di Algoritmo Il
Algoritmi e Programmi
Algoritmi e Programmi Algoritmi e Programmi Le azioni che si compiono ogni giorno sono finalizzate alla risoluzione di problemi. Problema di elaborazione Insieme dati di partenza Risultato ricerca Algoritmi
CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1
CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 Lezione 1 (Introduzione e Definizioni) Docenti Docente: Prof. Michele Colajanni Lezioni (Aula IV): martedì 10:00-12:45 Esercitazioni (Laboratorio): mercoledì
Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota
Corso di Problemi ed algoritmi Ing Pasquale Rota Argomenti Problemi ed algoritmi Proprietà degli algoritmi Pseucodice Diagrammi di flusso Problemi ed algoritmi - Ing. Pasquale Rota 2 Proprietà degli algoritmi
Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo
1 Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione dell informazione Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo
Concetti Introduttivi. Il Computer
Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta
Sviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
Formalismi per la descrizione di algoritmi
Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano
Lez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software
Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell
Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica
FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano
Introduzione. Informatica B. Daniele Loiacono
Introduzione Informatica B Cos è l informatica? q È la scienza che si occupa della rappresentazione dell informazione e della sua elaborazione e gestione " Si occupa dell informazione, che fa parte di
Fasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo Sviluppo di programmi Per la costruzione di un programma
MODULO 07. La soluzione dei problemi mediante gli algoritmi
MODULO 07 La soluzione dei problemi mediante gli algoritmi MODULO 07 Unità didattica 02 Impariamo a fare i diagrammi a blocchi In questa lezione impareremo: come descrivere l algoritmo risolutivo utilizzando
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
La formalizzazione dell informazione: Dati e Diagrammi di Flusso
La formalizzazione dell informazione: Dati e Diagrammi di Flusso Codifica degli algoritmi Algoritmo formulato per essere comunicato tra esseri umani chiaro, sintetico e intuitivo codificato in linguaggi
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 Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica
Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1
Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli
Dall algoritmo al programma
Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione
