1_Problemi_Algoritmi - Elementi a disposizione

Algoritmi ................................................................................................................................................ 1
introduzione ........................................................................................................................................ 1
Come si arriva all’algoritmo ............................................................................................................... 1
Definizione: ........................................................................................................................................ 2
Caratteristiche di un algoritmo: .......................................................................................................... 2
Schema di progetto ................................................................................................................................. 3
Visual Basic:Istruzioni fondamentali e corrispondenza con Diagrammi di flusso ................................ 4
Algoritmi
introduzione
Quando, nella vita di tutti i giorni, ci troviamo di fronte alla necessità di risolvere un
problema, seguiamo, anche se non ce ne rendiamo conto, una sequenza di passi
abbastanza costante:
1) Nella prima fase si definisce il problema, cercando di descrivere con la maggior
precisione possibile quali sono i dati che in esso sono coinvolti e “dividendoli” in:
a) quali sono quelli che abbiamo a disposizione
b) quali sono i risultati che ci aspettiamo dalla soluzione del problema.
2) Nella seconda fase vanno definite quali azioni intraprendere e viene stabilita, tenuto
conto dei dati a disposizione, l’esatta sequenza delle azioni da compiere per
ottenere la soluzione del problema e per raggiungere il tipo di risultati attesi.
3) Infine si procede all’esecuzione delle azioni definite nella fase precedente. Vediamo
qualche esempio.
•
preparazione pane frattau:
Dosi per 4 persone: 400 gr. Di carasau 500 gr. di salsa, brodo di pecora etc. Scaldare il
brodo in una pentola larga, immergere (velocemente) il carasau ...
La prima cosa che è specificata nella ricetta è il numero di persone, seguono le dosi e gli
ingredienti: tutto ciò costituisce l’insieme dei dati iniziali del problema. Vanno poi
elencate le risorse che, nel nostro caso, sono i tipi di pentole da utilizzare e, se è
necessario, il forno e quale tipo di fuoco. Da ultimo è indicato il processo di preparazione
della pietanza.
I medesimi passi, descritti sopra per la soluzione di problemi della vita quotidiana, devono
essere seguiti quando si utilizzano le risorse dell’elaborazione automatica dei dati.
Come si arriva all’algoritmo
Passo 1: Analisi-Descrizione del problema
In questa prima fase occorre definire con precisione: i dati che abbiamo a disposizione, i
risultati attesi e i passaggi per elaborare i dati iniziali e ottenere la soluzione del problema.
Schematicamente gli elementi che caratterizzano un problema sono (solitamente):
1) dati iniziali ovvero i dati che servono e sui quali basare la soluzione del
problema da affrontare. I dati iniziali vengono anche detti dati di input.
2) dati di uscita ovvero i risultati che si vogliono ottenere che vengono anche
detti anche dati di output.
1
3) le risorse a disposizione sia dal punto di vista logico (tabelle, criteri di calcolo, schemi logici,
ecc.) sia dal punto di vista fisico o hardware (strumenti di calcolo quali macchine calcolatrici,
personal computer o calcolatori di grosse dimensioni).
4) le soluzioni adottate, ovvero il procedimento e il percorso che permettono di
passare dai dati iniziali ai risultati attesi.
Passo 2: Stesura dell’algoritmo
La soluzione del problema, così come è stata descritta nella prima fase, deve essere ora
organizzata e sviluppata in una serie di operazioni da attuare secondo un ben definito
ordine, che permette di giungere ai risultati attesi a partire dai dati iniziali.
La scomposizione del procedimento risolutivo di un problema, in una sequenza di operazioni elementari da seguire per ottenere i risultati attesi, costituisce la stesura
dell’algoritmo risolutivo
Definizione:
un algoritmo può quindi essere definito in maniera semplice ed intuitiva come:
un insieme finito di istruzioni che eseguite in un ordine prefissato risolvono un
problema.
Caratteristiche di un algoritmo:
1) Eseguibile
Le istruzioni devono poter essere eseguite dall’esecutore scelto (per noi
elaboratore-PC)
2) Finito
Deve avere un numero finito di passi (eventualmente ripetuti un numero finito
di volte)
3) Generale
Deve risolvere una classe di problemi (cioè problemi simili es. calcolare l’area del
quadrato, di un QUALSIASI quadrato NON di uno in particolare )
4) NON ambiguo
Le istruzioni devono essere precise ed interpretabili univocamente (es.
X = 3*2+5 è ambigua in quanto può essere eseguita in due modi: 1) X = 3*(2+5)
2) X = (3*2)+5
5) Deterministico
A fronte degli stessi dati di input produrrà sempre gli stessi output
2
Schema di progetto
Istituto Tecnico Commerciale “GP Chironi”
Progetto di Laboratorio di Informatica
Classe ___________
A.S. 20__/20__
Cognome e Nome:
Titolo del progetto:
Data di inizio:
Data di consegna:
1. Analisi del problema.
Comprende tutta la parte in cui si analizza il problema, si capisce quello che si vuole realizzare,
tenendo presente gli obiettivi e si stabilisce un progetto di massima. Il problema va definito con una
documentazione scritta.
2. Analisi dei dati.
Vengono definiti chiaramente le variabili e le strutture dati, sia per quanto riguarda i dati di I e di O
sia per quelli che vengono usati durante l’elaborazione.
Identificatore
Descrizione
Tipo
V/C
I/O/L
3. Rappresentazione Algoritmo (flow-chart).
Viene approfondito il progetto dal p.d.v. realizzativo e vengono descritte le specifiche di dettaglio
utilizzando ad esempio un flow-chart. Si tratta di una descrizione dettagliata di tutte le azioni del
processo risolutivo ( indipendentemente dal linguaggio di programmazione utilizzato).
4. Codifica.
Vengono codificate nel linguaggio di programmazione (Visual Basic) le varie procedure,una volta
eliminati gli errori sintattici vengono effettuate le prime prove di funzionamento per eliminare gli
errori logici più grossolani.
5. Test.
Vengono effettuati alcuni test più approfonditi tramite cui è possibile individuare e correggere gli
errori di logica.
3
Visual Basic:Istruzioni fondamentali e corrispondenza con Diagrammi di flusso
INIZIO
SEMANTICA (significato del comando: come
VB (sintassi ed esempio)
viene eseguito dall’elaboratore)
Indica l’inizio dell’algoritmo ovvero della sequenza Private sub <nome sub-routine>
Private sub cmdCalcola_click
di istruzioni
FINE
Indica la fine della sequenza di istruzioni ovvero
dell’algoritmo
SINTASSI ed esempio
O
“ <messaggio> ”
“Saluti da HAL”
End sub
End sub
OUTPUT: (messaggio fisso) Invia in output (es. fà MsgBox <messaggio>
apparire a video) il messaggio compreso fra le
MsgBox “Saluti da HAL”
virgolette
O
Appare a video: Saluti da HAL
OUTPUT: (valore di una variabile) Invia in
output (es. fa apparire a video) il VALORE della
variabile il cui nome corrisponde all’identificatore
di variabile
<Identificatore di variabile>
O
Prezzo
MsgBox < identificatore variab.>
Msgbox Prezzo
Es. Appare a video il valore
della variabile Prezzo in questo esempio 3
I
<Identificatore di variabile>
I
Prezzo
<ident. variab.>=InputBox(“ ...”)
ASSEGNAMENTO: Valuta l’espressione e ne
assegna il valore in memoria RAM nella variabile
il cui nome corrisponde all’identificatore di
RAM
variabile
Es. Viene assegnato alla variabile Prezzo 3
Totale 15
Totale il risultato del prodotto
<ident. Variab.> = <espressione>
Inserisce 3
O
<Identificatore di variabile>  <espressione>
Totale  Prezzo * 5
INPUT: Aspetta dall’input (es. tastiera) un
VALORE e lo inserisce in memoria RAM nella
variabile il cui nome corrisponde all’identificatore
RAM
di variabile
Prezzo
3
Es. DOPO che l’utente
Totale
Fra il valore della variabile Prezzo e 5
SEQUENZA: Le istruzioni vangono eseguite in
sequenza
Num1 = InputBox (“”)
Cognome = InputBox(“Inserire il proprio
cognome.”)
Totale = Prezzo * 5
Lato = 52
X1 = Totale
<Istruzione1>
<istruzione2>
InputBox Cognome
MsgBox “Ciao”
Msgbox Cognome
4