5. Problemi e sottoproblemi
|
|
- Ugo Giuseppe Villa
- 7 anni fa
- Visualizzazioni
Transcript
1 5 Problemi e sottoproblemi 1 Caratterizzazione di un problema Come si è detto e ripetuto nei capitoli precedenti, è necessario che il progettista esprima l algoritmo in un linguaggio comprensibile all esecutore e che tenga conto di ciò che l esecutore sa fare Se il problema non è elementare, la soluzione richiederà un grande numero di istruzioni Può allora capitare di smarrirsi nei dettagli, perdendo di vista l organizzazione della soluzione nel suo insieme Dato che siamo noi i progettisti, è importante trovare delle strategie che ci permettano di avere sempre sotto controllo l intera soluzione Durante la progettazione è utile individuare immediatamente le fasi principali della soluzione, ciascuna delle quali è a sua volta un problema, ma più semplice se considerato da solo; questo modo di procedere è noto come metodo di scomposizione in sottoproblemi Esso consiste nell immaginare un esecutore più sveglio di quello che dobbiamo istruire e nell esprimere la soluzione in termini a lui comprensibili Ad esempio, consideriamo il problema pulire il carburatore di un motorino Inizialmente la soluzione del problema può essere espressa semplicemente con l istruzione: Pulisci il carburatore del motorino Comodo, vero? La soluzione del problema è proprio ciò che chiediamo all esecutore La metodologia di scomposizione in sottoproblemi parte sempre considerando un esecutore che capisca l istruzione Risolvi l intero problema Poiché il nostro esecutore non sa fare quanto richiesto, spieghiamo più in dettaglio cosa deve fare; ad esempio, sappiamo che per poter pulire il carburatore è necessario inizialmente smontarlo, quindi pulire il carburatore smontato e poi rimontarlo Immaginiamo che l esecutore sappia compiere queste azioni; allora la soluzione diventa: 1) smonta il carburatore 2) pulisci il carburatore smontato 3) rimonta il carburatore A questo punto, o l esecutore sa svolgere le istruzioni specificate, oppure ciascuna di esse diventa a sua volta un problema, per il quale è necessario specificare i passi elementari della sua soluzione Si procede così per ogni istruzione sino ad ottenere un insieme di istruzioni effettivamente comprensibili all esecutore (istruzioni elementari) In altre parole, può essere utile in un primo momento pensare di avere a disposizione un esecutore che sappia fare tante cose e di sapere noi stessi come si fanno; in un secondo momento si dettagliano le operazioni troppo complicate che inizialmente si è pensato che l esecutore sapesse fare scoprendo eventualmente come realizzare effettivamente ciò che abbiamo lasciato in sospeso Ci siamo complicati la vita? No, abbiamo smontato il problema in problemi più piccoli, cioè abbiamo scomposto il problema in sottoproblemi: ciascuno di questi sarà più semplice da risolvere rispetto al problema iniziale 1
2 Operazioni di elaborazione, parametri delle operazioni Un esecutore che dovesse pulire un carburatore, deve sicuramente poter ricevere il carburatore da pulire, ma deve anche essere in grado di farci qualcosa (bagnarlo con la benzina, asciugarlo con l aria compressa, strofinarlo con una spazzola, ecc) Esistono delle operazioni che sono in grado di fare sempre la stessa cosa però su elementi diversi; il caso della pulizia del carburatore è una di queste perché si possono pulire diversi carburatori sempre nello stesso modo In generale, si può pensare ad una operazione come ad una scatola nera (black box) che può ricevere qualcosa (parametro di input) da chi la richiama (dal ) oppure può restituire qualcosa (parametro di output) a chi la richiama Può anche succedere che l operazione riceva qualcosa (parametro di input/output) da chi la richiama e la restituisca modificata Una operazione può avere diversi parametri di input, di output, e di input/output Esistono anche operazioni che agiscono sempre sugli stessi dati, e producono sempre gli stessi risultati, cioè operazioni che non hanno parametri Una operazione di questo tipo è, ad esempio, quella che pulisce lo schermo, che possiamo chiamare, per esempio, PulisciSchermo Per ciascuna operazione con parametri dobbiamo individuare bene ciò che l operazione si aspetta dal e ciò che eventualmente l operazione restituisce al Per ora ci limitiamo esclusivamente ad esaminare la direzione nella quale viaggiano i dati (figura seguente) ; non ci occupiamo della loro memorizzazione operazione parametri di input parametri di input/output parametri di output 2
3 Se ci pensate bene, qualsiasi operazione può essere vista nel seguente modo: Tipologia di parametri utilizzati dall operazione operazione input/output input output somma tra due numeri niente i due numeri il risultato della somma radice quadrata di un niente il numero il risultato della radice numero pulizia di un carburatore visualizzazione di un messaggio di auguri acquisizione del numero di telefono di Antonio carburatore niente (prima sporco e poi pulito) niente messaggio di quadrata niente niente auguri niente niente numero di telefono di Antonio Dovete stare attenti a non confondere i parametri di input con le operazioni di input ed i parametri di output con le operazioni di output Un parametro di input è qualcosa che l operazione riceve dal mentre una operazione di input è una operazione che riceve qualcosa dall Un parametro di output è qualcosa che l operazione fornisce al mentre una operazione di output è una operazione che fornisce qualcosa all Analizziamo la tabella precedente: visualizzazione di un messaggio di auguri : questa operazione è una operazione di output in quanto comunica all il contenuto del messaggio, ma non restituisce niente al, quindi non ha parametri di output; al contrario, riceve dal il contenuto del messaggio, che quindi è un parametro di input acquisizione del numero di telefono di Antonio : è una operazione di input in quanto acquisisce dall un numero di telefono, ma non riceve niente da chi ne richiede la sua esecuzione e quindi non ha parametri di input; al contrario, restituisce a chi la richiama il numero di telefono di Antonio, che quindi è un parametro di output E possibile che facciate confusione con questi termini Per evitare ciò, mettetevi nei panni di chi dovrà svolgere l operazione e procedete nel modo seguente Per decidere il tipo di un parametro: se chi chiede il vostro servizio vi dà qualcosa, allora questo qualcosa è un parametro di input; se, invece dovete restituire qualcosa a chi richiede il vostro servizio, allora questo qualcosa è un parametro di output (analizzate bene la figura precedente) Per decidere il tipo di una operazione: se dovete ricevere qualcosa 3
4 dall allora l operazione è di input; viceversa è di output se dovete fornire qualcosa all L operazione non è né di input né di output se non chiedete nulla all e non date nulla all In altre parole, l non coincide con il Provate ad individuare il tipo delle operazioni della tabella precedente Vediamo ora quali sono gli schemi relativi alle operazioni precedenti: acquisizione del numero numero Antonio numero Antonio messaggio auguri visualizza messaggio messaggio auguri pulizia di un carburatore sporco carburatore e poi pulito somma tra due numeri 12 e
5 radice quadrata di un numero 11 Soluzione di un problema mediante scomposizione in sottoproblemi Torniamo a quanto abbiamo detto precedentemente a proposito della scomposizione in sottoproblemi Supponiamo di dover istruire un esecutore perché calcoli e visualizzi la radice quadrata di un numero che viene richiesto all Per prima cosa l esecutore deve richiedere il numero all (vi ricordate? viene fatta una operazione di output); successivamente acquisisce il numero (operazione di input); questo numero viene così memorizzato in una variabile opportuna che chiamiamo, per esempio A Successivamente dovrà calcolare la radice quadrata e, infine, visualizzarla (vi ricordate? viene fatta una operazione di output) Il problema iniziale è stato scomposto nei seguenti sottoproblemi: 1 comunica che vuoi un numero 2 ricevi il numero e memorizzalo in A 3 calcola la radice quadrata di A e memorizzala in B 4 comunica il risultato che hai ottenuto, cioè il valore di B Supponete di non ricordare come si calcola la radice quadrata di un numero: in un primo momento questo non è importante, ma è importante, fondamentale, capire che per poter fare ciò è necessario avere a disposizione il numero e, in seguito al calcolo, produrre come risultato un altro numero che verrà memorizzato in una variabile che chiamiamo, nel nostro esempio, B E cioè necessario individuare quali sono i parametri della operazione che si occupa del calcolo della radice quadrata Successivamente potremo concentrarci su questa parte, senza pensare più alle parti precedenti e successive, cioè come si fa a procurasi il numero e come si fa a visualizzarlo I singoli sottoproblemi possono essere direttamente risolubili attraverso un operazione elementare dell esecutore, oppure no; se no, il progettista dovra' progettare per l esecutore una nuova operazione che risolva quel sottoproblema specifico, elencando i vari passi che la compongono Ciascuno di questi passi risolve un sotto-sottoproblema e quindi per esso si ripeterà lo stesso procedimento: per ogni operazione non elementare dovranno essere elencati i passi che la compongono, e così via fino ad arrivare ad avere solo operazioni elementari 5
6 Si può pensare indifferentemente che le operazioni vengano eseguite da sottoesecutori oppure da parti diverse, specializzate, di un esecutore principale Come si può vedere dallo schema seguente, il procedimento risolutivo del problema viene progettato per un esecutore principale (chiamato main) che si suppone disponga di sottoesecutori in grado di risolvere i sottoproblemi 1,2,3,n L'esecutore main e' il di tutti questi sottoesecutori Per ciascuno dei sottoproblemi non risolubili attraverso una operazione elementare, vale lo stesso discorso fatto per il problema iniziale: se, per esempio, al sottoproblema 2 non corrispondesse nessuna operazione elementare, verrà scomposto in sotto-sottoproblemi (sotto-sottoproblema 21, sotto-sottoproblema 22,, sotto-sottoproblema 2m), che hanno a loro volta le caratteristiche di un problema, e così via Ciascun sottoesecutore è a sua volta il dei sottosottoesecutori problema sottoproblema 1 sotto-sottoproblema 21 sottoproblema 2 sotto-sottoproblema 22 sotto-sottoproblema 2m sottoproblema 3 sottoproblema n Nel nostro esempio del calcolo della radice quadrata, i punti 1, 2 e 4 corrispondono a operazioni elementari Invece l operazione 3 (calcolo della radice quadrata) non rientra tra le operazioni elementari Riassumiamo: l esecutore main procede in questo modo: prende in considerazione le varie operazioni, dalla prima all ultima per ciascuna di queste chiama, attiva, un sottoesecutore (al quale passa eventuali parametri) il quale si comporterà a tutti gli effetti come un esecutore al quale è stato ordinato di eseguire delle operazioni (nella figura precedente, corrispondono alle operazioni che risolvono i sotto-sottoproblemi 21, 2m) Il sottoesecutore segnalerà la fine del suo lavoro all esecutore ed eventualmente gli passerà dei parametri Il modo di procedere che abbiamo illustrato si chiama metodo TOP-DOWN e può essere descritto con la seguente analogia: immaginate quale può essere il lavoro del responsabile del settore ricerca di una grossa impresa (rappresenta 6
7 colui che nel primo capitolo abbiamo chiamato progettista) Deve risolvere un problema complesso e, dopo averlo analizzato in tutte le salse, capisce che è necessario scomporlo in sottoproblemi cioè in tanti piccoli problemi più semplici che, risolti uno dopo l altro, portano alla soluzione Per fare ciò si rivolge al direttore tecnico del settore opportuno (rappresenta l esecutore main) il quale delega ogni operazione a diversi impiegati (rappresentano i sottoesecutori), ciascuno dei quali è specializzato nella risoluzione di un problema specifico Per ogni operazione che delega ad altri, il direttore chiama un impiegato che si occupa del sottoproblema corrispondente, gli fornisce tutto ciò di cui ha bisogno per risolvere il suo sottoproblema (parametri di input e/o input/output) e, eventualmente, si aspetta da questo qualcosa come prodotto della sua esecuzione (parametri di output e/o di input/output) Quando questo impiegato ha finito, il direttore chiama un altro impiegato che si occupa di un altro sottoproblema al quale fornisce ciò di cui ha bisogno e dal quale eventualmente riceve qualcosa come prodotto della esecuzione, e così via fino alla fine Nel caso del problema precedente relativo al calcolo e visualizzazione della radice quadrata di un numero si possono individuare i seguenti sottoproblemi a ciascuno dei quali corrisponde un diverso sottoesecutore: 1 visualizzazione di un messaggio di richiesta di inserimento di un numero E una operazione di output con un parametro di input (il messaggio Dammi un numero ) direttore sottoesecutore1 Dammi un numero Dammi un numero 2 acquisizione del numero, che viene memorizzato in una variabile A (es numero ) E una operazione di input con un parametro di output (il valore di A) direttore sottoesecutore 2 7
8 3 calcolo della radice quadrata Corrisponde ad un impiegato che riceve dal direttore il valore della variabile A e restituisce al direttore la radice quadrata che avrà calcolato in qualche modo e che avrà memorizzato in una variabile B Ha un parametro di input (A) e un parametro di output (B) direttore sottoesecutore visualizzare il valore di B E una operazione elementare di output che ha un parametro di input (B) direttore sottoesecutore Introduciamo ora una notazione che ci permette di evidenziare, per ciascuna operazione i parametri di input, di output, di input/output Scriviamo il nome della operazione e, all interno di parentesi tonde, l elenco dei parametri separati da virgole Per individuare poi il tipo di parametro scriviamo sopra ogni parametro, in piccolo, I, O o I/O a seconda del tipo di parametro (input, output o input/output rispettivamente) Nel caso dell esempio scriveremo: Scrivi( Dammi un numero I ); Leggi(A O ); CalcolaRadice(A I,B O ); Scrivi(B I ); Occorre precisare una cosa: è possibile che un impiegato decida di utilizzare altri sottoimpiegati per svolgere l operazione In termini più formali, è possibile che un problema possa/debba essere scomposto in sottoproblemi Ogni sottoproblema è, a tutti gli effetti, un problema e quindi l impiegato di livello 1 è visto come direttore da un suo sottoimpiegato e quindi per un sottoimpiegato si parla ugualmente di parametri Fino a che punto si arriva con la 8
9 scomposizione? Fino a quando si arriva ad una operazione che un esecutore di qualsiasi livello sa fare, cioè fino ad arrivare ad una operazione che è elementare per quell esecutore Facendo ancora riferimento all esempio precedente, se l esecutore sa calcolare la radice quadrata di un numero, allora CalcolaRadice(A,B) sarà immediatamente eseguibile, cioè non ci sarà bisogno di scomporla in altre operazioni, altrimenti dovremo procedere con la scomposizione, utilizzando una sequenza di operazioni elementari, oppure, se l operazione è troppo complessa, si applicherà una ulteriore scomposizione in sottoproblemi ESERCIZI a) Scomporre in sottoproblemi ciascuno dei seguenti problemi, individuando per ciascuno di questi i parametri, specificando se sono di input, output o input/output 1 Indovinare, con il numero minimo di tentativi, un numero compreso tra 1 e 100 pensato dall 2 Contare quante volte compare la lettera A in una frase chiesta all 3 Contare quante parole sono contenute in una frase chiesta all 4 Dire se la parola casa è contenuta in una frase chiesta all 5 Chiedere una lettera e una frase all e contare quante volte la lettera è contenuta nella frase 6 Calcolare il prodotto tra due numeri interi chiesti all 7 Calcolare le radici di una equazione di secondo grado 8 Sommare N numeri chiesti all Il valore di N è chiesto anch esso all 9
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
DettagliL 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
DettagliProblemi, 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
DettagliElaboratore 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
DettagliIntroduzione 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):
DettagliIl 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
DettagliIl 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
DettagliUniversità 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
DettagliLABORATORIO 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
DettagliInformatica. 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
DettagliIntroduzione 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
DettagliAlgoritmi. 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
DettagliRAPPRESENTAZIONE 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
DettagliNote per la Lezione 6 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,
DettagliPROBLEMI 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
DettagliRappresentazione 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
DettagliSviluppo 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
DettagliSommario. 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
DettagliSommario. 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
DettagliIntroduzione 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
DettagliCosa è l Informatica?
Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore
DettagliINFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)
INFORMATICA Cosa è l informatica Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) E una scienza E una tecnologia Cosa può essere automatizzato nell
DettagliUniversità degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale
Università degli Studi di Brescia INFORMATICA Concetto di Algoritmo Docente: Marco Sechi E mail: marco.sechi@unibs.it Vers. 21/08/2016.A050917* Dipartimento di Ingegneria Meccanica e Industriale DIPARTIMENTO
DettagliCorso 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
Dettagliin 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
DettagliELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)
1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano
Dettagli1 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.
DettagliLinguaggio C: le funzioni. Introduzione e sintassi
ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni
DettagliLezione 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
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE
INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni
DettagliCorso 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
DettagliMODULO 07. La soluzione dei problemi mediante gli algoritmi
MODULO 07 La soluzione dei problemi mediante gli algoritmi MODULO 07 Unità didattica 02 Impariamo a fare i diagrammi a blocchi In questa lezione impareremo: come descrivere l algoritmo risolutivo utilizzando
DettagliCome 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
DettagliProblema: 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
DettagliRisolvere 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
DettagliLEZIONE 11 IMPARIAMO A PROGRAMMARE: I DATI E LE VARIABILI Laboratorio di Informatica per l Educazione A. A. 2014/2015
1 LEZIONE 11 IMPARIAMO A PROGRAMMARE: I DATI E LE VARIABILI A. A. 2014/2015 PRIMI PASSI La più semplice sequenza di istruzioni che possiamo scrivere è quella costituita da un solo comando. come si fa a
DettagliL INFORMATICA c1. Informatica è qualcosa che ha a che fare con l uso del computer
L INFORMATICA c1 Negli incontri precedenti ci siamo occupati di cercare la soluzione di alcuni problemi. Ora cerchiamo di definire cosa si intende per informatica. Informatica è qualcosa che ha a che fare
DettagliLe funzioni in JavaScript. Modularizzazione
Modularizzazione Quando abbiamo a che fare con un problema complesso spesso lo suddividiamo in problemi più semplici che risolviamo separatamente, per poi combinare insieme le soluzioni dei sottoproblemi
DettagliCorso 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
DettagliLaboratorio 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
DettagliLA 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
DettagliCorso 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
DettagliEsercitazioni di Informatica B A.A. 2010/2011 Pseudocodice. Nicola Vitucci
Esercitazioni di Informatica B A.A. 2010/2011 Pseudocodice Cos'è lo pseudocodice? Abbiamo visto che prima di scrivere del codice è importante innanzitutto avere le idee chiare sul problema da affrontare
DettagliSTRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER
1 STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER Un computer e una macchina che riceve in ingresso delle informazioni, le elabora secondo un determinato procedimento e produce dei risultati che vengono
DettagliLinguaggio C: le funzioni. Introduzione e sintassi
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Introduzione e sintassi La presente dispensa
DettagliCorso 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
DettagliCorso di Informatica Modulo T1 1 - Il concetto di problema
Corso di Informatica Modulo T1 1 - Il concetto di problema 1 Prerequisiti Concetti intuitivi di: Proporzione Problema Variabile Numeri interi e reali 2 1 Introduzione Nel risolvere un problema abbiamo
DettagliIndividuazione di sottoproblemi
Individuazione di sottoproblemi Quando il problema è complesso conviene partire con una individuazione di sottoproblemi Scriviamo un algoritmo contenente azioni o condizioni complesse per l esecutore che
DettagliCorrettezza (prima parte)
Fondamenti di informatica Oggetti e Java (prima parte) Capitolo 16 ottobre 2015 1 Contenuti Introduzione alla correttezza dei programmi specifica di un programma correttezza di un programma verifica di
DettagliFasi 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
DettagliEsercitazione 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
DettagliA 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
DettagliALGORITMI: 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
DettagliAlgoritmo. 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
DettagliCorso di Informatica
Corso di Informatica Modulo T1 2-Proprietà degli algoritmi 1 Prerequisiti Conoscere il concetto di M.C.D. tra due numeri interi Concetto intuitivo di funzione matematica 2 1 Introduzione Sappiamo scrivere
DettagliRappresentazione 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
DettagliPROBLEMA: «Stabilire se un numero è pari o dispari?»
PROBLEMA: «Stabilire se un numero è pari o dispari?» 1 COSTRUZIONE DI UN ALGORITMO Il problema potrebbe essere schematizzato semplicemente così: PARI O DISPARI? Questo è il dilemma! 1 -ACQUISISCO PARI!
DettagliRISOLVERE I TEMI D ESAME
RISOLVERE I TEMI D ESAME UN PARAGONE Elementi di Informatica e Programmazione Università di Brescia 1 SVILUPPO DI UN TEMA Leggere bene la traccia (evitare di andare fuori tema ) Pensare a cosa si sa e
DettagliLEZIONE PRECEDENTE. 1 Abilità Informatiche e Telematiche. 03/04/2015 Dott. ssa Carmen De Maio
LEZIONE PRECEDENTE Introduzione a Sprite; Operatori e funzioni; Come usare i blocchi Movimenti per far muovere uno Sprite; Come usare i blocchi Penna per disegnare sullo stage; Esercizi 1 TO DO: Completa
DettagliElaborazione dell informazione
Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione
DettagliProgrammazione 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
DettagliSistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 I linguaggi di programmazione e gli
Dettaglin 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
DettagliConcetti 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
DettagliCorso di Matematica per la Chimica
Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica e Economia Università della Basilicata a.a. 2014-15 Introduzione La MATEMATICA è uno strumento
DettagliLE EQUAZIONI DI SECONDO GRADO
LE EQUAZIONI DI SECONDO GRADO Definizione: un equazione è di secondo grado se, dopo aver applicato i principi di equivalenza, si può scrivere nella forma, detta normale: ax + bx + c 0!!!!!con!a 0 Le lettere
DettagliDefinizione di metodi in Java
Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un
DettagliIntroduzione 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
DettagliAlgoritmi e soluzione di problemi
Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)
DettagliInformatica 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
DettagliSTRUTTURE DI CONTROLLO DEL C++
STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto
DettagliUNITÀ DIDATTICA 5 LA RETTA
UNITÀ DIDATTICA 5 LA RETTA 5.1 - La retta Equazione generica della retta Dalle considerazioni emerse nel precedente capitolo abbiamo compreso come una funzione possa essere rappresentata da un insieme
DettagliFondamenti di Informatica
Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni
DettagliSistemi 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
DettagliCORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1
CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 Lezione 1 (Introduzione e Definizioni) Docenti Docente: Prof. Michele Colajanni Lezioni (Aula IV): martedì 10:00-12:45 Esercitazioni (Laboratorio): mercoledì
Dettagli7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
DettagliLezione 1. Problemi Algoritmi Programmi
Lezione 1 Problemi Algoritmi Programmi Programmazione I Paolo Valente - 2016/2017 Il problema... della tigella emiliana Avete invitato a cena degli amici stranieri e volete fare provare loro le tigelle
DettagliLez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1
Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli
DettagliSistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara
Sistemi lineari Lorenzo Pareschi Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara http://utenti.unife.it/lorenzo.pareschi/ lorenzo.pareschi@unife.it Lorenzo Pareschi (Univ. Ferrara)
DettagliUnità di apprendimento 6. Dal problema al programma
Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 2 Impariamo a fare i diagrammi a blocchi In questa lezione impareremo: come descrivere l algoritmo risolutivo utilizzando
DettagliDall analisi alla codifica (1)
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 09 Dall analisi alla codifica (1) Aprile 2010 Dall'analisi alla codifica (1) 1 Contenuti... Problemi e algoritmi comprensione del problema
DettagliUnità di apprendimento 6. Dal problema al programma
Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 1 Conosciamo gli algoritmi e i linguaggi In questa lezione impareremo: cos è un problema come affrontarlo come descrivere
DettagliCorso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi
Codice BCD Prima di passare alla rappresentazione dei numeri relativi in binario vediamo un tipo di codifica che ha una certa rilevanza in alcune applicazioni: il codice BCD (Binary Coded Decimal). È un
Dettagli6. I sottoproblemi SP1(P1,P2); SP2(P2); SP1(P2,P3);
6. I sottoproblemi Definizione e attivazione (chiamata) di un sottoesecutore Abbiamo paragonato la risoluzione di un problema complesso a ciò che avviene in una grossa impresa: esiste un direttore tecnico
DettagliLa moltiplicazione di numeri naturali: esercizi svolti
La moltiplicazione di numeri naturali: esercizi svolti La moltiplicazione è una delle quattro operazioni fondamentali dell'aritmetica. È un modo sintetico per rappresentare la somma di numeri uguali. Il
DettagliAlgoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione
Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea
Dettaglipercorso 4 Estensione on line lezione 2 I fattori della produzione e le forme di mercato La produttività La produzione
Estensione on line percorso 4 I fattori della produzione e le forme di mercato lezione 2 a produzione a produttività Una volta reperiti i fattori produttivi necessari l imprenditore dovrà decidere come
DettagliCapitolo 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
DettagliLe Derivate. Appunti delle lezioni di matematica di A. Pisani Liceo Classico Dante Alighieri
Le Derivate Appunti delle lezioni di matematica di A. Pisani Liceo Classico Dante Alighieri Nota bene Questi appunti sono da intendere come guida allo studio e come riassunto di quanto illustrato durante
DettagliEquazioni di secondo grado
Equazioni di secondo grado Un equazione di secondo grado può sempre essere ridotta nella forma: a + bx + c 0 forma normale con a 0. Le lettere a, b, c sono rappresentano i coefficienti. Solo b e c possono
DettagliLEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati.
LEZIONE 2 2 Sistemi di equazioni lineari Definizione 2 Un equazione lineare nelle n incognite x, x 2,, x n a coefficienti reali, è un equazione della forma (2 a x + a 2 x 2 + + a n x n = b, ove a j, b
DettagliISA Input / Output (I/O) Data register Controller
ISA Input / Output (I/O) Numerose Periferiche di tanti tipi diversi, collegati alla CPU mediante BUS diversi. Solo Input (tastiera, mouse), producono dati che la CPU deve leggere. Solo Output (Schermo),
DettagliSCOMPOSIZIONE IN FATTORI PRIMI:
SCOMPOSIZIONE IN FATTORI PRIMI: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229
DettagliProcedura. Procedure e funzioni. Esempio di procedura in C. Procedure in C. Esempio con prototipo. Esecuzione del codice
Procedure e funzioni In linguaggio C Procedura Una procedura può essere rappresentata come una macchina in grado di eseguire un certo compito quando attivata. In un primo tempo la macchina deve essere
Dettagli2. 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
DettagliIL PRIMO PROGRAMMA IN C
IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE
DettagliLezioni di Informarica. Prof. Giovanni Occhipinti
Lezioni di Informarica Prof. Giovanni Occhipinti 23 settembre 2010 2 Indice 1 La codifica delle Informazioni 5 1.1 Il sistema binario........................... 5 1.1.1 Conversione da binario a decimale.............
DettagliFormalismi 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