Politecnico di Bari Sede di Foggia. docente: Prof. Ing. Michele Salvemini

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Politecnico di Bari Sede di Foggia. docente: Prof. Ing. Michele Salvemini"

Transcript

1 Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini

2 Sommario (1/2) ProblemSolving Algoritmi Esecutore Algoritmi e Programmi Proprietà Scomposizione dei Problemi Tecnica dei Raffinamenti Successivi Tipologie di Scomposizione Scomposizione Sequenziale Scomposizione Selettiva Scomposizione Iterativa Il valore più grande Scomposizione Ricorsiva Il Fattoriale Diagrammi di Flusso Elementi Costitutivi Regole Proprietà 2/38

3 Sommario (2/2) Programmazione Strutturata Schemi Fondamentali Böhm-Jacopini Esempi Minimo fra 3 Valori Scambio di valori Algoritmo Euclideo per il MCD Prodotto di due Interi 3/38

4 Problem Solving(1/2) Problema Espressione da valutare per ottenere un risultato finale Soluzione Insieme finitodi attività da compiere per ottenere un effetto desiderato ProblemSolvingpassaggio dalla formulazione del problema all individuazione del metodo solutivo Formulazione del problema Costruzione del metodo di soluzione Esecuzione Delegabile ad un esecutore che Capisca la descrizione della soluzione Sia in grado di eseguire le operazioni richieste 4/38

5 Problem Solving(2/2) Dati Una descrizione (anche parziale) di una situazione iniziale e di un obiettivo Espressi in un determinato linguaggio Un insieme di operatori Ogni sequenza di operatori è un operatore (composto) La soluzione Un operatore (composto) che trasforma l oggetto che descrive la situazione iniziale in quello che descrive la situazione desiderata La costruzione del metodo solutivo è legata alle operazioni semplici disponibili alle modalità secondo cui possono essere connesse e composte per realizzare operazioni più complesse 5/38

6 Algoritmi Un algoritmo è un metodo generale che risolve, in un tempofinitoe con una sequenza finita di passi, qualsiasi istanza di un dato problema permette quindi di ricavare un informazione cercata (risultato o dato di output) a partire dall informazione a disposizione (dati iniziali o dati di input) E possibile trovare algoritmi anche per la risoluzione di problemi non strettamente informatici Esempi: Spiegare un percorso stradale Istruzioni per il montaggio di un mobile Istruzioni per la realizzazione di una torta Un algoritmo può non essere l unica soluzione al problema 6/38

7 Algoritmi Esecutore Controlla l ordine logico di esecuzione delle istruzioni; Interpreta ed esegue le istruzioni. L esecutore può essere una persona fisica o un dispositivo elettronico (l elaboratore) Dipendentementedalla figura dell esecutore Algoritmo deve essere opportunamente codificato Programma Algoritmo comprensibile ad un elaboratore 7/38

8 Algoritmi Algoritmi e Programmi 8/38

9 Algoritmi Proprietà Finito composto da un numero finito di passi elementari, ogni istruzione deve essere eseguita in un tempo finito e un numero finito di volte; Generale ogni algoritmo deve fornire la soluzione per i problemi appartenenti ad una determinata classe; Non ambiguo i risultati non variano in funzione della macchina/persona che esegue l'algoritmo; Eseguibile Deve essere espresso con operazione che l esecutore può eseguire in un tempo finito; Completo deve contenere tutti gli elementi necessari ad assicurare la validità dei risultati. 9/38

10 Scomposizione dei Problemi Tipi di Problemi Primitivi, risolubilitramite Un azione primitiva Una sequenza di azioni primitive Complessi, non risolubili tramite un azione nota Al solutore All esecutore Problemi Complessi Scomposizionein sottoproblemi fino a trovare un insieme di sottoproblemi primitiviche risulti equivalenteal problema di partenza Principio del Divide etimpera 10/38

11 Scomposizione dei Problemi Raffinamenti Successivi (1/2) Trasformazione di un problema in una gerarchia di problemi di difficoltà decrescente Di un problema si affronta, prima, l aspetto più generale e si passa, poi, a livelli sempre più dettagliati di descrizione sino ad arrivare agli elementi fondamentali Conseguenze Aumentodel numero problemi, Diminuzionedella complessità di ciascuno Requisiti Ogni passo della suddivisione deve garantire che La soluzione dei sottoproblemi conduca alla soluzione generale La successione di passi da eseguire abbia senso e sia possibile La suddivisione scelta dia luogo a sottoproblemi più vicini agli strumenti disponibili, risolubili direttamente con gli operatori a disposizione Quando Fermarsi? Tutti i problemi sono primitivi 11/38

12 Scomposizione dei Problemi Raffinamenti Successivi (2/2) I problemi ottenuti dalla scomposizione sono Indipendenti Si può progettare un algoritmo per ciascuno La soluzione può essere delegata a solutori diversi (in parallelo) Cooperanti Ciascuno può usare il risultato della soluzione di altri Uno stesso problema può essere scomposto in modi diversi 12/38

13 Scomposizione dei Problemi Tipologie di Scomposizione I costrutti offerti dai linguaggi di programmazione strutturata supportano le scomposizioni Sequenziale Selettiva Iterativa Ricorsiva 13/38

14 Scomposizione dei Problemi Tipologie di Scomposizione - Sequenziale La soluzione si ottiene tramite una sequenza di passi I passi sono eseguiti uno alla volta Ogni passo è eseguito una sola volta Nessuno è ripetuto o omesso L ordine in cui i passi vanno eseguiti è lo stesso in cui sono scritti L ultimo passo equivale alla terminazione del procedimento Esempio Problema: Preparare una tazza di tè Soluzione: l algoritmo per la tazza di tè 1. Bollire l acqua 2. Mettere il tè nella tazza 3. Versare l acqua nella tazza 4. Lasciare in infusione per 3-4 minuti Non sono problemi primitivi 14/38

15 Scomposizione dei Problemi Tipologie di Scomposizione - Sequenziale Punto 1 Riempire d acqua il bollitore Accendere il gas Aspettare che l acqua bolla Spegnere il gas Punto 2 Aprire la scatola del tè Prendere un sacchettofiltro Chiudere la scatola del tè Mettere il sacchetto nella tazza Punto 3 Versare l acqua bollente nella tazza finché non è piena Punto 4 Aspettare 3 minuti Estrarre il sacchetto-filtro 15/38

16 Scomposizione dei Problemi Tipologie di Scomposizione - Selettiva Soluzione ottenuta tramite scelte doppie o multiple Strutture di selezione all interno di altre strutture di selezione Nidificazione (o annidamento) di strutture Esempio Problema: Trovare il più grande dei numeri a, b, c diversi tra loro Azione primitiva (nota): Verificare se un numero è maggiore di un altro 16/38

17 Scomposizione dei Problemi Tipologie di Scomposizione - Selettiva Soluzione se a > b allora: verifica se a > c allora: a è la soluzione altrimenti: c è la soluzione altrimenti: verifica se b > c allora: b è la soluzione altrimenti: c è la soluzione 17/38

18 Scomposizione dei Problemi Tipologie di Scomposizione - Iterativa Successione di problemi tutti dello stesso tipo Ripetere un numero finito di volte un passo di soluzione in modo da avere, alla fine, la soluzione completa Requisiti È individuabile una catena di sottoproblemi che: Sono uguali, oppure Differiscono solo per i dati su cui agiscono 18/38

19 Scomposizione dei Problemi Tipologie di Scomposizione - Iterativa Esempio Trovare il più grande fra n > 3 numeri tutti diversi fra loro Soluzione Trova il più grande tra i primi 2 numeri Trova il più grande fra il risultato del problema precedente e il 3 numero Trova il più grande fra il risultato del problema precedente e l ultimo numero (n dato) Più concisamente: Trova il più grande fra i primi 2 numeri Finché ci sono numeri da esaminare esegui Esamina il primo numero non ancora considerato trova il più grande tra questo e il più grande precedentemente trovato 19/38

20 Scomposizione dei Problemi Tipologie di Scomposizione - Ricorsiva Un oggetto ricorsivo è un oggetto definito in termini di se stesso Definizione Ricorsiva Base(o livello assiomatico): definizione di partenza, necessaria per ricostruire i livelli successivi Passo di Induzione: operazione che riconduce la definizione ad un dato livello a quella di livello inferiore Esempio: Potenza (definizione iterativa) a b = a a... a b volte Potenza (definizione ricorsiva) 1 b=0 a b a a b-1 b 0 20/38

21 Scomposizione dei Problemi Tipologie di Scomposizione - Ricorsiva Esempio: fattoriale di un numero n (!n) il prodotto dei primi n numeri naturali 0! = 1; n! = 1 * 2 * 3 *... * n-1 * n; per n > 0. definizione ricorsiva 0! = 1 n! = (n-1)!*n Esempio: 7! (6)!*7 (5)!*6 *7 (4)!*5*6 *7 (3)!*4*5*6 *7 (2)!*3*4*5*6*7 (1)!*2*3*4*5*6*7 (0)!*1*2*3*4*5*6*7 1*1*2*3*4*5*6*7 21/38

22 Diagrammi di Flusso Linguaggio graficotipicamente utilizzato per trasmettere ad un esecutore umano la descrizione di un algoritmo o processo Si parte dal punto iniziale Si seguono i percorsi indicati, intraprendendo le azioni che via via si incontrano In caso di percorsi alternativi, se ne sceglie uno a seconda della condizione specificata fino al raggiungimento del punto finale 22/38

23 Diagrammi di Flusso Elementi Costitutivi 23/38

24 Diagrammi di Flusso Regole Un solo blocco iniziale e un solo blocco finale Ogni blocco è raggiungibile da quello iniziale Il blocco finale è raggiungibile da ogni blocco I blocchi sono in numero finito Ogni blocco di azione (calcolo o ingresso/uscita) ha una freccia entrante ed una uscente Ogni blocco di decisione ha una freccia entrante e due uscenti Ogni blocco di decisione multipla ha una freccia entrante e N uscenti Ogni freccia parte da un blocco e termina in un blocco o su un altra freccia 24/38

25 Diagrammi di Flusso Proprietà Grafici Adatti agli esseri umani Immediatamente visualizzabili Rispondono all esigenza di divisione del lavoro Documento base per l analisi Non ambigui Traducibili in vari linguaggi di programmazione 25/38

26 Programmazione Strutturata Sviluppo per raffinamenti successivi Ogni schema fondamentale ha un solo punto di ingresso ed un solo punto di uscita Sostituibile ad un blocco di azione Nella sostituzione, si possono omettere i blocchi di inizio e fine dello schema che si sta inserendo Uso di schemi fondamentali Sequenza Concatenazione di azioni Selezione Scelta di azioni alternative Dipendenza da una condizione Iterazione Ripetizione di una certa azione Dati potenzialmente diversi Dipendenza da una condizione 26/38

27 Programmazione Strutturata Sequenza 27/38

28 Programmazione Strutturata Selezione 28/38

29 Programmazione Strutturata Iterazione 29/38

30 Programmazione Strutturata Böhm-Jacopini Dato un processope un diagramma che lo descrive, è sempre possibile determinare un processo Q, equivalente a P, che sia descrivibile con un diagramma strutturato Processi equivalenti = producono lo stesso effetto Un processo o metodo solutivo può essere sempre descritto tramite diagrammi strutturati VIETATO l uso di istruzioni di salto Non necessarie Teorema di Böhm-Jacopini Potenzialmente dannose Difficoltà a seguire il flusso del controllo Scarsa modificabilità Interazioni impreviste 30/38

31 Esempi Minimo fra 3 valori Trovare il minore fra tre numeri interi a, b, c Esempi: a = 1, b = 2, c = 3 a = 20, b = 50, c = 55 a = 2, b = 1, c = 3 a = 7, b = 34, c = 13 Operatore di confronto x y È verificato se il valore associato alla variabile x è minore o uguale di quello associato alla variabile y 31/38

32 Esempi Minimo fra 3 valori 32/38

33 Esempi Scambio valori Date due variabili a e b, scambiare i valori ad esse assegnati Esempio: Valori iniziali a = 12, b = 54 Valori Finali a = 54, b = 12 Operatore di assegnamento x y Copia il valore associato alla variabile y nella memoria associata alla variabile x Al termine i valori di x ed y coincidono Il vecchio valore di x viene perso 33/38

34 Esempi Scambio valori Algoritmo Assegna il valore di b ad a Assegna il valore di a ab Trace: a = 12, b = 54 a = 54, b = 54 a = 54, b = 54 Non funziona! Dopo il primo passo il valore originario di a viene perso Serve una variabile temporanea tin cui copiare il valore di a prima che sia sovrascritto 34/38

35 Esempi Scambio valori Algoritmo corretto Assegna il valore di a at Assegna il valore di b ad a Assegna il valore di t a b Trace a = 12, t =??, b = 54 a = 12, t = 12, b = 54 a = 54, t = 12, b = 54 a = 54, t = 12, b = 12 35/38

36 Esempi Algoritmo Euclideo per il MCD L'algoritmo si basa sulle seguenti proprietà: Mcd (a, b) = a=b se a = b (1) Mcd (a, b) = Mcd (a-b, b) se a > b (2) Mcd(a, b) = Mcd (a, b-a) se a < b (3) Idea Poiché nel caso in cui a=b(1) il problema è risolto, ed inoltre valgono le proprietà (2) e (3) nel caso generale si possono effettuare tante differenze in modo da riportarsi al caso (1). 36/38

37 Esempi Algoritmo Euclideo per il MCD 37/38

38 Esempi Prodotto di due interi Positivi m x n = m + m+ + m n volte 38/38

Corso di Programmazione Problem Solving. Tipi di Problemi. Problemi Complessi Soluzione. Dott. Pasquale Lops. Primitivi. Complessi

Corso di Programmazione Problem Solving. Tipi di Problemi. Problemi Complessi Soluzione. Dott. Pasquale Lops. Primitivi. Complessi Materiale didattico preparato dal dott. Stefano Ferilli Corso di Programmazione Problem Solving Dott. Pasquale Lops lops@di.uniba.it Corso di Programmazione - DIB 1/30 Tipi di Problemi Primitivi Risolubili

Dettagli

Sommario. Tecniche di Decomposizione dei Problemi. Algoritmi: Costruzione. Tipi di problemi

Sommario. Tecniche di Decomposizione dei Problemi. Algoritmi: Costruzione. Tipi di problemi Sommario Tecniche di Decomposizione dei Problemi Costruzione di algoritmi Approccio alla soluzione di problemi complessi Sequenza; Selezione; Iterazione; Ricorsione Tecniche di Decomposizione dei Problemi

Dettagli

Problemi e Soluzioni. Corso di Informatica CdL: Chimica. Claudia d'amato.

Problemi e Soluzioni. Corso di Informatica CdL: Chimica. Claudia d'amato. Problemi e Soluzioni Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it 2 Problema Quesito con cui si chiede di trovare, mediante un procedimento di calcolo, uno o più dati sconosciuti,

Dettagli

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

Sommario. Rappresentazione degli Algoritmi e Programmazione Strutturata. Diagrammi di Flusso. Rappresentazione degli algoritmi. Diagrammi di Flusso Sommario Diagrammi di lusso Rappresentazione degli lgoritmi e 1 2 Rappresentazione degli algoritmi Diagrammi di lusso Negli esempi, gli algoritmi sono rappresentati in un linguaggio simile a quello naturale

Dettagli

DISPENSE DI PROGRAMMAZIONE

DISPENSE DI PROGRAMMAZIONE DISPENSE DI PROGRAMMAZIONE Modulo 1 Parte IV ESERCITAZIONE SULLE NOTAZIONI PER DESCRIVERE ALGORITMI: Algoritmi elementari (scambio, massimo, etc.) (RICADE NEL MODULO 6) Decomposizione di problemi attraverso

Dettagli

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

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Algoritmi

Dettagli

Corso di Programmazione Problemi ed Algoritmi. Problema. Problem Solving. Dott. Pasquale Lops

Corso di Programmazione Problemi ed Algoritmi. Problema. Problem Solving. Dott. Pasquale Lops Materiale didattico preparato dal dott. Stefano erilli orso di Programmazione Problemi ed lgoritmi Dott. Pasquale Lops lops@di.uniba.it orso di Programmazione - DIB 1/59 Problema Espressione da valutare

Dettagli

Principi di Programmazione 4

Principi di Programmazione 4 Sommario Principi di Programmazione ostruzione di algoritmi pproccio alla soluzione di problemi complessi Sequenza; Selezione; Iterazione; Ricorsione Rappresentazione di algoritmi flow chart linguaggio

Dettagli

Corso di Programmazione Risoluzione di Problemi

Corso di Programmazione Risoluzione di Problemi Corso di Programmazione Risoluzione di Problemi Dott. Stefano erilli ferilli@di.uniba.it Problema Espressione da valutare per ottenere un risultato finale Insieme finito di attività da compiere per ottenere

Dettagli

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

Blocchi di base. Schemi: Sequenza Selezione Iterazione. Flow chart strutturati Sequenza Selezione Iterazione. Teorema di Bohm e Jacopini Blocchi di base Schemi: Sequenza Selezione Iterazione Flow chart strutturati Sequenza Selezione Iterazione Teorema di Bohm e Jacopini I più comuni linguaggi di descrizione degli algoritmi sono: Diagrammi

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano

Dettagli

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

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile Algoritmi Andrea Passerini passerini@dsi.unifi.it Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile Elaboratore Un elaboratore o computer è una macchina digitale, elettronica,

Dettagli

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

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica. Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Algoritmi Michele Tomaiuolo Algoritmo Il termine algoritmo deriva

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema

Dettagli

DISPENSE DI PROGRAMMAZIONE

DISPENSE DI PROGRAMMAZIONE DISPENSE DI PROGRAMMAZIONE Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte II) I Linguaggi di descrizione degli algoritmi - Notazioni grafiche (parte 1) Il linguaggio dei

Dettagli

Analisi strutturata 1

Analisi strutturata 1 Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

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

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

Dettagli

Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria. Docente : Ing. Secondulfo Giovanni Anno Accademico

Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria. Docente : Ing. Secondulfo Giovanni Anno Accademico Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Docente : Ing. Secondulfo Giovanni Anno Accademico 2010-2011 Lezione 3: La Formalizzazione degli Algoritmi Dati e Variabili

Dettagli

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

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso Programmazione I Fondamenti di programmazione ( Lezione I ) Problemi, Algoritmi, Diagrammi di flusso Fabrizio Messina messina@dmi.unict.it www.dmi.unict.it/~messina Algoritmo Dato un problema, un algoritmo

Dettagli

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

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Laurea in Ingegneria Civile e Ambientale Algoritmi e Algebra di Boole Stefano Cagnoni Il problema di fondo Descrizione

Dettagli

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

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

Dettagli

Diagrammi a blocchi 1

Diagrammi a blocchi 1 Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi." Analisi strutturata." Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi." Attraverso

Dettagli

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione Sommario Problemi e soluzioni Definizione informale di algoritmo e esempi Proprietà degli algoritmi Input/Output, Variabili Algoritmi senza input o output 1 2 Problema Definizione (dal De Mauro Paravia):

Dettagli

Introduzione alla programmazione strutturata

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

Dettagli

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

Dettagli

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

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

Dettagli

Come ragiona il computer

Come ragiona il computer Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Per risolvere il problema

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale Introduzione alla Programmazione Prof. Stefano Mariani Dott. Alket Cecaj Indice Il concetto di algoritmo Algoritmo vs. programma

Dettagli

Linguaggi algoritmici A. Ferrari

Linguaggi algoritmici A. Ferrari Linguaggi algoritmici A. Ferrari Caratteristiche di un linguaggio algoritmico Non ambiguità Capacità di esplicitare il flusso di esecuzione delle istruzioni Deve contenere istruzioni di tipo: operativo

Dettagli

LA METAFORA DELL UFFICIO

LA METAFORA DELL UFFICIO LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome

Dettagli

L ELABORATORE ELETTRONICO!

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

Dettagli

Introduzione agli Algoritmi

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

Dettagli

Diagrammi a blocchi 1

Diagrammi a blocchi 1 Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi. Analisi strutturata. Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi. Attraverso

Dettagli

Analisi e Programmazione

Analisi e Programmazione Algoritmi 1 Analisi e Programmazione I Calcolatori Elettronici si differenziano da altri tipi di macchine per il fatto che possono essere predisposti alla risoluzione di problemi di diversa natura. A tale

Dettagli

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

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

Dettagli

Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi

Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi Diagrammi di flusso - Flowcharts E un formalismo che consente di rappresentare graficamente gli algoritmi Un diagramma di flusso descrive le azioni da eseguire ed il loro ordine di esecuzione Ogni azione

Dettagli

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

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

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Sommario Problema computazionale Sviluppo software Algoritmi Diagrammi di Flusso; Pseudo Codice Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Il Problema computazionale È computazionale un

Dettagli

Problemi, algoritmi, calcolatore

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

Dettagli

Elaboratore Elettronico

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 rre altri oggetti

Dettagli

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

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

Dettagli

Introduzione alla programmazione

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

Dettagli

L ELABORATORE ELETTRONICO

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

Dettagli

CAPITOLO 3 - ALGORITMI E CODIFICA

CAPITOLO 3 - ALGORITMI E CODIFICA FASI DI SVILUPPO DEL SOFTWARE Problema Idea (soluzione) Algoritmo (soluzione formale) Programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) Test (criteri di verifica)

Dettagli

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice, Paolo Bison, FI06, 2007-01-10 p.1 Pseudo codice linguaggio testuale mix di linguaggio naturale ed elementi

Dettagli

L ELABORATORE ELETTRONICO

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 dati in ingresso (input) per produrre uno

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, Traduttori e le Basi della Programmazione Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi

Dettagli

LA METAFORA DELL UFFICIO

LA METAFORA DELL UFFICIO LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome

Dettagli

Introduzione agli Algoritmi 4

Introduzione agli Algoritmi 4 Introduzione agli Algoritmi Sommario Problemi e soluzioni Definizione informale di algoritmo e esempi Proprietà degli algoritmi Input/Output, Variabili Algoritmi senza input o output Introduzione agli

Dettagli

Il concetto di calcolatore e di algoritmo

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

Dettagli

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

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica. Compressione dati Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica Compressione dati Compressione dei dati Il processo di compressione consiste nell effettuare codifiche

Dettagli

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

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi Lezione 8 Introduzione agli algoritmi Lezione tratta dal libro: D. Sciuto, G. Buonanno, W. Fornaciari, L. Mari Introduzione ai sistemi informatici Seconda Edizione, McGraw-Hill Capitolo 2: La formalizzazione

Dettagli

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dal Problema all Algoritmo Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Cosa Impareremo Informazioni e codici Definizione e soluzione di un problema Individuazione dei dati Definizione

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni Sistemi di Elaborazione delle Informazioni Algoritmi e Programmi 1 Risoluzione di un problema Il procedimento di soluzione di un problema dovrebbe essere caratterizzato da: analisi del problema e identificazione

Dettagli

Lezione 4: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive (2p) Venerdì 7 Ottobre 2009

Lezione 4: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive (2p) Venerdì 7 Ottobre 2009 Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Meccanica & Ingegneria Gestionale Mat. Pari Docente : Ing. Secondulfo Giovanni Anno Accademico 2009-2010 Lezione 4: La

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione delle variabili

Dettagli

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

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

Dettagli

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

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 33 INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, bisogna conoscere

Dettagli

Risoluzione di un problema

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

Dettagli

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione Il Progetto degli Algoritmi Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Dal problema a un programma comprensibile dal calcolatore

Dettagli

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

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: http://it.wikipedia.org/wiki/al-khwarizmi Un

Dettagli

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

Dettagli

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.1 Linguaggi procedurali classe

Dettagli

Dispensa di Informatica II.1

Dispensa di Informatica II.1 ALGORITMI La dispensa di seguito proposta si pone come tutorial per poter porre le basi per la realizzazione di algoritmi che poi potranno eventualmente essere sviluppati in moduli software con metodologia

Dettagli

Introduzione all informatica

Introduzione all informatica Introduzione all informatica INFORMATICA Varie definizioni Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta Scienza della rappresentazione e dell

Dettagli

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento

Dettagli

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

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

Dettagli

Formalismi per la descrizione di algoritmi

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

Dettagli

Caratteristiche di un calcolatore elettronico

Caratteristiche di un calcolatore elettronico Prof. Emanuele Papotto Caratteristiche di un calcolatore elettronico È una macchina, costituita da circuiti elettronici digitali e da componenti elettromeccaniche, ottiche e magnetiche. È velocissimo,

Dettagli

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04)

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04) Problemi e algoritmi Il che cosa e il come Il che cosa ed il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come

Dettagli

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come Problemi e algoritmi Il che cosa e il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come effettuare un calcolo

Dettagli

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Dettagli

Lezione 5. La macchina universale

Lezione 5. La macchina universale Lezione 5 Algoritmi Diagrammi di flusso La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale=

Dettagli

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

La Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema La Programmazione È l'attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su una particolare tipologia di dati, allo scopo di risolvere un problema. 1 La Programmazione

Dettagli

L informazione. Bateson, Ricevere informazioni vuol dire necessariamente ricevere notizie di differenza (Es.: Luce accesa/spenta, 1/0,...

L informazione. Bateson, Ricevere informazioni vuol dire necessariamente ricevere notizie di differenza (Es.: Luce accesa/spenta, 1/0,... L informazione Diverse proposte in letteratura Bateson, Ricevere informazioni vuol dire necessariamente ricevere notizie di differenza (Es.: Luce accesa/spenta, 1/0,...) Shannon, visione probabilistica.

Dettagli

Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica

Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2010-11 Esempio: risolviamo le equazioni di secondo grado ax 2 + bx + c = 0 La formula risolutiva è: x= b±

Dettagli

CONCETTI FONDAMENTALI

CONCETTI FONDAMENTALI CONCETTI FONDAMENTALI Algoritmo Procedura di trasformazione di un insieme di dati iniziali in un insieme di risultati finali mediante una sequenza di istruzioni. Linguaggio di programmazione Programma

Dettagli

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

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Sommario Problema computazionale Sviluppo software Algoritmi Diagrammi di Flusso; Pseudo Codice Istruzioni Sequenziali, Condizionali, Cicliche; Javascript 1 Il Problema computazionale È computazionale

Dettagli

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

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

Dettagli

Pseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p.

Pseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p. Pseudo codice Paolo Bison Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova Pseudo codice, Paolo Bison, A.A. 2003-04, 2003-09-30 p.1/38 Pseudo codice linguaggio testuale mix di linguaggio naturale

Dettagli

LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO

LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO LAAGNA DI LAORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome distinto, e valore il loro eventuale contenuto SPORTELLO UTENTE LAAGNA DI PROGRAMMA Modulo IN: modulo di ricezione

Dettagli

Corso di Informatica di Base

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

Dettagli

LAUREA IN INFORMATICA A.A. 2001/2002 I semestre PROGRAMMAZIONE Prof.ssa Antonietta LANZA DISPENSE DI PROGRAMMAZIONE PROGRAMMAZIONE

LAUREA IN INFORMATICA A.A. 2001/2002 I semestre PROGRAMMAZIONE Prof.ssa Antonietta LANZA DISPENSE DI PROGRAMMAZIONE PROGRAMMAZIONE DISPENSE DI PROGRAMMAZIONE Modulo1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte I) Ha collaborato alla editazione Angelo Lisco PROGRAMMAZIONE Termine usato per indicare le attività

Dettagli

PROGRAMMAZIONE (Corso A)

PROGRAMMAZIONE (Corso A) PROGRAMMAZIONE (Corso A) http://www.di.uniba.it/~proga/ Argomenti della lezione Diagrammi di flusso - Flow chart Diagrammi struturati - Sequenza, selezione, iterazione Teorema di Boehm-Jacopini Flow-chart

Dettagli

ALGORITMI: PROPRIETÀ FONDAMENTALI

ALGORITMI: PROPRIETÀ FONDAMENTALI ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse

Dettagli

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

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento mercoledì, 14.00-15.30. Studio 34, dip. statistica Modalità esame:

Dettagli

Sviluppo di programmi

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

Dettagli