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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 Problemi e Soluzioni Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it

2 2 Problema Quesito con cui si chiede di trovare, mediante un procedimento di calcolo, uno o più dati sconosciuti, partendo dai dati noti (diz. Garanti)

3 4 Problem Solving Passaggio 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 5 Dati Problem Solving Una descrizione (anche parziale) di una situazione iniziale e di un obiettivo Espressi in un linguaggio che permetta di descrivere situazioni (oggetti) e differenze fra coppie di situazioni Un insieme di operatori applicabili a situazioni per trasformarle in nuove situazioni Espressi in un linguaggio che fa riferimento al processo Ogni sequenza di operatori è un operatore (composto)

5 6 La soluzione è Problem Solving Un operatore (composto) nel linguaggio di riferimento che trasforma l oggetto che descrive la situazione iniziale in quello che descrive la situazione desiderata

6 8 Algoritmo Serie di istruzioni che specifica l insieme delle azioni da compiere per poter risolvere un problema [Al-Khowarizmi, IX sec.] Regole per eseguire le 4 operazioni aritmetiche sui numeri scritti in notazione decimale Esempio: Ricetta di cucina

7 Finitezza Spaziale: esecuzione in spazio finito Temporale: esecuzione in tempo finito Generalità Classe di problemi Dominio di definizione Completezza Non ambiguità Algoritmi Requisiti le istruzioni devono essere univocamente interpretabili Eseguibilità l'esecutore deve essere in grado di eseguire ogni istruzione 11

8 Algoritmi Costruzione 12 Esaminare una specifica realtà o problema Costruirne un astrazione Rappresentarla (più o meno) formalmente Individuare una sequenza di azioni che, eseguite, risolvano il problema nel mondo dell astrazione Il processo di analisi e astrazione è difficile da dominare per problemi complessi

9 Il Procedimento Solutivo di un Problema 13 Si costituisce delle seguenti fasi successive: Analisi del problema e identificazione di una soluzione Descrizione della soluzione comprensibile all'esecutore Interpretazione della soluzione

10 14 Primitivi Risolubili tramite Tipi di Problemi Un azione primitiva Una sequenza di azioni primitive Complessi Non risolubili tramite un azione nota Al solutore All esecutore

11 Problemi Complessi Soluzione Scomposizione in sottoproblemi Fino a trovare un insieme di sottoproblemi primitivi (anche detti elementari) che risulti equivalente al problema di partenza Individuazione del procedimento che porta alla soluzione 15 Processo di cooperazione tra sottoproblemi dei quali si è in grado di fornire facilmente una soluzione

12 Problemi Complessi Principio del Dìvide et Impera Approccio Ridurre la complessità del problema Scomposizione in sottoproblemi più semplici Individuare Struttura e Relazioni fra di essi Progettazione di un algoritmo per ciascuno Se è complesso, riapplicare la scomposizione fino ad arrivare a problemi primitivi Risolubili tramite azioni note 16

13 17 Scomposizione di Problemi Tecnica per raffinamenti successivi Uno dei principi della programmazione strutturata Basata sulla 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

14 Scomposizione di Problemi Requisiti 18 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

15 Confronto tra due numeri: Algoritmo Leggi un valore dall'esterno e assegnalo alla variabile x 2. Leggi un valore dall'esterno e assegnalo alla variabile y 3. Calcola la differenza d x y 4.Se d>0 allora vai al passo 5. Altrimenti esegui il passo 6. 5.Stampa il massimo è + x quindi vai a 7. 6.Stampa il massimo è + y quindi vai a 7. 7.Termina l'esecuzione

16 Scomposizione di Problemi Quando fermarsi? Bisogna arrivare al punto in cui Tutti i problemi sono primitivi È fissato l ordine di esecuzione dei sottoproblemi È previsto il modo in cui un sottoproblema utilizza i risultati prodotti dalla soluzione dei sottoproblemi che lo precedono Livello di cooperazione 20

17 Scomposizione di Problemi Livelli 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 Quanto più complesso è il problema, tanti più livelli saranno necessari in profondità Di solito 2 o 3 Uno stesso problema può essere scomposto in modi diversi 21

18 Le variabili per Risolvere Problemi 22 La soluzione deve essere riferita ad una classe di problemi strutturalmente equivalenti ovvero ad un problema al variare dei dati di input Le istruzioni della soluzione fanno riferimento a VARIABILI Il valore non è fissato a priori Il valore cambia a seconda della situazione elaborativa in cui si trova l'esecutore

19 Cosa sono le VARIABILI 23 Le variabili sono contenitori per dati Ogni variabile ha: un nome --> identifica univocamente la variabile Un valore --> corrisponde al dato contenuto nella variabile Si fa riferimento al contenuto delle variabili specificando il loro nome I nomi delle variabili possono comparire all'interno di espressioni e assegnamenti

20 Utilizzo delle Variabili 24 Il valore assegnato ad una variabile si sostituisce a quello presente in precedenza nella stessa variabile Es.: scambiare i valori contenuti in due variabili x e y Trace x x = 5 Trace y y = 7 x x = 5 tmp null y y = 7 tmp x tmp = 5, x = 5, y = 7 x y x = 7, y = 7 x y tmp = 5, x = 7, y = 7 y x x = 7, y= 7 y x tmp = 5, x = 7, y = 5

21 ES.: soluzione al problema di confronto tra due numeri 25 PROBLEMA: determinare il maggiore di due numeri x e y 1. Definire i problemi primitivi Es.: Calcolo differenza tra due numeri Valutazione Segno SOLUZIONE: x > y se (x y) > 0

22 26 Scomposizione di Problemi Conseguenze Aumento del numero problemi Diminuzione della complessità di ciascuno Può capitare che il medesimo sottoproblema debba venire risolto più volte, applicandolo a dati diversi, per risolvere il problema complessivo

23 Esempio: utilizzo di soluzione esistente PROBLEMA: determina il magg tra x, y, z SOLUZIONE (utilizzando( la soluzione del problema precedente) 1. Leggi i primi due numeri x, y 2. Se x > y (sol. prob. prec.) allora vai a 4. altrimenti esegui il punto 5 3. Leggi il terzo numero z 4. Determina il maggiore tra x e z (prob. Prec) quindi TERMINA 5. Determina il maggiore tra y e z (prob. Prec.) quindi TERMINA 27

24 Es.: generalizzazione di un problema PROBLEMA: determinare il maggiore di n numeri SOLUZIONE: si arriva alla soluzione risolvendo successivamente i seguenti sottoproblemi 1. Leggi i primi due numeri e determina il maggiore 2.Leggi il terzo numero e trova il maggiore tra questo ed il maggiore del passo precedente 3.Leggi il quarto numero e trova il maggiore tra questo e quello del passo precedente 4....

25 ...Es.: generalizzazione di un 29 SOLUZIONE: SCRITTURA CONCISA problema 1. Leggi i primi due numeri e determina il maggiore 2. Finchè ci sono numeri da esaminare ripeti il passo 3 3.Leggi un nuovo numero e trova il maggiore tra questo ed il maggiore trovato fino ad ora 4.Il maggiore è il risultato dell'ultima esecuzione del passo 3.

26 Scomposizione di Problemi Tecniche 30 I costrutti offerti dai linguaggi di programmazione strutturata supportano le scomposizioni Sequenziale Suddividere un problema in parti disgiunte Selettiva Trattamento differenziato in casi differenti Iterativa Ricorsiva

27 31 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

28 Scomposizione Sequenziale Esempio Problema: Preparare una tazza di tè Soluzione: un algoritmo per la preparazione della 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 Ciascuno va ulteriormente scomposto 32

29 1 2 Scomposizione Sequenziale Riempire d acqua il bollitore Accendere il gas Aspettare che l acqua bolla Spegnere il gas Aprire la scatola del tè Prendere un sacchetto- filtro Chiudere la scatola del tè Mettere il sacchetto nella tazza 3 4 Esempio 33 Versare l acqua bollente nella tazza finché non è piena Aspettare 3 minuti Estrarre il sacchetto- filtro

30 34 Scomposizione Selettiva Soluzione ottenuta tramite scelte multiple Strutture di selezione all interno di altre strutture di selezione La scomposizione fa ricorso a strutture multiple Nidificazione (o annidamento) ) di strutture

31 Problema: Trovare il più grande dei numeri a, b, c (diversi tra loro) Azione primitiva (nota): Verificare se un numero è maggiore di un altro se a > b Scomposizione Selettiva 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 Esempio 35

32 37 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

33 Scomposizione Iterativa È individuabile una catena di sottoproblemi che: Requisiti Sono uguali, oppure Differiscono solo per i dati su cui agiscono ed inoltre i dati su cui agiscono Sono uguali, oppure Sono in una qualche relazione d ordine Ciascun problema differisce dal precedente perché opera sul dato successivo 38

34 Scomposizione Iterativa Esempio 40 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

35 43 Definizione Ricorsiva Ottenuta in termini di versioni più semplici della stessa cosa che definisce 2 livelli: Passo Operazione che riconduce la definizione ad un dato livello a quella di livello inferiore Base (o livello assiomatico) Definizione di partenza Necessario per ricostruire i livelli successivi Consente di definire problemi di ordine superiore

36 44 Scomposizione Ricorsiva Un problema di ordine n è definito in termini del medesimo problema di ordine inferiore Entità definita in termini più semplici della stessa entità Nella definizione deve apparire il livello assiomatico (o di ricostruzione) Problema risolubile tramite un azione primitiva

37 Scomposizione Ricorsiva Requisiti 45 Almeno uno dei sottoproblemi è formalmente uguale al problema di partenza, ma di ordine inferiore Al momento della scomposizione è noto l ordine del problema Scomposizione attuabile mediante regola di copiatura Sostituire ad ogni occorrenza del problema la scomposizione ricorsiva fino ad avere problemi primitivi (raggiungere il livello assiomatico)

38 Scomposizione Ricorsiva Esempio Trovare un metodo per invertire una sequenza di lettere se la sequenza contiene una sola lettera allora Scrivila (il problema è risolto) altrimenti: Rimuovi la prima lettera dalla sequenza Inverti la sequenza rimanente Appendi in coda la lettera rimossa 46

39 Scomposizione Ricorsiva Invertire roma roma Esempio roma (4 lettere): rimuovi r, inverti oma oma oma (3 lettere): rimuovi o, inverti ma ma ma (2 lettere): rimuovi m, inverti a a (1 lettera): è già invertita Appendi m : am am Appendi o : amo amo Appendi r : amor amor Risultato: amor amor 47

40 56 Scrittura di Algoritmi In corrispondenza dei metodi di scomposizione apposite strutture di controllo sono definite al fine di procedere alla scrittura di algoritmi Un linguaggio di rappresentazione deve essere scelto La descrizione del processo di esecuzione deve definire esattamente Gli oggetti su cui operare La sequenza esatta delle azioni da compiere La specifica dei controlli che determinano l ordine di esecuzione delle azioni

41 57 Diagrammi di Flusso Diagrammi di Flusso Linguaggio grafico utilizzato per trasmettere ad un esecutore umano la descrizione di un algoritmo Si parte dal punto iniziale Si seguono i percorsi indicati, eseguendo 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

42 Operazioni Azione Diagrammi di Flusso Elementi Costitutivi Controllo Inizio/Fine 58 Ingresso/Uscita Flusso Decisione Sottoprogramma

43 Diagrammi di Flusso Regole di Costruzione 60 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 e ingresso/uscita ha una freccia entrante ed una uscente Ogni blocco di decisione ha una freccia entrante e due uscenti Ogni freccia parte da un blocco e termina in un blocco o su un altra freccia

44 Diagrammi di Flusso Esempio 61 inizio inizio C C A A A A C A A C A A Fine Fine

45 Grafici Adatti agli esseri umani Diagrammi di Flusso Adatti a rappresentare processi sequenziali Immediatamente visualizzabili Pro Rispondono all esigenza di divisione del lavoro Documento base per l analisi organica Non ambigui Traducibili in vari linguaggi di programmazione 62

46 Diagrammi di Flusso Contro Spesso non entrano in una pagina Difficili da seguire e modificare Non naturalmente strutturati Spesso le modifiche portano a de- strutturazione Lontani dai linguaggi dei calcolatori 63

47 64 Programmazione Strutturata Ogni algoritmo (diagramma) può essere espresso in termini delle sole strutture: sequenza, selezione e iterazione (Uso di soli diagrammi strutturati) Configurazioni standard di blocchi elementari 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

48 Programmazione Strutturata Sequenza Concatenazione di azioni Selezione Schemi fondamentali Scelta di azioni alternative Dipendenza da una condizione Iterazione Ripetizione di una certa azione Dati potenzialmente diversi Dipendenza da una condizione 65

49 Programmazione Strutturata Sequenza A1 A1 Selezione Schemi fondamentali An An 66 C1 C1 A1 A1 A2 A2 C A Iterazione CC A AA C

50 67 Diagrammi Strutturati Base: : Dato un blocco di azione A, Inizio AA Fine è strutturato. Sequenza: : Se A 1,, A n sono strutturati, Inizio A 1 è strutturato A n Fine

51 68 Diagrammi Strutturati Selezione: : Se A 1 e A 2 sono strutturati, V Inizio CC F V Inizio CC F V Inizio CC F A 1 A 2 A 1 A 2 Fine sono strutturati Fine Fine

52 69 Diagrammi Strutturati Iterazione: : Se A è strutturato allora... Inizio CC V AA F Fine Inizio AA CC F V Fine Inizio CC F AA V Fine Inizio sono diagrammi strutturati AA CC V F Fine

53 Diagrammi Strutturati Esempio 71 Inizio AA CC CC AA C C AA CC AA AA Fine

54 Es.: Diagramma per il max tra due numeri 72 Inizio Leggi x e y P 1 e P 2 d x y P 3 Sì d > 0? No P 4 Scrivi max è x P 5 Scrivi max è y P 6 Fine P 7

55 73 Linguaggio Lineare Atto alla descrizione di algoritmi Costrutti linguistici non ambigui Usa esclusivamente schemi strutturati Simile ad un linguaggio di programmazione Sparks [Horowitz, 1978] Corrispondente italiano

56 Costrutto base: Linguaggio Lineare begin A end Inizio AA Fine Sequenza 74 Inoltre, ogni blocco di azione si può sostituire con uno dei seguenti costrutti begin A 1 ; ; A n end Inizio A 1 A n Fine

57 begin Linguaggio Lineare if C then A 1 Selezione else A 2 end 75 Inizio CC F V A1 A1 A2 A2 Fine begin Inizio if C CC F V then A A A end Fine begin Inizio if not C then A V CC F AA end Fine

58 Linguaggio Lineare Iterazione (while do) 76 begin Inizio while C F CC V do A A A end Fine begin Inizio while not C V CC F do A A A end Fine

59 Linguaggio Lineare Iterazione (repeat until) 77 begin Inizio repeat A until C AA CC F V end Fine Fine begin Inizio repeat A until not C AA CC V F Fine Fine end

60 Linguaggio Lineare Ambiguità if c 1 then a 2 ; if c 3 then a 4 else a 5 ; a 6 78 a2 a2 V c1 c1 F a2 a2 V c1 c1 F a5 a5 c3 c3 V F a5 a5 a6 a6 oppure c3 c3 a6 a6? V F a4 a4 a4 a4 Uso dell indentazione Aiuta ma non risolve

61 Risoluzione delle Ambiguità Convenzioni aggiuntive Ogni descrizione di un sottoprocesso che sia composizione in sequenza di descrizioni di azioni elementari o sottoprocessi deve essere racchiuso tra le parole begin end Vale, in particolare, per le descrizione di un sottoprocesso che segue le parola chiave then else while quando non è un azione basica 79

62 Risoluzione delle Ambiguità Convenzioni aggiuntive In alternativa: aggiungere i seguenti terminatori di istruzione Selezione: endif Iterazione di tipo while: endwhile 80 Non necessario per l iterazione di tipo repeat È già presente la clausola until come delimitatore

63 Esempio Algoritmo Euclideo per il MCD 86 Leggi la coppia di numeri Fintantoché i numeri sono diversi ripeti Se il primo numero è minore del secondo allora Scambiali Sottrai il secondo dal primo Rimpiazza i due numeri col sottraendo e con la differenza, rispettivamente Il risultato è il valore dei due numeri della coppia (uguali)

64 Esempio Algoritmo Euclideo per il MCD Inizio a,b a,b F a b V V F a>b a>b a a a b b b b a MCD = a Fine 87 begin leggi a, b while (a b) do if (a > b) then a a b else b b a MCD a end

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

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

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

Informatica. Come si risolve un problema?

Informatica. Come si risolve un problema? Informatica Elaborazione automatica dell informazione Esempio di elaborazione: rubrica, elenco telefonico. Ogni problema di elaborazione dell informazione è caratterizzato da: un insieme di dati di partenza

Dettagli

Algoritmi e Programmi

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

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

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

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

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

Laboratorio di Programmazione

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

Dettagli

Cosa è l Informatica?

Cosa è l Informatica? Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore

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

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

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

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma

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

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

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

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

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

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

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

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

Concetti Introduttivi. Il Computer

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

Dettagli

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

n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi 1 Cos è n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati n Un algoritmo è un metodo per la soluzione di un problema adatto

Dettagli

Fasi della programmazione. Gabriella Trucco

Fasi della programmazione. Gabriella Trucco Fasi della programmazione Gabriella Trucco Algoritmi Uso di algoritmi nella vita quotidiana Algoritmo: sequenza di passi che, se intrapresa da un esecutore, permette di ottenere i risultati attesi a partire

Dettagli

LABORATORIO DI INFORMATICA

LABORATORIO DI INFORMATICA LABORATORIO DI INFORMATICA Corso di laurea in Scienze della Formazione Primaria a.a.2014/2015 A cura del Prof. Sergio Miranda 2 LEZIONE N.6 Algoritmi GLI ALGORITMI (1/5) Un algoritmo è una sequenza di

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

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

CORSO DI ELEMENTI DI INFORMATICA

CORSO DI ELEMENTI DI INFORMATICA CORSO DI ELEMENTI DI INFORMATICA Corso di Laurea Triennale in Ingegneria Gestionale della Logistica e della Produzione Area didattica Ingegneria Elettrica a.a. 2016/2017 Docente: Ing. Domenico Amalfitano

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

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Algoritmi. Pagina 1 di 5

Algoritmi. Pagina 1 di 5 Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni

Dettagli

Risoluzione di problemi con l uso dell elaboratore elettronico

Risoluzione di problemi con l uso dell elaboratore elettronico Lab. Tecnologie Informatiche Risoluzione di problemi con l uso dell elaboratore elettronico L'INFORMATICA L'informatica è la scienza applicata che studia le modalità di raccolta, di conservazione, di trattamento

Dettagli

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

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire: Sviluppo di programmi Per scrivere un programma C corretto bisogna: E ora, finalmente Si comincia! DD Cap. pp.4974 Analizzare il problema (input, output, casi estremali) 2. Progettare una soluzione (algoritmo)

Dettagli

Capitolo 3 L elaborazione e la strutturazione dell informazione

Capitolo 3 L elaborazione e la strutturazione dell informazione Capitolo 3 L elaborazione e la strutturazione dell informazione Problemi e algoritmi Definire il problema Eliminare le ambiguità nella formulazione del problema Individuare il risultato che si vuole ottenere,

Dettagli

Capitolo 3 Elaborazione e Strutturazione dell Informazione. (Introduzione ai Sistemi Informatici Sciuto et alii)

Capitolo 3 Elaborazione e Strutturazione dell Informazione. (Introduzione ai Sistemi Informatici Sciuto et alii) Capitolo 3 Elaborazione e Strutturazione dell Informazione (Introduzione ai Sistemi Informatici Sciuto et alii) Il calcolatore come strumento per gestire informazione acquisire dati IN elaborare archiviare

Dettagli

Informatica e Bioinformatica: Algoritmi

Informatica e Bioinformatica: Algoritmi Informatica e Bioinformatica: Algoritmi 20 Marzo 2014 Programmi Applicativi Programmi Applicativi Sistema Operativo (lezione 3) Macchina Hardware (lezione 1 e 2) La macchina hardware permette l esecuzione

Dettagli

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

LA METAFORA DELL UFFICIO LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO LA METAORA DELL UICIO LAAGNA DI LAORO Lavagna di lavoro Lavagna di programma Sportello utenti Capo Ufficio Impiegato Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome distinto,

Dettagli

Come ragiona il computer. Problemi e algoritmi

Come ragiona il computer. Problemi e algoritmi 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

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

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

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

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

Dettagli

Programmazione. Informatica. Risoluzione dei Problemi

Programmazione. Informatica. Risoluzione dei Problemi Cos è l INFORMATICA?? Il termine "informatica" ha un' accezione molto ampia. Risoluzione automatica di problemi: gli Algoritmi Esistono varie definizioni: l'informatica è la scienza che si occupa della

Dettagli

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione alla programmazione

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione alla programmazione UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Introduzione alla programmazione Riferimenti Emanuele Goldoni Laboratorio Reti (MN) Tel. 0376-286234 E-mail: emanuele.goldoni@unipv.it Slide sul sito

Dettagli

A lezione sono stati presentati i seguenti passi per risolvere un problema:

A lezione sono stati presentati i seguenti passi per risolvere un problema: Calcolo delle radici di un polinomio Problema: Dati i coefficienti a,b,c di un polinomio di 2 grado della forma: ax^2 + bx + c = 0, calcolare le radici. A lezione sono stati presentati i seguenti passi

Dettagli

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso Laboratorio di Informatica Esercitazione su algoritmi e diagrammi di flusso Algoritmi, programmi e dati Algoritmo = insieme di istruzioni che indicano come svolgere operazioni complesse su dei dati attraverso

Dettagli

Strategie top-down. Primitive di trasformazione top-down. Primitive di trasformazione top-down

Strategie top-down. Primitive di trasformazione top-down. Primitive di trasformazione top-down Strategie top-down A partire da uno schema che descrive le specifiche mediante pochi concetti molto astratti, si produce uno schema concettuale mediante raffinamenti successivi che aggiungono via via più

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

Informatica, Algoritmi, Linguaggi

Informatica, Algoritmi, Linguaggi Elementi di Informatica e Applicazioni Numeriche T Informatica, Algoritmi, Linguaggi Cos'è l'informatica? Che cos'è l'informatica? Cos'è l'informatica? Che cos'è l'informatica? Dell'informatica possiamo

Dettagli

PROBLEMI ALGORITMI E PROGRAMMAZIONE

PROBLEMI ALGORITMI E PROGRAMMAZIONE PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL

Dettagli

Informatica. Informatica. Problema - soluzione. Algoritmi, dati e programmi. Introduzione ai concetti di: Distinguiamo tra: problema

Informatica. Informatica. Problema - soluzione. Algoritmi, dati e programmi. Introduzione ai concetti di: Distinguiamo tra: problema Algoritmi, dati e programmi 1 Algoritmi, dati e programmi 2 Informatica Informatica informatica informazione mezzi mezzi fisici procedure Algoritmi, dati e programmi rappresentazione dell informazione

Dettagli

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

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

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

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

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

Dettagli

Introduzione all Informatica e alla Programmazione. Fondamenti di Informatica T

Introduzione all Informatica e alla Programmazione. Fondamenti di Informatica T Introduzione all Informatica e alla Programmazione Cos è l INFORMATICA?? Il termine "informatica" ha un' accezione molto ampia. Esistono varie definizioni: l'informatica è la scienza che si occupa della

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

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

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

Analisi e programmazione 1

Analisi e programmazione 1 Informatica Secondo l ACM l informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l informazione: la loro teoria, analisi progetto efficienza realizzazione ed applicazione 1

Dettagli

1 Esercizi in pseudocodice

1 Esercizi in pseudocodice Questa dispensa propone esercizi sulla scrittura di algoritmi in un linguaggio semiformale, utile all acquisizione delle abilità essenziali per implementare algoritmi in qualsiasi linguaggio di programmazione.

Dettagli

Matlab. Istruzioni condizionali, cicli for e cicli while.

Matlab. Istruzioni condizionali, cicli for e cicli while. Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il

Dettagli

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI PROBLEMI E ALGORITMI prof.ssa VESPIA CATERINA LICEO CLASSICO AGLI ANGELI C O N T E N U T I Problemi. Concetto di algoritmo. Caratteristiche di un algoritmo. Descrizione di algoritmi - Diagrammi di flusso.

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E03 Esempi di algoritmi e programmi A. Miola Novembre 2011 1 Contenuti q Progettazione di algoritmi q Problemi di ingresso - uscita

Dettagli

2. Algoritmi e Programmi

2. Algoritmi e Programmi 12 2. Algoritmi e Programmi Dato un problema, per arrivare ad un programma che lo risolva dobbiamo: individuare di cosa dispongo: gli input; definire cosa voglio ottenere: gli output; trovare un metodo

Dettagli

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

ALGORITMI E PROGRAMMAZIONE STRUTTURATA. Prof R. Bresolin a.s ALGORITMI E PROGRAMMAZIONE STRUTTURATA Prof R. Bresolin a.s. 2013-2014 2 Programmazione Calcolatore Elettronico È uno strumento in grado di eseguire insiemi di azioni elementari; Le azioni vengono eseguite

Dettagli

I.4 Rappresentazione dell informazione

I.4 Rappresentazione dell informazione I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione

Dettagli

Modulo 1 Concetti di base della Tecnologia dell Informazione

Modulo 1 Concetti di base della Tecnologia dell Informazione Modulo 1 Concetti di base della Tecnologia dell Informazione 1.0.1.1 1.0.1.2 1.0.1.3 Algoritmi Definizione di algoritmo e sua rappresentazione grafica Per algoritmo si intende un procedimento, che permette

Dettagli

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010 Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo

Dettagli

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

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

Dettagli

1.1 Concetti base dell Informatica: Algoritmi

1.1 Concetti base dell Informatica: Algoritmi 1.1 Concetti base dell Informatica: Algoritmi Insegnamento di Informatica Elisabetta Ronchieri Corso di Laurea di Economia, Universitá di Ferrara I semestre, anno 2014-2015 Elisabetta Ronchieri (Universitá)

Dettagli

La rappresentazione dell algoritmo Diagrammi di flusso

La rappresentazione dell algoritmo Diagrammi di flusso La rappresentazione dell algoritmo Diagrammi di flusso Forme di rappresentazione Ritornando al problema dell addizione di due numeri interi, la maestra non fa altro che codificare l algoritmo utilizzando

Dettagli

6) Descrivere con un diagramma a blocchi un algoritmo che legga da input due numeri ne calcoli il prodotto in termini di somme ripetute.

6) Descrivere con un diagramma a blocchi un algoritmo che legga da input due numeri ne calcoli il prodotto in termini di somme ripetute. I due esercizi seguenti su un esempio semplice (trovare il massimo tra due o tra tre numeri) introducono la descrizione di algoritmi con diagrammi a blocchi, le strutture di controllo sequenza e condizione,

Dettagli

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

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

Dettagli

Introduzione agli algoritmi

Introduzione agli algoritmi Introduzione agli algoritmi Consideriamo un lettore di CD musicali portatile Questo ha a disposizione: pulsanti di controllo display che indica se il lettore è in funzione il brano che è attualmente riprodotto

Dettagli

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

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno : Gli Algoritmi INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e

Dettagli

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un

Dettagli

Sistemi Web per il turismo - lezione 3 -

Sistemi Web per il turismo - lezione 3 - Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa

Dettagli

Teoria dell Informazione

Teoria dell Informazione Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Teoria dell Informazione Cosa è l informazione L informazione è qualcosa che si possiede e si può dare ad un altro

Dettagli

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro

Dettagli

Rappresentazione generale del problema e fasi di progettazione

Rappresentazione generale del problema e fasi di progettazione D-003-2015-10-18 MATERIA DATA OGGETTO Informatica 18/10/2015 Progettazione degli algoritmi: strategia top-down Rappresentazione generale del problema e fasi di progettazione In generale, la risoluzione

Dettagli

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione elaborazione

Dettagli

Dall algoritmo al programma

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

Dettagli

Esercitazione 3. Espressioni booleane I comandi if-else e while

Esercitazione 3. Espressioni booleane I comandi if-else e while Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

Introduzione alla programmazione Esercizi risolti

Introduzione alla programmazione Esercizi risolti Esercizi risolti 1 Esercizio Si determini se il diagramma di flusso rappresentato in Figura 1 è strutturato. A B C D F E Figura 1: Diagramma di flusso strutturato? Soluzione Per determinare se il diagramma

Dettagli

Pr1: determinare il maggiore di n numeri interi n. Fondamenti di Informatica Prof. Vittoria de Nitto Personè

Pr1: determinare il maggiore di n numeri interi n. Fondamenti di Informatica Prof. Vittoria de Nitto Personè Pr1: determinare il maggiore di n numeri interi 1 2 3 4 n 1 Pr1: determinare il maggiore di n numeri interi 1 2 3 4 n P1. trovare il maggiore fra i primi 2 numeri; P2. trovare il maggiore fra il terzo

Dettagli

Strutture di Controllo

Strutture di Controllo Introduzione Strutture di Controllo per strutture condizionali e cicliche Quando si affronta la programmazione si devono indicare al computer delle istruzioni da eseguire. Se il computer potesse comprendere

Dettagli

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

Dettagli

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Dettagli

COSA SONO I FLOW CHART

COSA SONO I FLOW CHART COSA SONO LOW CHART flow chart sono schemi che descrivono visivamente come procede l esecuzione di un programma. Essi non sono legati ad uno specifico linguaggio: dato un flow chart, il programmatore può

Dettagli

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 JavaScript Core Language Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 Condizioni L utilizzo di operatori relazionali e logici consente di formulare delle condizioni

Dettagli

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento lunedì, prima o dopo lezione? Aula? 1 Analisi e programmazione Tramite un elaboratore si possono risolvere

Dettagli

Algoritmi e Linguaggi

Algoritmi e Linguaggi Algoritmi e Linguaggi Programmi e linguaggi Un calcolatore è solo un esecutore rapidissimo di istruzioni Un programma è un insieme di istruzioni codificate in un opportuno linguaggio 2 / 21 Linguaggi e

Dettagli

= < < < < < Matematica 1

= < < < < < Matematica  1 NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato

Dettagli

Programmazione strutturata

Programmazione strutturata Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo

Dettagli