• Non ci sono risultati.

Realizzazione software•Due fasi:

N/A
N/A
Protected

Academic year: 2021

Condividi "Realizzazione software•Due fasi:"

Copied!
3
0
0

Testo completo

(1)

1

Elementi di Informatica 1

Realizzazione software

• Due fasi:

1. Specifica del programma 1.a Definizione dei dati

1.b Definizione della modalità della loro elaborazione

2. Realizzazione algoritmo con un particolare linguaggio (traduzione)

Elementi di Informatica 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

Elementi di Informatica 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

Elementi di Informatica 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

Elementi di Informatica 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

Elementi di Informatica 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

(2)

2

Elementi di Informatica 7

Simboli convenzionali

ingresso/uscita

elaborazione

elab. predefinita

decisione

inizializzazione

inizio/fine

connessioni

documento

input manuale

disco

mem. sequenziale Elementi di Informatica 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 albero binario

Elementi di Informatica 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

Elementi di Informatica 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

Elementi di Informatica 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

Elementi di Informatica 12

• While-Do

I

O

I

O

Strutture per il controllo di flusso

(3)

3

Elementi di Informatica 13

• Repeat-Until

I

O

I

O

Strutture per il controllo di flusso

Elementi di Informatica 14

• If-Then-Else

I

O

I

O

Strutture per il controllo di flusso

Elementi di Informatica 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

Elementi di Informatica 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

Perciò, per il teorema della derivata della funzione inversa si

[r]

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

[r]

; 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

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

Osserviamo anche che se due polinomi monici irriducibili hanno una radice comune essi coincidono, per l’unicit` a del polinomio minimo... Ragioniamo per induzione