Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Algoritmi - La metafora dell'ufficio , Appunti di Elementi di Informatica

Appunti di Informatica

Tipologia: Appunti

2011/2012

Caricato il 06/11/2012

monika23
monika23 🇮🇹

3.9

(7)

14 documenti

1 / 24

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Prof. Paolo Michelini
LA METAFORA DELL’UFFICIO
Lavagna di lavoro
Capo Ufficio
Lavagna di programma
Impiegato
Sportello utenti
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18

Anteprima parziale del testo

Scarica Algoritmi - La metafora dell'ufficio e più Appunti in PDF di Elementi di Informatica solo su Docsity!

LA METAFORA DELL’UFFICIO

Lavagna di lavoro

Capo Ufficio Lavagna di programma

Impiegato

Sportello utenti

LAVAGNA DI LAVORO

„^

Chiamiamo

variabili le posizioni sulla lavagna, identificate ognuna

da un nome distinto, e

valore il loro eventuale contenuto

LAVAGNA DI PROGRAMMA

•^

Su questa lavagna viene descritto, secondo un’opportuna modalità chevedremo, il compito che l’impiegato deve svolgere, in base a una serie diattività elementari che egli è in grado di eseguire. Il compito viene descrittosulla 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 persvolgere.

ATTIVITA’ ELEMENTARIDELL’IMPIEGATO

„

Istruzione di assegnamento:^ „

nome

valore

„

nome

nome

„

Istruzione di lettura:^ „

nome

( LEGGI IN-i )

„

nome

( LEGGI nome1 )

„

Istruzione di scrittura:^ „

( SCRIVI OUT-i )

nome

„

( SCRIVI nome2 )

nome

„

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 op

Prof. Paolo Michelini

TIPI DI BLOCCHI

Istruzioneelementare

Inizio

Fine

Condizione

Blocco di inizio

Blocco di fine

Blocco funzionale

Blocco decisionale V^

F

Prof. Paolo Michelini

ESEMPIO DI DIAGRAMMA DIFLUSSO

Start

base

(LEGGI IN-1) esp

(LEGGI IN-2)val^

^1 esp = 0

val

val x base

esp

esp - 1

(SCRIVI OUT-1)

val

Exit

SI

NO

Calcolo di base

esp

PROBLEMI, ISTANZE

„^

Un

problema è un’insieme di domande omogenee. „^

Esempio: calcolare la radice quadrata intera di un numeronaturale”. Per descrivere un problema in modo più preciso sipossono evidenziare questi punti usando il concetto di

variabile: il

problema precedente potrebbe essere formulata con “Calcolare laradice quadrata intera di un numero naturale X”. „^

Un’

istanza di un problema è uno specifico esemplare della

classe di domande omogenee cioe’ una specificadomanda.^ „^

Esempio: calcolare la radice quadrata intera di 27. Un’istanza devespecificare il valore delle variabili. „^

La

soluzione di un’istanza di un problema è la risposta a

una domanda.

ALGORITMO, LINGUAGGI DIPROGRAMMAZIONE PPROGRAMMI

„^

Un algoritmo è un procedimento che permette di rispondere atutte le istanze di un certo problema.

„^

Essendo l’algoritmo un concetto astratto, non può esserecomunicato dal direttore all’ufficio senza un passo dirappresentazione. Il diagramma di flusso è quindi larappresentazione dell’algoritmo in un certo formalismo. „^

Il diagramma di flusso è quindi la rappresentazionedell’algoritmo in un certo formalismo. La rappresentazione èdetta programma e il formalismo linguaggio diprogrammazione.

„^

Un calcolatore è quindi un

esecutore universale di algoritmi:

può eseguire qualsiasi algoritmo gli venga fornito, purchérappresentato nel formalismo (programma) che il calcolatoresa comprendere.

Algoritmo Programma

Dati di input

Risultati

EsigenzeUtente Problema Calcolatore

Istanza

Analisi ProgettazioneProgrammazioneEsecuzione

Risoluzione di un problema

MCD(N,M)

MCD(132,24)

132,

ALGORITMO DI EUCLIDEmain() {…}

12

Come affrontare un problema

„^

Analisi^ „^

Dall’esigenze dell’utente e dai dati di ingresso, capire cosa ci siaspetta per la soluzione del problema (dati di uscita). „^

Progettazione^ „^

Scomporre il problema in sottoproblemi piu’ semplici fino a giungeread 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 delprogramma

Test e Debugging

„^

Test^ „^

Al fine di evidenziare possibili errori di progettazione o diprogrammazione (errata interpretazione dell’algoritmo o dinamici)normalmente si prevede una fase di test (o verifica) delprogramma 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.). Sel’algoritmo dara’ risultati corretti per queste particolari istanze,potremmo ragionevolmente pensare che esso dia risultati correttiper ogni istanza del problema.

„^

Debugging (dall’inglese “spulciare”)^ „^

Se i risultati ottenuti nella fase di verifica evidenziano errori, sidovra’ effettuare il debugging del programma. Con questaoperazione si intende la verifica passo-passo del programmascritto al fine di individuare i possibili errori fatti.

DIAGRAMMI DI FLUSSOSTRUTTURATI (DFS)

„^

Un diagramma di flusso strutturato (DFS) è un Diagramma di Flusso(DF) composto con apposita regola in cui il BSG (Blocco StrutturatoGenerico) può essere a sua volta una struttura di controllo o unblocco funzionale semplice, e ha un solo arco in ingresso ed uscita.Quando la programmazione fa uso sistematico di queste strutture, siparla di programmazione struttutata.

START

DFS

STOP

„^

Le strutture di controllo sono a loro volta costituite da tre possibilicostrutti:^ „^

Sequenza „^

Selezione (doppia o semplice) „^

Iterazione

Es: struttura di sequenza^ „^

Pseudocodifica:^ „^

Inizio^ „

Istruzione1; „ Istruzione2; „^

Fine

Istruzione

Istruzione

Fine

Inizio

Es: struttura di selezione

„^

Pseudocodifica:^ „^

Selezione doppia SE

condizione^ ALLORA

Istruzione

ALTRIMENTI

Istruzione

„^

Selezione semplice SE

condizione^ ALLORA

Istruzione

Istruzione

Istruzione

condizione V^

F

Istruzione

condizione V^

F