Teorie e tecniche di base della programmazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Teorie e tecniche di base della programmazione"

Transcript

1 La soluzione di un generico problema mediante un sistema di elaborazione consiste nel passaggio dalla descrizione del problema di partenza al programma finale, in cui l utente può utilizzare il calcolatore per inserire i dati in ingresso e ottenere i risultati in modo automatico. Essendo l informatica una disciplina trasversale, il caso da risolvere può riguardare insegnamenti diversi quali l economia e la matematica e, ad esempio, potrebbe essere il calcolo dello stipendio dei dipendenti di un'azienda o la valutazione delle orbite seguite dai pianeti nel nostro sistema solare. Un elaboratore elettronico è una macchina (automa) in grado di eseguire un numero limitato di semplici operazioni, rappresentate mediante sequenze di variabili binarie incomprensibili all uomo. Per semplificare l attività del programmatore, sono stati introdotti: - alcuni linguaggi di programmazione, denominati ad alto livello, dove i dati e le istruzioni sono codificati mediante frasi vicine al linguaggio naturale dell uomo; - i programmi traduttori (compilatori e interpreti), che hanno la funzione di tradurre il programma scritto nel linguaggio ad alto livello in quello della macchina. Un programmatore, per risolvere un problema con un calcolatore, deve organizzare in modo diverso le istruzioni a sua disposizione per eseguire un programma sorgente, ovvero un insieme di operazioni, scritte con un linguaggio di programmazione, che definisce l elaborazione da applicare ai dati di ingresso per produrre i risultati. Il passaggio diretto dal problema al programma sorgente comporta i seguenti svantaggi: - l uso di un numero limitato di istruzioni: di fronte a un problema complesso, avendo a disposizione un insieme limitato di istruzioni, è spesso impossibile scrivere direttamente il programma finale che lo risolve; - non comunicabilità: una soluzione scritta direttamente con un programma non può essere comunicata a persone non esperte di informatica oppure che non conoscono quel particolare linguaggio. Queste considerazioni ci suggeriscono che, se si decide di risolvere un problema mediante un sistema di elaborazione, si devono seguire alcune fasi intermedie che conducono sia alla scrittura del programma finale sia alla creazione della documentazione necessaria per la descrizione dell intera soluzione del problema. La programmazione In senso ampio, con il termine programmazione si intende l intera attività svolta per passare dal problema alla sua soluzione mediante un sistema di elaborazione. La programmazione non consiste quindi nella scrittura diretta della soluzione di Pagina 1 di 13

2 un problema con un programma sorgente, ma individua un processo di soluzione che può essere organizzato nelle fasi illustrate dallo schema che segue. 1. Analisi del problema: a b formulazione del problema in modo generale; definizione delle specifiche concettuali, tecnologiche e ambientali. 2. Progettazione (o progetto): a b 3. Realizzazione: a b creazione del modello dei dati; sviluppo dell algoritmo. codifica; collaudo (testing) e correzione degli errori (debugging). In luogo del termine programmazione si utilizza anche l espressione progettazione della soluzione, per porre in evidenza come il passaggio dal problema alla sua soluzione costituisca un vero e proprio progetto. Il termine progetto indica l ideazione di un nuovo lavoro, che dovrà in seguito essere realizzato, e quindi una attività di tipo creativo. Di fronte allo stesso problema, potremo quindi ideare progetti diversi adatti a risolverlo anche se poi, tra le diverse proposte, si dovrà, scegliere quella più adatta, ad esempio, perché è la più semplice da realizzare. Mentre nelle fasi di analisi e di progetto dobbiamo definire tutto ciò che ci proponiamo di compiere e i modi con cui vogliamo compierlo, in quella successiva di realizzazione si devono utilizzare gli strumenti a nostra disposizione per costruire il programma finale. Analisi di un problema La fase di analisi di un problema si svolge: - formulando il problema in modo generale; - creando le specifiche concettuali, tecnologiche e ambientali. Formulazione generale dei problema Di fronte a un problema specifico, prima di impostare la soluzione, si deve riformulare il testo in modo che la soluzione non riguardi il singolo problema, ma tutti quelli di una determinata classe. Definizione delle specifiche concettuali, tecnologiche e ambientali Le specifiche sono la descrizione delle scelte sulle decisioni da prendere nella soluzione di un problema. Al nostro livello di studio, le specifiche sono di tre tipi: - concettuali; Pagina 2 di 13

3 - tecnologiche; - ambientali. Le specifiche concettuali Il termine concettuale o astratto indica tutte le scelte che non dipendono dalla tecnologia e quindi dal software (programmi) e dall hardware (calcolatori). Le specifiche concettuali riguardano quindi la descrizione: - dei dati di ingresso e di uscita (risultati); - delle eventuali operazioni da compiere per passare dai dati di ingresso ai risultati. Nella definizione dei dati di ingresso e di uscita dobbiamo riconoscere, nella formulazione del problema, i dati di ingresso (input) e i risultati (dati di uscita o output) e quindi gli obiettivi che si vogliono ottenere. Per la definizione delle operazioni, osserviamo che un programma svolge la trasformazione dei dati di ingresso per produrre risultati. Il problema può quindi richiedere esplicitamente che il programma finale sia in grado di automatizzare alcune operazioni sui dati di ingresso. Le specifiche tecnologiche Le specifiche tecnologiche riguardano la scelta degli strumenti software e di quelli hardware da utilizzare per automatizzare la soluzione dei problema. Nelle specifiche hardware si deve, ad esempio, definire quale tipo di calcolatore è necessario per la realizzazione del progetto, mentre in quelle software si deve scegliere quale linguaggio di programmazione e relativo programma traduttore impiegare. Nell affrontare un nuovo problema si possono verificare due situazioni, in cui il progettista.: - può scegliere gli strumenti HW/SW con cui realizzare il proprio progetto; - deve utilizzare il calcolatore e i programmi a propria disposizione. Lo stesso progetto può avere realizzazioni diverse sulla base degli strumenti che si hanno a disposizione. Le specifiche ambientali Le specifiche ambientali descrivono le caratteristiche della situazione applicativa in cui il progetto sarà inserito. L analisi di un problema termina quindi con la definizione delle specifiche che ci descrivono le scelte effettuate, che da questo punto in poi diventano gli obiettivi da raggiungere. La fase di progettazione Partendo dalle specifiche, la fase di progettazione ha come obiettivo quello di Pagina 3 di 13

4 determinare la soluzione del problema indipendentemente dagli strumenti HW e SW che impiegheremo in seguito per realizzare il progetto stesso. In questa fase intervengono le specifiche concettuali, mentre le specifiche tecnologiche riguardano la successiva fase di realizzazione. Con il termine progetto possiamo anche utilizzare l aggettivo astratto (o concettuale) per sottolineare come questa fase dell attività di programmazione deve essere indipendente dalla tecnologia. Un progetto astratto è costituito da: 1. il modello dei dati; 2. l algoritmo. Creazione del modello dei dati In luogo del termine modello dei dati si utilizza anche quello di strutture di dati astratte, dove il termine struttura indica, che dobbiamo definire: - l insieme dei dati del problema; - le regole secondo cui i dati dell insieme sono disposti e ordinati tra loro e quindi la loro organizzazione. A livello del progetto, il termine astratto denota che il modello utilizzato è indipendente dalla rappresentazione adottata nel calcolatore. Poiché il modello dei dati deve essere generale, al suo interno devono comparire variabili ovvero contenitori destinati a memorizzare i dati da elaborare. Le variabili nel modello dei dati possono essere: - di ingresso, impiegate per memorizzare i dati di input; - intermedie, ausiliarie o di lavoro, che contengono tutti i dati parziali necessari durante l elaborazione per passare dai dati in ingresso ai risultati; - di uscita, per la presentazione dei risultati finali. Il caso più semplice di modello di dati è quello costituito soltanto dalle variabili che contengono i dati in ingresso i risultati e i dati intermedi necessari per l elaborazione. In molti casi i dati di un problema possono essere numerosi e disposti in modo confuso; lo scopo del modello è quello di organizzare i dati in modo ordinato, fornendo una struttura in modo da agevolare il processo di soluzione. Sviluppo dell algoritmo Lo sviluppo dell algoritmo consiste nella definizione dell insieme dei passi necessari per passare dai dati in ingresso ai risultati. Un algoritmo deve fornire la soluzione di un problema indipendentemente dal linguaggio di programmazione che si utilizzerà per scrivere il programma finale. La fase di realizzazione La fase di realizzazione si suddivide a sua volta nelle seguenti parti: - codifica del progetto cori un linguaggio di programmazione; Pagina 4 di 13

5 - verifica della presenza di errori e loro correzione. La codifica La codifica è la traduzione manuale del modello dei dati e dell algoritmo risolutivo di un problema in un programma sorgente, tramite un linguaggio di programmazione. A tal fine, ogni linguaggio di programmazione mette a disposizione del programmatore alcune istruzioni per tradurre: - il modello dei dati in strutture di dati comprensibili alla macchina; - i passi dell algoritmo in operazioni eseguibili dal computer. La traduzione del modello dei dati e dell algoritmo nel programma finale eseguibile, scritto nel linguaggio naturale del calcolatore (linguaggio macchina binario), è di fatto impossibile da effettuare direttamente. Per agevolare l attività del programmatore, la traduzione del programma sorgente in quello macchina è realizzata in modo automatico da opportuni programmi traduttori (compilatori e interpreti). La figura successiva schematizza il passaggio dal problema al programma sorgente per l elaboratore. Frequentemente, nel passato, il termine codifica è stato impiegato come sinonimo di programmazione (in senso stretto), mentre in realtà indica soltanto una fase dell intera attività della programmazione stessa. Collaudo e correzione degli errori Terminata la codifica, nel progetto e/o nel programma finale possono essere presenti errori. Per verificare la presenza di errori, il progettista-programmatore deve sottoporre al collaudo (testing) il proprio programma finale, definendo un insieme di piani di prova che hanno come obiettivo quello di verificare se il programma realizzato soddisfa tutte le specifiche del problema. Al collaudo, segue il cosiddetto debugging, ovvero la ricerca e la modifica delle parti del progetto e/o del programma dove sono localizzati gli errori. Le singole fasi che intervengono nella soluzione di un problema sono: 1. la fase di analisi descrive che cosa il programma finale dovrà fare; 2. la fase di progetto presenta come deve essere risolto il problema; 3. la fase di realizzazione implementa in modo concreto il progetto della soluzione mediante il programma finale eseguito in un sistema di elaborazione. Pagina 5 di 13

6 Nel seguito utilizzeremo l espressione progettista-programmatore per indicare una figura professionale in grado, di fronte a un nuovo problema, di svolgere le fasi di analisi, progetto e realizzazione mediante la stesura delle specifiche, la creazione del progetto e la sua traduzione nel programma sorgente. Definizione di algoritmo Un algoritmo è un insieme finito di passi non ambigui, eseguibili in modo ordinato da un esecutore, che applicati ai dati di ingresso producono la soluzione di tutti i problemi di una determinata classe. Ogni passo dell algoritmo può essere formato da una oppure più operazioni elementari. I tipi di operazione possono essere diversi e dipendono dall esecutore. Requisiti di un algoritmo Affinché un insieme di operazioni costituisca un algoritmo deve soddisfare i cinque requisiti seguenti: 1. il numero di operazioni svolto nella soluzione deve essere finito e inoltre ogni singola operazione deve essere eseguita in un intervallo di tempo determinato; 2. ogni istruzione deve descrivere in modo preciso e non ambiguo le operazioni da compiere; 3. l algoritmo deve essere deterministico ovvero, a partire dagli stessi dati iniziali, l insieme delle operazioni deve sempre produrre i medesimi risultati; 4. affinché una soluzione sia utile deve essere eseguibile, ovvero deve esistere un esecutore, automatico oppure manuale, in grado di effettuare le operazioni che definiscono l algoritmo; 5. un algoritmo deve essere generale o quindi in grado di risolvere non un singolo problema, ma tutti quelli di una determinata classe. Un algoritmo possiede anche proprietà soggettive (che dipendono dal giudizio delle persone) quali: - la semplicità; - l ordine e la chiarezza; - la documentazione, per cui le azioni svolte per la soluzione del problema devono essere opportunamente descritte, ad esempio, aggiungendo frasi di commento. Questi ultimi requisiti sono presi in considerazione con lo scopo di agevolare la leggibilità, e quindi la comprensione, anche a persone diverse dagli autori. Lo stesso problema può essere risolto mediante algoritmi diversi; vedremo in seguito quali saranno i parametri (la valutare per la scelta della migliore tra te soluzioni trovate. Pagina 6 di 13

7 Rappresentazione degli algoritmi I metodi utilizzati per descrivere i passi di un algoritmo possono essere grafici e informali, ovvero scritti mediante frasi di un linguaggio vicino a quello naturale dell uomo. Metodi grafici I passi dell algoritmo sono rappresentati mediante simboli grafici i quali, associati ad alcune regole di interpretazione rappresentano: - le istruzioni; - il flusso dell elaborazione seguito durante lo svolgimento dell algoritmo. Il metodo grafico più diffuso è quello denominato diagramma di flusso o a blocchi (dall inglese flowchart). Metodi informali: il linguaggio di progetto Una tecnica alternativa ai precedenti metodi grafici consiste nel rappresentare i passi del processo risolutivo di un problema per mezzo di un linguaggio informale, simile a quello che utilizziamo abitualmente, denominato pseudolinguaggio o linguaggio per la progettazione di programmi (o semplicemente linguaggio di progetto), indicato talvolta con le iniziali inglesi PDL (Program Design Languaqe). Si denomina pseudocodice l insieme di frasi, scritte nel linguaggio di progetto, che rappresentano (codificano) le operazioni da compiere nella risoluzione del problema. Ogni operazione è rappresentata mediante una oppure più parole chiave, il cui significato richiama il tipo di operazione codificata. Le parole chiave sono in genere scritte in inglese, a causa della diffusione, a livello intenzionale, di questa lingua nell ambito delle discipline tecniche. Le frasi devono essere definite in modo da soddisfare i requisiti generali degli algoritmi e quindi in modo non ambiguo. Variabili e costanti Le operazioni di un algoritmo agiscono sul modello dei dati le cui componenti sono in generale variabili oppure costanti. Una variabile rappresenta una grandezza il cui valore può cambiare durante l esecuzione dell algoritmo. Il valore di una variabile, per essere utilizzato, è memorizzato in una cella ( contenitore ) di memoria. Per individuare una variabile è conveniente rappresentare l indirizzo mediante un nome o identificatore simbolico. Per migliorare la leggibilità dell algoritmo è conveniente assegnare agli identificatori nomi mnemonici, ovvero che richiamino alla memoria il loro uso. Una costante rappresenta un valore definito che non può cambiare durante tutto lo svolgimento dell algoritmo. Anche il valore di una costante è memorizzato in una cella di memoria, Pagina 7 di 13

8 identificata da un nome simbolico. Per la leggibilità dell algoritmo, dopo aver definito un valore nel modello dei dati, risulta essere sempre conveniente richiamare la costante mediante il suo identificatore. Tipo di dato Un tipo di dato astratto è definito mediante: - un insieme di valori - l elenco degli operatori che agiscono sui dati dell insieme. In tal modo, quando si definisce una variabile di un certo tipo, automaticamente sappiamo quali valori essa può assumere e gli operatori che possiamo applicare. I tipi di dato più semplici sono quelli: Numerici: tipi di dato numerici possono essere a loro volta reali oppure interi, rispettivamente quando l insieme di valori è quello dei numeri reali oppure quello dei numeri interi dotati di segno; Carattere: un elemento (variabile o costante) di questo tipo può assumere come valore un carattere, che può essere una lettera dell alfabeto, minuscola (da a lino a z ) o maiuscola (da A fino a Z ), una cifra decimale (da 0 a 9 ) oppure un valore speciale;il valore assunto da una variabile carattere è posto tra i simboli (doppio apice) oppure (apice) iniziale e finale. logici o booleani: il tipo di dato booleano è definito dalle regole dell algebra di Boole e quindi l insieme dei valori è {TRUE, FALSE), mentre gli operatori sono quelli di somma logica (OR), prodotto logico (AND) e negazione (NOT). Espressioni Una espressione è una combinazione di elementi, quali variabili, costanti e operatori; essa, calcolata secondo determinate regole, rappresenta un singolo valore. Le espressioni possono essere di tipo diverso, a seconda del valore fornito, quali: - algebriche; - logiche oppure booleane (assumono soltanto i valori TRUE oppure FALSE). Nel caso delle espressioni algebriche le regole da applicare sono quelle usuali che utilizziamo abitualmente in matematica, mentre le espressioni logiche sono valutate secondo le regole definite nell algebra di Boole. I valori logici sono utilizzati anche per esprimere i risultati di operazioni di confronto. Operazioni e loro classificazione Le istruzioni (o comandi) codificano le operazioni presenti nell algoritmo. Sulla base del tipo di esecutore considerato, le istruzioni possono essere classificate nei seguenti tipi: 1. dichiarative (o di specificazione); Pagina 8 di 13

9 2. eseguibili, che si dividono ancora in istruzioni di assegnazione (o di assegnamento); di ingresso e di uscita (oppure input/output); di controllo. Le istruzioni di dichiarazione non rappresentano operazioni effettuate dall esecutore, ma hanno la funzione di descrivere alcune caratteristiche dell algoritmo, quali ad esempio l inizio o la fine dell elaborazione oppure l introduzione di commenti. Viceversa, le istruzioni eseguibili individuano operazioni che l esecutore è in grado di effettuare. Le istruzioni di assegnazione permettono di definire il valore di una variabile. Una istruzione di assegnazione si presenta. nella forma: nome_variabile espressione dove il simbolo rappresenta l operatore di assegnazione. L istruzione precedente è eseguita 1. calcolando il valore dell espressione a destra di ; 2. assegnando il risultato ottenuto alla variabile di identificatore nome_variabile. Non si tratta quindi di una uguaglianza intesa nel senso matematico, ma di una sostituzione del contenuto della variabile con il valore calcolato dell espressione; per tale motivo a volte si preferisce utilizzare il simbolo in luogo di quello di uguaglianza. Per effettuare una operazione di assegnazione, la variabile e l espressione devono essere dello stesso tipo. Inoltre ogni variabile e ogni costante del modello dei dati, prima di essere utilizzate nelle elaborazioni, devono essere inizializzate assegnando loro un valore all inizio dell algoritmo oppure almeno prima del loro effettivo utilizzo. Istruzioni di ingresso/uscita L istruzione di ingresso (input) permette di assegnare alle variabili di ingresso i dati di input del problema mentre l istruzione di uscita (output) presenta il valore delle variabili che contengono i risultati ottenuti nell elaborazione. E importante osservare come un coniando di input è una forma particolare di assegnazione tramite una unità di input. Istruzioni dì controllo Fino a ora, le istruzioni di un algoritmo sono state eseguite nell ordine in cui sono scritte mediante il linguaggio di progetto oppure seguendo la direzione indicata dalle frecce nel diagramma di flusso. Le istruzioni di controllo consentono invece di variare l ordine di esecuzione (lei passi di un algoritmo, generalmente sulla base del valore assunto da alcune espressioni logiche. La più semplice istruzione di controllo à quella denominata di salto (o di trasferimento) che trasferisce l esecuzione delle operazioni da un punto all altro dell algoritmo. Le istruzioni di salto possono essere: Pagina 9 di 13

10 - incondizionato; - condizionale. L istruzione di salto incondizionato GO TO etichetta etichetta: istruzione (GO TO in inglese significa vai a ) trasferisce l esecuzione al passo dell algoritmo individuato dal valore contenuto in etichetta. L istruzione di salto condizionato: IF condizione GO TO etichetta trasferisce l esecuzione al passo individuato da etichetta, soltanto se il valore dell espressione logica condizione è TRUE; viceversa, se FALSE, il flusso dell elaborazione prosegue con l istruzione posta dopo GO TO. L uso delle istruzioni di salto negli algoritmi è sconsigliato perché, in generale, il loro uso rende difficile la lettura e l interpretazione del processo risolutivo. Nel seguito studieremo come è possibile costruire algoritmi utilizzando altri tipi di istruzioni di controllo senza fare uso di quelle di salto. Strutture fondamentali di programmazione Per uniformare lo stile di scrittura di un algoritmo, negli anni 60 del secolo scorso nacque l idea della programmazione strutturata alla cui base c è la possibilità di scrivere qualsiasi algoritmo impiegando soltanto poche strutture di controllo. Veniva inoltre anche sconsigliato l uso delle istruzioni di salto, la cui presenza, comportando continui riferimenti a diverse parti del processo di calcolo, rende un programma illeggibile. La costruzione di un processo di calcolo mediante poche strutture permette: - di scrivere algoritmi comprensibili a più persone; - di realizzare linguaggi di programmazione più semplici, dovendo tradurre un limitato insieme di strutture di controllo, e quindi ottenere anche programmi sorgenti più leggibili. Le strutture fondamentali (o di base) per la costruzione di algoritmi sono: 1. la sequenza di istruzioni (o blocco di elaborazione); 2. la struttura di selezione (condizionale odi decisione); 3. la struttura iterativa. Sequenza di istruzioni Una sequenza di istruzioni (o blocco di elaborazione) è formata: - da un singolo comando (caso più semplice); - da un insieme di istruzioni che l esecutore effettua in modo sequenziale, ovvero una dopo l altra e senza interruzioni. Un blocco di elaborazione è rappresentato nei diagrammi di flusso con un Pagina 10 di 13

11 rettangolo, mentre nel linguaggio di progetto si utilizzano le parole chiave BEGIN e END, rispettivamente per individuare l inizio e la fine della sequenza. Struttura di Selezione In tutti gli algoritmi esaminati in precedenza, il flusso dell elaborazione avveniva sempre in un ben preciso verso. Viceversa, in molti problemi, si devono applicare calcoli diversi seconda del valore assunto da alcune condizioni logiche. A tal fine, dobbiamo introdurre negli algoritmi nuove istruzioni di controllo che permettono di effettuare elaborazioni di tipo diverso sulla base dei valori (TRUE o FALSE) assunti da una condizione booleana. La Struttura di Selezione, detta anche condizionale o di decisione, è composta dai seguenti elementi: - una condizione rappresentata da una espressione logica; - uno oppure due blocchi di elaborazione indicati, ad esempio, con A e B. La struttura di selezione può essere: - binaria, se (IF) il valore dell espressione logica è vero allora (THEN) viene eseguito il blocco di elaborazione A, altrimenti (ELSE) è effettuata la sequenza di istruzioni B; - semplice, quando compare un solo blocco di elaborazione, per cui se (IF) la condizione è verificata viene eseguita la sequenza, viceversa l elaborazione prosegue dalla prima istruzione posta dopo la struttura condizionale. False condizione True False condizione True Blocco elaborazione A Blocco elaborazione B Blocco elaborazione A Selezione multipla Se nella soluzione di un problema si devono operare più di due scelte, sempre sulla base dei valori assunti da alcune condizioni, si utilizzano strutture IF THEN ELSE poste all interno di altre strutture condizionali. Strutture iterative Una iterazione o ciclo (in inglese loop) definisce una sequenza di istruzioni che viene ripetuta: - un numero di volte variabile sulla base del valore di una condizione nei cicli non calcolati o indefiniti; - un numero definito a priori, nelle iterazioni calcolate o definite. Pagina 11 di 13

12 Iterazioni non calcolate La struttura iterativa è composta dai seguenti elementi: - un blocco di elaborazione, denominato nucleo, corpo o campo del cielo, che individua le operazioni da ripetere; - una condizione, rappresentata da una espressione logica, che determina 11 termine dell iterazione. Affinché le istruzioni non siano ripetute un numero infinito di volte (loop infinito), nel blocco di elaborazione deve sempre essere posta una istruzione che modifichi la condizione del ciclo. Le strutture iterative non calcolate possono essere di due tipi: 1. del tipo WHILE, in cui fino a quando (while) una condizione rimane vera viene (DO) ripetuto il blocco di elaborazione; 2. del tipo REPEAT, dove si ripete (repeat) la sequenza di istruzioni del nucleo finché (UNTIL) una condizione non diventa vera (e quindi rimane falsa). Il termine indefinito, per queste strutture, indica che non si conosce a priori il numero di volte in cui verrà eseguito il ciclo, ma quest ultimo dipende dal valore dei dati di ingresso al loop. Nel caso della struttura WHILE...DO,.., si devono inserire le parole chiave BEGIN...END per delimitare il blocco di elaborazione, mentre nel secondo caso le parole chiave REPEAT e UNTIL permettono di delimitare automaticamente la sequenza delle istruzioni del nucleo del ciclo. Negli algoritmi, le strutture precedenti sono rappresentate nel modo seguente. sequenza istruzioni condizione True False condizione True False sequenza istruzioni La differenza tra le due strutture è quella che, nel caso del ciclo WHILE, le istruzioni del ciclo possono anche non essere mai eseguite, se la condizione è subito falsa (FALSE). Viceversa il corpo del ciclo in REPEAT è sempre calcolato almeno una volta, qualsiasi sia il valore iniziale assunto dalla condizione logica. Iterazioni calcolate Nelle iterazioni calcolate (o definite) il progettista predispone il ciclo in modo che sia eseguito un numero di volte definito a priori. Un loop definito è composto dai seguenti elementi: - un blocco di elaborazione, che rappresenta il nucleo del ciclo; - una variabile di controllo, denominata indice (o contatore) dei ciclo; Pagina 12 di 13

13 - tre variabili, oppure espressioni, i cui valori rappresentano rispettivamente il valore iniziale, l incremento e il valore finale dell indice. Nei cicli calcolati, se il segno dell incremento: - è positivo, l indice è incrementato da un valore iniziale a uno finale (maggiore di quello di partenza); - è negativo, l indice è decrementato da un valore iniziale a uno finale (minore di quello di partenza). Teorema di Böhm-Jacopini Il teorema di Böhm-Jacopini afferma che un qualsiasi algoritmo può essere sempre costruito in modo equivalente utilizzando soltanto le tre strutture di programmazione: sequenza di istruzioni; struttura di selezione; struttura iterativa. Nel teorema si impiega il termine equivalente intendendo che due algoritmi sono equivalenti se, applicando ai due processi di elaborazione gli stessi dati di ingresso, si ottengono sempre i medesimi risultati. Nello sviluppo degli algoritmi, l uso esclusivo delle tre strutture del teorema di Böhm-Jacopini consente di scrivere processi di calcolo leggibili e uniformare gli stili di scrittura tra progettisti con esperienze professionali diverse. Anche la successiva fase di codifica dell algoritmo in un programma sorgente risulta facilitata, perché è sufficiente tradurre le strutture di base mediante le istruzioni di controllo messe a disposizione dal linguaggio di programmazione scelto. Un diagramma di flusso strutturato è formato da un insieme delle seguenti tre strutture di base: - Sequenza di istruzioni; - Struttura di selezione; - Struttura iterativa. Pagina 13 di 13

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

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

Caratteristiche di un calcolatore elettronico

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

Dettagli

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

CAPITOLO 3 - ALGORITMI E CODIFICA

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

Dettagli

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

Sviluppo di programmi

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

Dettagli

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione

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

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

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

APPUNTI DI INFORMATICA

APPUNTI DI INFORMATICA Definizione Informatica APPUNTI DI INFORMATICA Si definisce l informatica come la scienza della rappresentazione e dell elaborazione dell informazione. Questa impostazione consente di mettere in evidenza

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

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

Dettagli

Analisi strutturata 1

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

Dettagli

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

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

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

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo Sviluppo di programmi Per la costruzione di un programma

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

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

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

Dettagli

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

Unità di apprendimento 6. Dal problema al programma

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

Dettagli

Unità di apprendimento 6. Dal problema al programma

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

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

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

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

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Università degli Studi di Brescia Elementi di Informatica e Programmazione Concetto di Algoritmo Docente: Marco Sechi E mail: marco.sechi@unibs.it Vers. 21/08/2016.A050917* Dipartimento di Ingegneria Meccanica

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

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 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

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

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

Flow-chart. Introduzione agli algoritmi e ai diagrammi a blocchi.

Flow-chart. Introduzione agli algoritmi e ai diagrammi a blocchi. Flow-chart Introduzione agli algoritmi e ai diagrammi a blocchi ugo.rinaldi@gmail.com 1 Sommario Fasi dello sviluppo di un programma Algoritmo Dati: Variabili e Costanti Le operazioni tipiche Diagramma

Dettagli

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE 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

Dettagli

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

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

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

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

Dettagli

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

Università degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale

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

Dettagli

Come scrivere bene codice? (1 di 1)

Come scrivere bene codice? (1 di 1) DIAGRMMI DI FLUSSO Come scrivere bene codice? (1 di 1) Prima di iniziare a scrivere un programma: Acquisire profonda comprensione del problema; Progettare un approccio per la risoluzione del problema.

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

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota Corso di Problemi ed algoritmi Ing Pasquale Rota Argomenti Problemi ed algoritmi Proprietà degli algoritmi Pseucodice Diagrammi di flusso Problemi ed algoritmi - Ing. Pasquale Rota 2 Proprietà degli algoritmi

Dettagli

Introduzione alla programmazione strutturata

Introduzione alla programmazione strutturata FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio

Dettagli

Sistemi di Elaborazione delle Informazioni

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

Dettagli

Algoritmi e soluzione di problemi

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

Dettagli

ALGORITMI E SOLUZIONI DI PROBLEMI

ALGORITMI E SOLUZIONI DI PROBLEMI ALGORITMI E SOLUZIONI DI PROBLEMI Il computer è una macchina complessa in grado di eseguire milioni di istruzioni al secondo, dotato di una memoria capace di contenere enormi quantità di dati, siano essi

Dettagli

Introduzione agli Algoritmi

Introduzione agli Algoritmi Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione

Dettagli

Diagrammi a blocchi 1

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

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Problema Algoritmo Programma Progettista Programmatore Progetto Programma Esecutore Computer Comittente Utente Dal problema all algoritmo Problema Risolutore ed esecutore Algoritmo

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

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

La formalizzazione dell informazione: Dati e Diagrammi di Flusso La formalizzazione dell informazione: Dati e Diagrammi di Flusso Codifica degli algoritmi Algoritmo formulato per essere comunicato tra esseri umani chiaro, sintetico e intuitivo codificato in linguaggi

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

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

Dettagli

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

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

Dettagli

INFORmazione+autoMATICA. Perché saperne di piu? Le fasi della programmazione. Cosa intendiamo per programmazione

INFORmazione+autoMATICA. Perché saperne di piu? Le fasi della programmazione. Cosa intendiamo per programmazione INFORmazione+autoMATICA Perché saperne di piu? Calcolatore: un supporto per la rappresentazione di informazione che può: I raccogliere impressionanti quantità di dati I eseguire velocemente e con precisione

Dettagli

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi 1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni La formalizzazione

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

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo

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

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

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

Dettagli

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

L uomo come esecutore di algoritmi

L uomo come esecutore di algoritmi L uomo come esecutore di algoritmi l L algoritmo è l insieme di azioni elementari che consentono di risolvere un problema trasformando i dati iniziali del problema stesso nel risultato. l Un algoritmo

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 13 - Gli algoritmi e la risoluzione di problemi Sommario Passi per la risoluzione di problemi Problemi di ricerca e ordinamento Algoritmi iterativi: la ricerca lineare

Dettagli

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

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

Dettagli

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 di base dell ICT

Concetti di base dell ICT Informatica Linguaggio di programmazione Computer Bit Algoritmo Linguaggio macchina Informatica: Informazione automatica Gli anglosassoni usano il termine Computer Science = Scienza dei Calcolatori Computer:

Dettagli

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

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

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione E una notazione con cui e possibile descrivere gli algoritmi. Programma: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 3 Analisi dettagliata di un programma /* commento */ Possono estendersi su più linee apparire in qualsiasi parte del programma. Alternativamente

Dettagli

STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER

STRUTTURA 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

Dettagli

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

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano

Dettagli

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

MODULO 07. La soluzione dei problemi mediante gli algoritmi

MODULO 07. La soluzione dei problemi mediante gli algoritmi MODULO 07 La soluzione dei problemi mediante gli algoritmi MODULO 07 Unità didattica 02 Impariamo a fare i diagrammi a blocchi In questa lezione impareremo: come descrivere l algoritmo risolutivo utilizzando

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

Unità Didattica 2 I Linguaggi di Programmazione

Unità Didattica 2 I Linguaggi di Programmazione Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche

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

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

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

unità didattica 3 Le strutture condizionali e le strutture iterative

unità didattica 3 Le strutture condizionali e le strutture iterative unità didattica 3 Le strutture condizionali e le strutture iterative 1. La struttura condizionale Il Pascal prevede la codifica della struttura condizionale (indicata anche con il nome di struttura dell

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

Fondamenti di Informatica A. A. 2018/19

Fondamenti di Informatica A. A. 2018/19 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2018/19 AlgoBuild: Strutture Iterative e Selettive OUTLINE Blocco condizionale (Struttura selettiva IF - IF/ELSE) Esempi Cicli a condizione iniziale

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Si descrive un algoritmo cercando di sintetizzare il più possibile la sua sequenza di passi; Non si utilizza un linguaggio di programmazione specifico, ma è meglio utilizzare

Dettagli

ITI M. FARADAY. Programmazione a. s

ITI M. FARADAY. Programmazione a. s ITI M. FARADAY Programmazione a. s. 2018-2019 Disciplina: INFORMATICA Indirizzo: INFORMATICA E TELECOMUNICAZIONI Classi: Terza A Terza B Ore settimanali previste: 6 (3 ora Teoria - 3 ore Laboratorio) Docenti:

Dettagli

Computer. Capitolo 2. 05/04/2012 continuazione 1

Computer. Capitolo 2. 05/04/2012 continuazione 1 Computer Capitolo 2 05/04/2012 continuazione 1 Le prestazioni del computer Velocità delle cpu, ossia numero d istruzioni eseguite nell unità di tempo; Dimensione delle RAM; Capacità e velocità in scrittura/

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

Elementi di programmazione

Elementi di programmazione Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università

Dettagli

Ing. Lorenzo Vismara

Ing. Lorenzo Vismara Ing. Lorenzo Vismara ! "# #!$#%&# '(!)&!*)&#*$# +!, +$-.(( #!((%&#, #!& %&) /$#01&&#2! 0#( 3452 $ 6#( 1 2 &## #!7 #89): #;##( 1? )#&)< $9): #@82 #)AA)#&#&$( #7)&#7& @B && ##@A&#C 7 $C#&7 @B A&#)@#7&#

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

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

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

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

Dettagli

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

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

Dettagli

I Linguaggi di Programmazione

I Linguaggi di Programmazione I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Dettagli

Laboratorio di Informatica. Introduzione

Laboratorio di Informatica. Introduzione Introduzione 1 Informatica: definizione Informatica: disciplina che cerca di dare un fondamento scientifico ad argomenti come la progettazione di computer, la programmazione, l elaborazione delle informazioni,

Dettagli

ALGORITMI: PROPRIETÀ FONDAMENTALI

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

Dettagli

Introduzione all informatica

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

Dettagli

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

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

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI IF Ogni linguaggio di programmazione presenta almeno una struttura di controllo decisionale. La sintassi del linguaggio C è la seguente. if ()

Dettagli