LA METAFORA DELL UFFICIO

Documenti analoghi
LA METAFORA DELL UFFICIO

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

Introduzione agli algoritmi

LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO

Problemi, algoritmi, calcolatore

Il concetto di calcolatore e di algoritmo

PROGRAMMAZIONE (Corso A)

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

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

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Elaboratore Elettronico

Introduzione alla programmazione

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

Unità di apprendimento 6. Dal problema al programma

Algoritmi e soluzione di problemi

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

Diagrammi a blocchi 1

MODULO 07. La soluzione dei problemi mediante gli algoritmi

DISPENSE DI PROGRAMMAZIONE

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

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

Sviluppo di programmi

Formalismi per la descrizione di algoritmi

1 Esercizi in pseudocodice

Diagrammi a blocchi 1

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

Laboratorio di Programmazione

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

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

Dispensa di Informatica II.1

PROGRAMMAZIONE STRUTTURATA

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

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

Algoritmi. Pagina 1 di 5

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

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

Rappresentazione con i diagrammi di flusso (Flow - chart)

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

Cos è la programmazione?

La rappresentazione dell algoritmo Diagrammi di flusso

INFORMATICA. Strutture iterative

Informatica. Come si risolve un problema?

Programmazione strutturata

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

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

LABORATORIO DI INFORMATICA

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

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

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

Progettazione di Algoritmi

Cosa è l Informatica?

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

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Descrizione di un algoritmo

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

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

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

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

Calcolo numerico e programmazione Risoluzione di problemi

Algoritmi e Diagrammi di flusso

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

Analisi e Programmazione

Algoritmi e Programmi

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

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

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

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Rappresentazione degli algoritmi

Algoritmi e Linguaggi

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

AUTOMA A STATI FINITI

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

Progettazione di Algoritmi

Teoria dell Informazione

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

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

Cosa si intende con stato

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

= < < < < < Matematica 1

Algoritmi e diagrammi di flusso versione biennio

Strutture dati e loro organizzazione. Gabriella Trucco

Algoritmi e diagrammi di flusso

2. Algoritmi e Programmi

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

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

Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a.

Fondamenti di Algoritmi

Come ragiona il computer. Problemi e algoritmi

Modulo 1 Concetti di base della Tecnologia dell Informazione

Fasi della programmazione. Gabriella Trucco

Rappresentazione degli algoritmi

Fondamenti di Informatica

Analisi e programmazione 1

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

Informatica Generale 1 - Esercitazioni Flowgraph, algebra di Boole e calcolo binario

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

Transcript:

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 distinto, e valore il loro eventuale contenuto

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

LAVAGNA DI PROGRAMMA 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.

ATTIVITA ELEMENTARI DELL IMPIEGATO Istruzione di assegnamento: nome valore nome2 nome1 Istruzione di lettura: nome ( LEGGI IN-i ) nome2 ( LEGGI nome1 ) Istruzione di scrittura: ( SCRIVI OUT-i ) nome ( SCRIVI 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 ATTIVITA : DIAGRAMMI DI FLUSSO Viene 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 condizione logica che assume i valori vero (V) oppure falso (F); possono avere più archi entranti, e da esso ne escono due, uno denotato con V, e l altro con F.

TIPI DI BLOCCHI Blocco di inizio Inizio Istruzione elementare Blocco decisionale Blocco funzionale Fine V Condizione F Blocco di fine

ESEMPIO DI DIAGRAMMA DI FLUSSO Start Calcolo di base esp base (LEGGI IN-1) esp (LEGGI IN-2) val 1 esp esp - 1 val val x base NO esp = 0 SI (SCRIVI OUT-1) val Exit

ESEMPIO DI ATTIVITA Modulo IN Lavagna di lavoro b a s e 4 4 3 Lavagna di programma e v s a p l 21 03 61 641 Start base (LEGGI IN-1) esp (LEGGI IN-2) val 1 esp esp - 1 val val x base NO esp = 0 SI (SCRIVI OUT-1) val Modulo OUT Exit 6 4

PROBLEMI, ISTANZE 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 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.

PROPRIETA DI UN ALGORITMO Finito: 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.

Risoluzione di un problema Esigenze Utente Analisi Problema MCD(N,M) Progettazione MCD(132,24) Istanza Algoritmo ALGORITMO DI EUCLIDE Programmazione 132,24 Dati di input Programma main() { } Esecuzione Calcolatore Risultati 12

Come affrontare un problema 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

DIAGRAMMI DI FLUSSO STRUTTURATI (DFS) Un diagramma di flusso strutturato (DFS) è un Diagramma di Flusso (DF) 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 entrante. Quando la programmazione fa uso sistematico di queste strutture, si parla di programmazione struttutata. START DFS STOP Le strutture di controllo sono a loro volta costituite da tre possibili costrutti: Sequenza Selezione (doppia o semplice) Iterazione

Strutture base SEQUENZA F condizione V DFS DFS DFS DFS ITERAZIONE CON CONTROLLO INIZIALE ITERAZIONE CON CONTROLLO FINALE SELEZIONE condizione V F DFS DFS V condizione F

Es: struttura di sequenza Inizio Istruzione1 Istruzione2 Fine Pseudocodifica: Inizio Istruzione1; Istruzione2; Fine

Es: struttura di selezione Pseudocodifica: V condizione F Selezione doppia SE condizione Istruzione1 Istruzione2 ALLORA Istruzione1 ALTRIMENTI Istruzione2 V condizione F Selezione semplice SE condizione Istruzione1 ALLORA Istruzione1

Es: struttura di iterazione condizione V Corpo iterazione F Pseudocodifica: Ciclo di while MENTRE condizione ESEGUI Corpo iterazione* V Corpo iterazione condizione F Ciclo di repeat RIPETI Corpo iterazione* FINCHE condizione *NB: il corpo dell iterazione deve modificare la condizione del blocco decisionale

Alcune strutture derivate SELEZIONE MULTIPLA switch 1 2 3 altri P1 P2 P3 errore NEL CASO CHE switch VALGA 1: ESEGUI P1; 2: ESEGUI P2; 3: ESEGUI P3; ALTRIMENTI: ESEGUI errore

Alcune strutture derivate CICLO CON CONTATORE FOR cont = N1 TO N2, incr P2 P1 PER cont CHE VA DAL VALORE N1 A N2 INCREMENTANDO DI incr 1: ESEGUI P1;

EQUIVALENZA FRA DF 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. Ciò significa che con i DFS possiamo computare tutte le funzioni computabili, ma abbiamo perso in potenza espressiva, non potendo più realizzare qualsiasi algoritmo. Infatti: non per tutti i DF esiste un DFS fortemente equivalente. La soluzione è costituita da un linguaggio di diagrammi di flusso, chiamato DFBF (Diagrammi di Flusso Ben Formati). Teorema di Peterson-Kasami-Tokura Per ogni diagramma di flusso esiste un diagramma di flusso ben formato fortemente equivalente