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

Documenti analoghi
LA METAFORA DELL UFFICIO

LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO

LA METAFORA DELL UFFICIO

Introduzione agli algoritmi

Problemi, algoritmi, calcolatore

Il concetto di calcolatore e di algoritmo

L ELABORATORE ELETTRONICO!

L ELABORATORE ELETTRONICO

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

PROGRAMMAZIONE (Corso A)

Elaboratore Elettronico

Introduzione alla programmazione

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

Esempio: Problema 2 Il Progetto degli Algoritmi (Il linguaggio degli schemi a blocchi: seconda parte)

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Unità di apprendimento 6. Dal problema al programma

Algoritmi e soluzione di problemi

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

Introduzione agli Algoritmi

DISPENSE DI PROGRAMMAZIONE

Sviluppo di programmi

MODULO 07. La soluzione dei problemi mediante gli algoritmi

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

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

Corso di Informatica di Base

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Diagrammi a blocchi 1

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

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

Laboratorio di Programmazione

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

Rappresentazione con i diagrammi di flusso (Flow - chart)

Diagrammi a blocchi 1

PROGRAMMAZIONE STRUTTURATA

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

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

1 Esercizi in pseudocodice

Formalismi per la descrizione di algoritmi

Cosa è l Informatica?

Dispensa di Informatica II.1

Algoritmi. Pagina 1 di 5

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

generalità concetti di base

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

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

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

La rappresentazione dell algoritmo Diagrammi di flusso

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

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Informatica. Come si risolve un problema?

Cos è la programmazione?

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

LABORATORIO DI INFORMATICA

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Calcolo numerico e programmazione Risoluzione di problemi

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

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

IL TEOREMA DI BOEHM-JACOPINI

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

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

Algoritmi e Programmi

Analisi e Programmazione

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

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop

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

ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico

Programmazione strutturata

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

INFORMATICA. Strutture iterative

AUTOMA A STATI FINITI

Rappresentazione degli algoritmi

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

Algoritmi e diagrammi di flusso

Unità di apprendimento 6. Dal problema al programma

Lezione 5. La macchina universale

Algoritmi e Diagrammi di flusso

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

Algoritmi e Linguaggi

Cosa si intende con stato

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

Fabrizio Messina, Marzio Pennisi

Progettazione di Algoritmi

Algoritmi e diagrammi di flusso versione biennio

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

2. Algoritmi e Programmi

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

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI) DIPARTIMENTO: Informatica

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

Programmazione. Informatica. Risoluzione dei Problemi

Come ragiona il computer. Problemi e algoritmi

Fondamenti VBA. Che cos è VBA

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

Modulo 1 Concetti di base della Tecnologia dell Informazione

Transcript:

LA METAORA DELL UICIO LAAGNA DI LAORO Lavagna di lavoro Lavagna di programma Sportello utenti Capo Ufficio Impiegato Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome distinto, e valore il loro eventuale contenuto SPORTELLO UTENTE LAAGNA DI PROGRAMMA Modulo IN: modulo di ricezione di dati dall utente. Certificato OUT: certificato per la comunicazione di risultati all utente. Sia il modulo sia il certificato sono organizzati in posizioni (per un totale rispettivamente MIN e MOUT) di N caselle come la lavagna di lavoro, ma non hanno cornice, in quanto si suppone che le loro posizioni abbiano nomi standard IN-i e OUTj, con i compreso tra 1 e MIN e j compreso tra 1 e MOUT. Su questa lavagna viene descritto, secondo un opportuna modalità che vedremo, il compito che l impiegato deve svolgere, in base a una serie di attività elementari che egli è in grado di eseguire. Il compito viene descritto sulla lavagna da un direttore dell ufficio. Un segnalino magnetico, a forma di freccia, da posizionare sulla lavagna magnetica in corrispondenza dell attività elementare che l impiegato sta per svolgere. 1

ATTIITA ELEMENTARI DELL IMPIEGATO Istruzione di assegnamento: nome valore nome2 nome1 Istruzione di lettura: nome ( LEGGI IN-i ) nome2 ( LEGGI nome1 ) Istruzione di scrittura: ( SCRII OUT-i ) nome ( SCRII nome2 ) nome1 Operazioni aritmetiche e logiche: nome op1 + op 2 (oppure -, x, /) op1 > op2 (oppure <, =) vera se il valore di op1 è maggiore (minore, uguale) del valore di op2 ORGANIZZAZIONE DELLE ATTIITA : DIAGRAMMI DI LUSSO iene descritta dal direttore sulla lavagna di programma utilizzando i diagrammi di flusso. Un diagramma di flusso è una struttura costituita da blocchi connessi da frecce (più formalmente, sono grafi costituiti da nodi e archi orientati che collegano coppie di nodi). Esistono quattro tipi di blocchi: un blocco di inizio, che indica l inizio del programma; è unico in un programma, e può presentare un solo arco uscente e nessuno entrante; un blocco di fine, che denota la fine del programma e quindi non avrà archi uscenti, ma solo uno o più archi entranti; possono essercene più d uno; blocchi funzionali, che contengono un istruzione elementare di tipo aritmetico, di assegnamento, di lettura e scrittura, rappresentata come descritto nel paragrafo precedente; possono avere più archi entranti, ma solo uno uscente; blocchi decisionali: possono contenere una logica che assume i valori vero () oppure falso (); possono avere più archi entranti, e da esso ne escono due, uno denotato con, e l altro con. TIPI DI BLOCCHI ESEMPIO DI DIAGRAMMA DI LUSSO Blocco di inizio Inizio Istruzione elementare Blocco decisionale Calcolo di base esp Start base (LEGGI IN-1) esp (LEGGI IN-2) Blocco funzionale val 1 ine Blocco di fine Condizione esp esp - 1 val val x base NO esp = 0 SI (SCRII OUT-1) val Exit 2

ESEMPIO DI ATTIITA PROBLEMI, ISTANZE Lavagna di lavoro b a s e 4 e s p 21 03 v a l 61 641 Modulo IN esp esp - 1 Modulo OUT 6 4 3 val val x base 4 Lavagna di programma Start base (LEGGI IN-1) esp (LEGGI IN-2) NO val 1 esp = 0 SI (SCRII OUT-1) val Exit Un problema è un insieme di domande omogenee. Esempio: calcolare la radice quadrata intera di un numero naturale. Per descrivere un problema in modo più preciso si possono evidenziare questi punti usando il concetto di variabile: il problema precedente potrebbe essere formulata con Calcolare la radice quadrata intera di un numero naturale X. Un istanza di un problema è uno specifico esemplare della classe di domande omogenee cioe una specifica domanda. Esempio: calcolare la radice quadrata intera di 27. Un istanza deve specificare il valore delle variabili. La soluzione di un istanza di un problema è la risposta a una domanda. ALGORITMO, LINGUAGGI DI PROGRAMMAZIONE PPROGRAMMI PROPRIETA DI UN ALGORITMO Un algoritmo è un procedimento che permette di rispondere a tutte le istanze di un certo problema. Essendo l algoritmo un concetto astratto, non può essere comunicato dal direttore all ufficio senza un passo di rappresentazione. Il diagramma di flusso è quindi la rappresentazione dell algoritmo in un certo formalismo. Il diagramma di flusso è quindi la rappresentazione dell algoritmo in un certo formalismo. La rappresentazione è detta programma e il formalismo linguaggio di programmazione. Un calcolatore è quindi un esecutore universale di algoritmi: può eseguire qualsiasi algoritmo gli venga fornito, purché rappresentato nel formalismo (programma) che il calcolatore sa comprendere. inito: Un algoritmo deve essere composto da un numero finito di istruzioni. Non ambiguo: ogni istruzione deve essere non ambigua, interpretabile in un unico modo. Inoltre anche il modo di combinare le istruzioni deve essere non ambiguo. Deterministico: con uguali dati di ingresso e a parita di condizioni di partenza, deve produrre gli stessi risultati. 3

Risoluzione di un problema Come affrontare un problema MCD(132,24) 132,24 Istanza Dati di input Esigenze Utente Problema Algoritmo Programma Calcolatore Analisi MCD(N,M) Progettazione ALGORITMO DI EUCLIDE main() { } Programmazione Esecuzione Risultati 12 Analisi Dall esigenze dell utente e dai dati di ingresso, capire cosa ci si aspetta per la soluzione del problema (dati di uscita). Progettazione Scomporre il problema in sottoproblemi piu semplici fino a giungere ad operazioni elementari (programmazione top-down). Trovare l algoritmo risolvente. Programmazione Convertire l algoritmo nel linguaggio di programmazione scelto. Esecuzione Con i dati di ingresso, verificare il buon funzionamento del programma Errori Errori di analisi Sono dovuti all errata interpretazione delle esigenze dell utente. Normalmente comportano il rifacimento dell intero processo Errori di progettazione Portano all errata scrittura dell algoritmo. Normalmente si rivelano all esecuzione di istanze particolari e sono molto difficili da individuare Errori di programmazione Dovuti ad una errata implementazione dell algoritmo. Statici: errata scrittura del programma (di sintassi e/o grammaticali) Dinamici: si manifestano solo all esecuzione del programma Errori di esecuzione Molto rari, talvolta dovuti a malfunzionamendi hardware/software del calcolatore Test e Debugging Test Al fine di evidenziare possibili errori di progettazione o di programmazione (errata interpretazione dell algoritmo o dinamici) normalmente si prevede una fase di test (o verifica) del programma stesso. In questa fase si controllano che i risultati ottenuti siano validi per istanze particolari del mio problema (diversi valori iniziali, dati di ingresso particolari, ecc.). Se l algoritmo dara risultati corretti per queste particolari istanze, potremmo ragionevolmente pensare che esso dia risultati corretti per ogni istanza del problema. Debugging (dall inglese spulciare ) Se i risultati ottenuti nella fase di verifica evidenziano errori, si dovra effettuare il debugging del programma. Con questa operazione si intende la verifica passo-passo del programma scritto al fine di individuare i possibili errori fatti. 4

DIAGRAMMI DI LUSSO STRUTTURATI (DS) Strutture base Un diagramma di flusso strutturato (DS) è un Diagramma di lusso (D) composto con apposita regola in cui il BSG (Blocco Strutturato Generico) può essere a sua volta una struttura di controllo o un blocco funzionale semplice, e ha un solo arco in ingresso ed uscita. Quando la programmazione fa uso sistematico di queste strutture, si parla di programmazione struttutata. DS SEQUENZA DS DS DS START DS STOP ITERAZIONE CON CONTROLLO INIZIALE ITERAZIONE CON CONTROLLO INALE SELEZIONE Le strutture di controllo sono a loro volta costituite da tre possibili costrutti: Sequenza Selezione (doppia o semplice) Iterazione DS DS Es: struttura di sequenza Es: struttura di selezione Inizio Istruzione1 Istruzione2 ine Istruzione1 Istruzione2 Pseudocodifica: Selezione doppia SE ALLORA Istruzione1 ALTRIMENTI Istruzione2 Pseudocodifica: Inizio Istruzione1; Istruzione2; ine Istruzione1 Selezione semplice SE ALLORA Istruzione1 5

Es: struttura di iterazione Alcune strutture derivate Corpo iterazione Pseudocodifica: Ciclo di while MENTRE ESEGUI Corpo iterazione* SELEZIONE MULTIPLA switch 1 2 3 altri Corpo iterazione Ciclo di repeat RIPETI Corpo iterazione* INCHE *NB: il corpo dell iterazione deve modificare la del blocco decisionale P1 P2 P3 errore NEL CASO CHE switch ALGA 1: ESEGUI P1; 2: ESEGUI P2; 3: ESEGUI P3; ALTRIMENTI: ESEGUI errore Alcune strutture derivate EQUIALENZA RA D CICLO CON CONTATORE OR cont = N1 TO N2, incr P2 Equivalenza debole: due diagrammi di flusso X e Y si dicono debolmente equivalenti se e solo se, per ogni possibile dato d ingresso, le funzioni da essi computate assumono lo stesso valore o sono indefinite. Equivalenza forte: due diagrammi di flusso X e Y si dicono fortemente equivalenti se e solo se, per ogni possibile dato d ingresso, le sequenze di computazione generate sono uguali. Teorema di Böhm-Jacopini Per ogni diagramma di flusso esiste un diagramma di flusso strutturato debolmente equivalente. P1 PER cont CHE A DAL ALORE N1 A N2 INCREMENTANDO DI incr 1: ESEGUI P1; Ciò significa che con i DS possiamo computare tutte le funzioni computabili, ma abbiamo perso in potenza espressiva, non potendo più realizzare qualsiasi algoritmo. Infatti: non per tutti i D esiste un DS fortemente equivalente. La soluzione è costituita da un linguaggio di diagrammi di flusso, chiamato DB (Diagrammi di lusso Ben ormati). Teorema di Peterson-Kasami-Tokura Per ogni diagramma di flusso esiste un diagramma di flusso ben formato fortemente equivalente 6