Problemi, Algoritmi e Programmi



Похожие документы
I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Introduzione. Informatica B. Daniele Loiacono

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Linguaggi e Paradigmi di Programmazione

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Metodologie di programmazione in Fortran 90

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Corso di Informatica

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Fasi di creazione di un programma

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Come ragiona il computer. Problemi e algoritmi

Linguaggi di programmazione

Nozione di algoritmo. Gabriella Trucco

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti di Sistemi Elettronici

Gli algoritmi: definizioni e proprietà

Algoritmi. Maurizio Palesi. Maurizio Palesi 1

Corso di Informatica

Origini e caratteristiche dei calcolatori elettronici

Studente: SANTORO MC. Matricola : 528

Programmi. Algoritmi scritti in un linguaggio di programmazione

LINGUAGGI DI PROGRAMMAZIONE

Lezione 8. La macchina universale

Il concetto di informatica. Bogdan Maris ( )

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

INFORMATICA GENERALE. Prof Alberto Postiglione Dipartim. Scienze della Comunicazione Univ. Salerno. Università degli Studi di Salerno

Linguaggi di programmazione

Funzioni in C. Violetta Lonati

Funzionalità di un Algoritmo

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

Le Macchine di Turing

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Esempi di algoritmi. Lezione III

e-dva - eni-depth Velocity Analysis

Dispensa di Informatica I.1

Fondamenti di Informatica. Allievi Automatici A.A Nozioni di Base

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Informatica. Scopo della lezione

Istruzioni per leggere bene. Istruzioni per leggere bene

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza

Corso di INFORMATICA 2 (Matematica e Applicazioni)

DAL PROBLEMA AL PROGRAMMA

Modellazione di sistema

SISTEMI DI NUMERAZIONE E CODICI

Sistemi di Elaborazione delle Informazioni. Corso di Laurea per "Tecnico Ortopedico" 03

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

Fondamenti di Informatica. Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI!

Descrizione di un algoritmo

Algoritmi, dati e programmi

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Corso di Calcolo Numerico

I PROBLEMI ALGEBRICI

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

Sistemi Informativi. Introduzione. Processi fisici. Tipologie di processi. Processi informativi. Processi aziendali

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Fondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009. Prof. Raffaele Nicolussi

Database. Si ringrazia Marco Bertini per le slides

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

Interesse, sconto, ratei e risconti

Cos è un Calcolatore?

Software. Definizione, tipologie, progettazione

Approccio stratificato

La Progettazione Concettuale

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

la scienza della rappresentazione e della elaborazione dell informazione

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Richiami di informatica e programmazione

Tecniche per il progetto di sistemi elettronici tolleranti ai guasti

1. BASI DI DATI: GENERALITÀ

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

Gestione dell account AdWords di Google Guida pratica

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere


Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Intelligenza Artificiale

Hub-PA Versione Manuale utente

Транскрипт:

MASTER Information Technology Excellence Road (I.T.E.R.) Problemi, Algoritmi e Programmi Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Introduzione Problema da risolvere Come trovare la stazione Come cucinare l anatra all arancia? Procedimento per risolvere il problema La strada più breve per la stazione Una ricetta per l anatra all arancia Agente di calcolo Il turista Il cuoco Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 2

Problem Solving Uno degli scopi fondamentali dell informatica è La risoluzione di problemi Problema: Compito che si vuole fare risolvere automaticamente al calcolatore Agente di di calcolo Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 3 Problem Solving (continuo ) I problemi che siamo interessati a risolvere sono di natura molto varia Trovare il maggiore tra due numeri Dato un elenco di nomi e numeri di telefono trovare il numero di una certa persona Dati a e b risolvere l equazione ax+b=0 Stabilire se una parola precede alfabeticamente un altra Prenotare aerei, treni, hotel, Ordinare un elenco di nomi Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 4

Problem Solving (continuo ) Acquisire i dati Input Elaborazione Presentare i risultati Output Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 5 Esempio: Somma Totale n1, n2 n2 = Totale n1 n1 + n2 n2 Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 6

Attività per Risolvere un Problema Comprendere il problema Definire il procedimento risolutivo (algoritmo) Implementare l algoritmo in un linguaggio di programmazione Prova Documentazione Manutenzione Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 7 Comprendere il Problema Focalizzare gli obiettivi Evidenziare Le regole I dati espliciti ed impliciti Eliminare i dettagli inutili ed ambigui Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 8

Attività per Risolvere un Problema Comprendere il problema Definire il procedimento risolutivo (algoritmo) Implementare l algoritmo in un linguaggio di programmazione Prova Documentazione Manutenzione Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 9 Algoritmo Descrizione rigorosa delle azioni da compiere per risolvere un problema di qualsiasi genere Esempi La strada più breve per la stazione Una ricetta per l anatra all arancia Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 10

Descrizione Rigorosa L indicazione prendi la seconda traversa a destra e poi la prima a sinistra può essere espressa in forma rigorosa così: 1. C e una strada a destra? Se sì, va al punto 3. 2. Vai avanti fino ad un incrocio; vai al punto 1. 3. Vai avanti fino ad un incrocio 4. C è una strada a destra? Se no, vai al punto 3. 5. Svolta a destra 6. Vai avanti fino ad un incrocio 7. C è una strada a sinistra? Se no, vai al punto 6. 8. Svolta a sinistra 5 8 3 Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 11 Esempio: l Area di una Campana r=b/2 h 2 b h 1 B Area della campana = A1 + A2 + A3 A1 = (B + b) h 1 /2 Sottoproblema 1 A2 = b h 2 A3 = 1/2πr 2 Sottoproblema 2 Sottoproblema 3 Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 12

Esempio: Gestione di una Biblioteca Libri esposti sugli scaffali La posizione di ogni libro è fissa ed individuata da due coordinate Numero dello scaffale Posizione nello scaffale La biblioteca è dotata di uno schedario (ordinato per autore. Ogni scheda contiene Cognome e nome dell autore Titolo del libro Numero dello scaffale Posizione nello scaffale Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 13 Esempio di scheda Autore: Manzoni Titolo: I promessi Sposi Scaffale: 33 Posizione: 13 Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 14

Problema Trovare un libro! Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 15 Formulazione dell Algoritmo Cerca la scheda del libro nello schedario Segnati numero scaffale e posizione Cerca lo scaffale indicato Accedi alla posizione indicata e preleva il libro Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 16

Primo sotto-algoritmo di Ricerca Prendi la prima scheda dello schedario Se titolo e autore sono quelli cercati, la ricerca termina con successo altrimenti passa alla scheda successiva Continua di scheda in scheda finchè non trovi quella cercata. Se vengono esaurite le schede, il libro cercato non esiste. Devi cercare il libro in un altra biblioteca. Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 17 Secondo sotto-algoritmo di Ricerca Esamina la scheda centrale dello schedario Se la scheda centrale corrisponde al libro cercato allora la ricerca termina In caso contrario procedi allo stesso modo nella metà superiore o inferiore dello schedario a seconda che il libro cercato segua o preceda quello indicato sulla scheda Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 18

Qualità degli Algoritmi Correttezza L algoritmo permette effettivamente di risolvere il problema Efficienza L esecutore dell algoritmo richiede un numero limitato di risorse Un algoritmo è tanto più efficiente quanto meno risorse richiede per la sua esecuzione. Una risorsa importante è il tempo di esecuzione Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 19 Esempio: Gestione Biblioteca Entrambi gli algoritmi sono corretti Il secondo algoritmo è più efficiente del primo Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 20

Attività per Risolvere un Problema Comprendere il problema Definire il procedimento risolutivo (algoritmo) Implementare l algoritmo in un linguaggio di programmazione Prova Documentazione Manutenzione Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 21 Implementazione di un Algoritmo L algoritmo deve essere codificato in un linguaggio Linguaggi Linguaggi naturali Linguaggi artificiali Usati dagli uomini per comunicare Complessi Ambigui Usati in informatica (linguaggi di programmazione) Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 22

Alcuni Linguaggi di Programmazione Fortran (metà degli anni 50) Formula Translator Cobol (metà degli anni 50) Common Business-Oriented Language Pascal (inizio degli anni 70) Dal matematico francese Blaise Pascal primo ad ideare una macchina calcolatrice (la Pascalina) C (inizi degli anni 70) Prolog (inizi degli anni 70) Programming in Logic Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 23 Il Linguaggio C Il linguaggio C è stato sviluppato intorno al 1972, nei Bell Laboratories AT&T americani, da Dennis Ritchie E nato come linguaggio di sviluppo del Sistema Operativo Unix Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 24

Sintassi e Semantica Linguaggio Sintassi Semantica Insieme delle regole che consentono di scrivere correttamente le frasi di un linguaggio Disciplina che studia il significato delle parole e delle frasi Livello Forma corretta Forma non corretta Sintattico Semantico Sono andato a scuola Il gatto è un animale Ho andato a scuola L albero è un animale Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 25 Programma Testo (cioè sequenza di istruzioni) scritto in accordo alla sintassi e semantica di un linguaggio di programmazione Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 26

Linguaggio Macchina Un calcolatore non è in grado di eseguire direttamente programmi scritti in linguaggi ad alto livello Un calcolatore è in grado di eseguire direttamente solo programmi scritti nel proprio linguaggio macchina 100101001010 010101001011 101010010101 101010100101 Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 27 Linguaggio macchina (cont.) Il linguaggio macchina è: Linguaggio di programmazione comprensibile direttamente dal calcolatore Molto elementare e primitivo: sequenza di cifre binarie. Ad esempio una possibile istruzione potrebbe essere: 11101011110100101010010101001010 per identificare un operazione di somma tra operandi contenuti nel primo e nel terzo registro e che pone il risultato nel dodicesimo registro E difficile da comprendere per un essere umano Specifico per un calcolatore Calcolatori differenti supportano linguaggi macchina differenti Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 28

Traduzione Per rendere un programma (scritto in un linguaggio ad alto livello) eseguibile sul calcolatore occorre tradurre il programma in un programma equivalente scritto nel linguaggio macchina del calcolatore La traduzione può avvenire in due modi Compilazione Interpretazione Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 29 Compilazione Un programma scritto in un linguaggio ad alto livello viene trasformato in un programma scritto in linguaggio macchina e poi può essere eseguito più volte senza dover tradurre nuovamente il programma Programma scritto in linguaggio C Compilatore 100101001010 010101001011 101010010101 101010100101 Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 30

Interpretazione Traduzione riga per riga Ciscuna istruzione del programma scritto in un linguaggio di programmazione ad alto livello viene trasformata in istruzioni del linguaggio macchina ed eseguita Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 31 Compilazione ed Interpretazione La compilazione è assimilabile al processo di traduzione, da una lingua ad un altra, di un libro L interpretazione è assimilabile al processo di traduzione simultanea Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 32

Compilazione vs. Interpretazione Compilazione Vantaggi Creazione di programmi eseguibili Velocità di esecuzione del programma Svantaggi Portabilità del codice su altre piattaforme Interpretazione Vantaggi Portabilità del codice Svantaggi Lenta esecuzione Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 33 Attività per Risolvere un Problema Comprendere il problema Definire il procedimento risolutivo (algoritmo) Implementare l algoritmo in un linguaggio di programmazione Prova Documentazione Manutenzione Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 34

Prova compilazione Compilatore Errori di sintassi Inserimento e correzione esecuzione Sistema di di esecuzione Risultati ed errori in esecuzione verifica Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 35 Attività per Risolvere un Problema Comprendere il problema Definire il procedimento risolutivo (algoritmo) Implementare l algoritmo in un linguaggio di programmazione Prova Documentazione Manutenzione Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 36

Documentazione Scrivere un manuale d uso che accompagni il programma Questo manuale deve essere scritto facendo uso della terminologia tipica del problema e non in gergo computeristico Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 37 Attività per Risolvere un Problema Comprendere il problema Definire il procedimento risolutivo (algoritmo) Implementare l algoritmo in un linguaggio di programmazione Prova Documentazione Manutenzione Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 38

Manutenzione Non esistono parti del programma soggette ad usura! Manutenzione del programma = Modificarlo Aggiornarlo Estenderlo Renderlo più veloce... Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 39 Riepilogo Problema Algoritmo Programma Problema Compito che si vuole fare risolvere automaticamente al calcolatore Algoritmo Descrizione rigorosa delle azioni da compiere per risolvere il problema Programma Sequenza di istruzioni in un linguaggio di programmazione. Scopo del programma: fornire al calcolatore le capacità per risolvere un dato problema Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 40