• Non ci sono risultati.

Realizzazione software

N/A
N/A
Protected

Academic year: 2021

Condividi "Realizzazione software"

Copied!
16
0
0

Testo completo

(1)

Realizzazione software

• Due fasi:

1. Specifica dell'algoritmo

1.a Definizione dei dati

1.b Definizione della modalità della loro elaborazione

2. Realizzazione algoritmo con un particolare

linguaggio (traduzione)

(2)

Algoritmi

• Risolvere un problema significa individuare un procedimento che permetta di arrivare al

risultato partendo dai dati

• Il procedimento (chiamato algoritmo ) è composto da passi elementari

• Il modo di esprimere la sequenza dei passi

elementari deve essere standardizzato

(3)

Proprietà degli algoritmi

• L'algoritmo è caratterizzato da:

– finitezza: composto da un numero finito di passi elementari; le operazioni sono eseguite un numero finito di volte

– non ambiguità: i risultati non variano in

funzione della macchina/persona che esegue l'algoritmo (deterministico)

– realizzabilità: deve essere eseguibile con le risorse a disposizione

(4)

Algoritmo

• Per definire un algoritmo è necessario:

– condurre un'attenta analisi del problema – individuare i possibili ingressi

– precisare le uscite

– definire completamente e dettagliatamente la sequenza dei passi che portano alla soluzione

è conveniente suddividere il problema in piccoli sottoproblemi

(5)

Rappresentazione degli algoritmi

• Si fa riferimento ai diagrammi di flusso ( flow chart )

• Sono rappresentazioni grafiche dei passi elementari; visione globale del problema

• Strumento efficace per descrivere un algoritmo (più della descrizione a parole, troppo generica o appesantita da troppi dettagli)

• Le operazioni base sono 4

(6)

Operazioni base

• Le operazioni primarie sono:

– Trasferimento di informazioni

lettura dati, scrittura risultati, visualizzazione dati intermedi

– Esecuzione di calcoli – Assunzione di decisioni – Esecuzione di iterazioni

ripetizione di sequenze di operazioni

• Sono rappresentate da forme geometriche diverse

(7)

Simboli convenzionali

ingresso/uscita

elaborazione

elab. predefinita

decisione

inizializzazione

inizio/fine

connessioni

documento

input manuale

disco

mem. sequenziale

(8)

Esempi

• Diagramma di flusso per:

– somma di N dati – media di N dati

– calcolo del fattoriale

– calcolo della radice quadrata approssimata – calcolo dei primi N numeri primi

– inserimento/ricerca di un elemento in un

(9)

Tecniche di programmazione

• Programmazione top-down :

– scomposizione iterativa del problema in sottoproblemi

– i sottoproblemi devono essere indipendenti ed avere interfacce ben definite

– visibilità dei dettagli di ogni sottoproblema

• Programmazione strutturata

(10)

Programmazione strutturata

• Teoria nata nel 1965

• Basata su eliminazione dei salti

incondizionati e -più generalmente- sulla definizione di restrizioni

• Rendono la scrittura dei programmi e la loro manutenzione più semplici

• Migliorano la leggibilità dei programmi

(11)

Teorema di Jacopini-Bohm

• Per costruire un programma sono necessari 3 soli blocchi:

1. blocco di elaborazione

è assimilabile ad una sola istruzione o un solo blocco con un ingresso e una uscita

2. meccanismo di ripetizione (o loop)

3. meccanismo di decisione binaria

(12)

• While-Do

I

O

I

O

Strutture per il controllo di flusso

(13)

• Repeat-Until

I

O

I

O

Strutture per il controllo di flusso

(14)

• If-Then-Else

I

I

O

Strutture per il controllo di flusso

(15)

Teorema di Jacopini-Bohm

• All'interno di ogni blocco si nasconde un ciclo o una biforcazione

• Il programma risulta quindi composto da una sequenza di blocchi, senza controlli di flusso

• Simile alla programmazione top-down

dove, però, i blocchi non devono essere

indipendenti e omogenei

(16)

Scelta dell'algoritmo

• Non esistono strutture (dati e di controllo) preferite: la loro scelta dipende dal tipo di linguaggio in cui si codifica l'algoritmo

• La scelta dell'algoritmo ottimo dipende dal linguaggio a disposizione: occorre

conoscere bene il linguaggio e le primitive

che esso offre

Riferimenti

Documenti correlati

; in;omma V è proprio la collezione di insiemi dentro la quale possiamo trlvare tutti gli oggetti matematici standard che adopereremo in tale se milario... Daremo più avanti esempi

Forse un giorno capirete perché al posto di questi 100 euro preferiremmo un contratto nuovo che venga finalmente rinnovato ad ogni scadenza e che tenga conto della

Algoritmo per il calcolo dell’area di un trapezio Dati di input: Bmag, Bmin, H Dati di output: Area.. Variabili e costanti Riassumendo. • Il pascal-like e’ uno pseudo

• Dati nella cache L1 (~ 2 cicli per l’accesso) – Necessarie q=0.5 (cioe’ 2 flop per dato trasferito) per. avere il 50%

[r]

Definire l’usuale ordinamento sui numeri naturali e successivamente provare la propriet`a transitiva di tale ordinamento.. Formalizzare la seguente frase in linguaggio naturale:

Soluzione: Si consideri una costante “m”, un predicato unario “P(x)” che significa “x `e un professore” e un predicato binario “A(x,y)” che significa “x ammira

– finitezza: composto da un numero finito di passi elementari; le operazioni sono eseguite un numero finito di volte – non ambiguità: i risultati non variano inO. funzione