Sei sulla pagina 1di 11

RELAZIONE DI LABORATORIO: FLOWGORITHM

Cognome: Morzenti
Nome: Nicola
Classe: 3D

TITOLO ED OGGETTO DELLA PROVA:


Diagrammi di flusso su Flowgorithm

INTRODUZIONE ED OBIETTIVI:
Per questa esperienza, del tutto analoga a quella precedente, andremo a creare diagrammi di flusso su
Flowgorithm: questa volta però, si svilupperanno in modo più complesso, presentando anche cicli.

PRESENTAZIONE DELL'ESPERIENZA:
Come per quella precedente, come ribadito sopra, in questa relazione si capirà come rappresentare problemi
concreti in diagrammi di flusso. Utilizzeremo ancora Flowgorithm, per cui tralascerò alcune informazioni,
già presenti nella relazione gemella.
Lo svolgimento si comporrà nella stessa modalità degli esercizi precedenti: partiremo da una consegna,
realizzeremo su carta e infine su Flowgorithm.

DESCRIZIONE TEORICA DELL'ESPERIENZA O PROGETTO


Di seguito vengono riassunte le nozioni teoriche dell’esercitazione precedente; andremo invece ad
approfondire la parte riguardante i cicli.
Vengono qua riportati i blocchi già visti:

Ovali; sono i blocchi di Rettangoli; sono i blocchi di


inizio e fine, e inizializzazione ed
rappresentano gli elaborazione. È tramite questi
estremi del diagramma che si eseguono calcoli e si
iniziano le variabili

Parallelogrammi; sono i
blocchi di input/output, e
Rombo; è il blocco di
rappresentano i comandi di
condizione, di test, tramite il
lettura e scrittura
quale si pone una domanda. Da
qui si ramificheranno due strade
alternative, il vero ed il falso.

I successivi blocchi, in particolare il secondo ed il terzo,


sono quelli ancora non visti:

Come già visto, i diagrammi di flusso si possono distinguere in


semplici, multipli e iterativi. Nel ciclo iterativo si prevede un
ripetersi finito di blocchi (ciclo; verrà indicato con una freccia
che compie un mezzo giro a formare appunto un anello
Esagoni: comprendente i blocchi che si vuole far ripetere). Questi ultimi
rappresentano i ciclisi suddividono in post condizionali e pre condizionali, in base
alla posizione del blocco di condizione, se in fondo o all’inizio
del ciclo.
Come sempre, visualizzeremo il diagramma come console, variables e chart.
Oltre alle selezioni Integer e Real, per uno dei diagrammi di seguito descritti sarà anche presente la funzione
Boolean e la funzione String: la prima serve per descrivere un modo d’essere (true o false), mentre il secondo
metodo consente anche di inserire lettere, oltre che a numeri.

SCHEMA A BLOCCHI DEL PROGETTO


Di seguito sono mostrati i diagrammi nel loro insieme

Diagramma per la verifica dell'esistenza di un triangolo

Diagramma per la verifica dell'appartenenza ad un intervallo


Diagramma per indovinare un numero casuale fra 1 e 100

Diagramma per la visualizzazione del quadrato con area più grande, dato un lato
1Diagramma per la somma di numeri positivi e negativi

Diagramma per il calcolo della temperatura in Kelvin e Fahrenheit data quella in Celsius

PROGETTAZIONE SINGOLI BLOCCHI


Questo diagramma serve a controllare se, dati tre lati, è possibile la costruzione di un triangolo. Si
parte col dichiarare le tre variabili (reali per scelta, avrebbero anche potuto essere intere), per poi,
una volta inseriti i dati, verificare con il test. Si ricorda che perché un triangolo esista, ogni lato
deve essere minore della somma degli altri due.
Da notare come ho espresso il diagramma con tre output, mentre avrei potuto semplificare il tutto
con l’aggiunta di una variabile (come, ad esempio, la variabile booleane bTriangolo = false / true).
Così facendo sarebbe stato impossibile per un eventuale utente capire il motivo per il quale sarebbe
impossibile creare un triangolo.
Questo diagramma serve a
verificare se un numero, B, è
compreso fra altri due, A e C.
Questo diagramma è simile ad
uno fatto in precedenza, con la
differenza che in questo caso A e
C non sono note a priori; di
conseguenza, non possiamo
sapere quale delle due è
maggiore rispetto all’altra. Ecco
spiegato il corpo centrale
dell’algoritmo. Da notare la
presenza del comando
“&&”, ossia and; perché la
condizione risulti vera, è
necessario che entrambi i
test risultino veri.

Questo diagramma
rappresenta il giochino
“indovina il numero”: il programma estrarrà un numero casuale, e l’utente avrà un numero limitato
di tentativi per indovinarlo. Sebbene sembri complesso, non lo è affatto: certo intervengono le tre
variabili booleane, che hanno il solo scopo però di far interrompere il ciclo (do, post-condizionale).
Infatti, la condizione perché il ciclo si ripeta è direttamente bV = false, ma attraverso gli if-else
anche il raggiungimento di 5 tentativi errati. È presente inoltre la funzione “random”, che estrae un
numero da 0 a x. Perché si parta da uno è necessario scrivere random (99) + 1, ossia tutti i numeri
compresi fra 1 e 100.
Questo è il diagramma per la
visualizzazione del perimetro del
quadrato con area maggiore. Anche
qua ho scelto una variabile reale,
ma sarebbe potuta andare bene
anche una variabile intera, in base
alle esigenze. Si può anche vedere
come io abbia posto il test come un
lato maggiore di un altro; questo
perché un quadrato con lato
maggiore avrà anche area maggiore
(infatti A = l*l). In questo caso, al
posto di inserire 4 output ho
preferito aggiungere una variabile,
rendendo così l’algoritmo più
semplice.

L’algoritmo seguente utilizza un


ciclo for per sommare otto numeri,
positivi o negativi. Alla fine
visualizzerà la somma negativa e
positiva.
Da notare come 8 sia un numero
indicativo; per inserire un numero a
scelta di valori sarebbe basato
inserire una variabile in più, e nel
ciclo sarebbe apparso “I = 1 to
val”.
Inoltre, ho scelto di mettere lo 0 fra i numeri positivi, anche se ovviamente non avrebbe fatto alcuna
differenza.
Questo ciclo è probabilmente il più complesso dopo “indovina il numero”. Inserita la temperatura in
gradi Celsius, verrà visualizzata una temperatura in Kelvin o Fahrenheit a nostra discrezione.
Anzitutto bisogna notare come si è posta la variabile “I” come string, stringa: sarà infatti la variabile
in cui noi dovremo inserire “F” o “K”, in base alla nostra scelta. In questo caso è invece necessario
impostare i valori “C” (Celsius) e “ris” (risultato) come reali, perché implicano la presenza di
numeri decimali. L’ultima cosa da appuntare è che nel secondo test e nel terzo, i valori F e K vanno
posti fra virgolette, per indicare come non si riferiscano a variabili ma al contenuto di “I”.
L’algoritmo da segnale di errore se la temperatura in Celsius inserita è minore di -273,15° e se si
inserisce un’altra lettera al di fuori di F e K.
Per la creazione di questo algoritmo è necessario sapere che per trovare la temperatura in Kelvin
basta sommare 273,15 alla temperatura in Celsius, mentre per trovare la temperatura in Fahrenheit
si moltiplicano i nove quinti dei gradi in Celsius più 32.
Una curiosità: su Flowgorithm i numeri decimali si inseriscono con il punto e non con la virgola (ad
esempio 2.43 e non 2,43); questo perché utilizziamo un programma americano, e essi utilizzano
questa morfologia sintattica.
ELENCO STRUMENTI:
Per quest’esperienza ho utilizzato un semplice pc pre-assemblato, con tanto di tastiera e mouse.
Ovviamente, all’interno del pc (con sistema operativo Windows), era già presente il software
Flowgorithm.

CONCLUSIONI, NOTE PERSONALI E SVILUPPI FUTURI:


In aggiunta alle osservazioni della relazione gemella, vorrei aggiungere come man mano stiamo
“alzando l’asticella”: mentre inizialmente controllavamo cose scontate come “tre è compreso fra
uno e sette?”, ora stiamo passando a cose di un’utilità anche più concreta, specialmente quello per il
calcolo della temperatura e dell’”indovina un numero”. È ovvio poi che anche un software come
Flowgorithm è limitato; è per questo che più avanti passeremo al più complesso linguaggio
informatico, che deriva però, appunto, da questi diagrammi.

Potrebbero piacerti anche