16 Flowchart
16 Flowchart
Algoritmi e Flowchart
Risoluzione di problemi
Uno degli scopi fondamentali dell’informatica è la risoluzione di problemi
– comprendere il problema
– definire un procedimento risolutivo (algoritmo) per il problema
– implementare l’algoritmo in un linguaggio di programmazione (in C
definire una o più funzioni, in Java definire una o più classi)
2
Esempi di problemi da risolvere
• Da0 due numeri trovare il maggiore
• Da0 a e b, risolvere l'equazione ax+b=0
• Calcolare il massimo comun divisore fra due numeri da0.
• Dato un insieme di parole, meAerle in ordine alfabe0co.
• Dato un elenco di nomi e rela0vi numeri di telefono trovare il numero di telefono di
una determinata persona
• Dato l’archivio dell’anagrafe comunale, trovare tuD i nuclei familiari, compos0 da più
di 4 persone
• Dato l’archivio dei dipenden0 di un’azienda, calcolare lo s0pendio di ogni dipendente
dell’azienda.
• …..
4
Le fasi del procedimento di analisi e
programmazione
Problema
Programma
Dati
Risultati
5
Algoritmo
Per risolvere un problema bisogna definire (ovvero, iden7ficare
o proge9are) un procedimento risolu/vo, ossia una
sequenza logica di istruzioni elementari (univocamente
interpretabili) che, eseguite secondo un ordine prestabilito,
perme9ono di arrivare ai risulta7 a par7re dai da7 del
problema.
7
Algoritmo
9
Proprietà degli algoritmi
Pertanto l’algoritmo deve:
leggibilità
§ essere facilmente comprensibile
modificabilità
§ essere facilmente modificabile, a fronte di (piccole) modifiche nelle
specifiche del problema risolto dall’algoritmo
parametricità
§ dipendere da da= i cui valori non sono no= al momento in cui si vuole
affrontare e risolvere il problema
riusabilità
11
Specifica di un problema
Un problema può essere descritto in modo formale mediante la
12
Algoritmo per il calcolo delle radici reali di
un’equazione di 2o grado
Data l’equazione
ax2+bx+c=0
13
Algoritmo per il calcolo delle radici reali di
un’equazione di 2o grado
Algoritmo:
1. Inizio dell’algoritmo.
5. Se D=0, allora esistono due radici reali coincidenti, x1=x2=-b/2a; eseguire l’istruzione 7.
6. Se D>0, allora esistono due radici reali distinte, x1=(-b+√ D )/2a, x2=(-b-√ D )/2a; eseguire
l’istruzione 7.
8. Fine dell’algoritmo.
15
Esempio
16
Descrizione degli algoritmi
17
Costanti e variabili
18
Istruzioni
Ma quali sono le istruzioni possibili in un calcolatore moderno?
19
Istruzioni
Le istruzioni possono essere suddivise in 5 categorie:
• istruzioni operative;
• istruzioni di salto;
• istruzioni di ingresso/uscita;
20
Istruzioni operative
Esempi:
a = 5+3
x = 2
b = 3 % 2 (% è l’operatori di modulo, ovvero resto della divisione
intera).
D=b2-4ac.
21
Istruzioni di salto
22
Istruzioni di inizio/fine
23
Istruzioni di ingresso/uscita
24
Istruzioni condizionali, o di controllo
Istruzioni che controllano il verificarsi di condizioni specificate e
che in base al risultato determinano quale istruzione eseguire.
25
Esempio
n 8. Fine dell’algoritmo.
26
Esempio
n 8. Fine dell’algoritmo.
27
Espressioni
Sequenze di variabili e costanti combinate fra loro mediante operatori (ad es,
operatori aritmetici: +, -, *, /);
ad esempio:
s + r * 5
A
100
Nella valutazione di una espressione, si sostituisce ad ogni variabile il suo valore attuale e
si eseguono le operazioni secondo un ordine prestabilito da regole di precedenza
(possono comparire parentesi).
A tutte le variabili che compaiono nell'espressione deve essere stato associato un valore
prima della valutazione dell'espressione.
Tipi di Espressioni:
relazionali e logiche: danno come risultato vero o falso (>, <, =, ³28
, £, ¹)
Esempio
29
Esempio
Utilizzate un’opportuna espressione per esprimere ciascuna
delle seguenti condizioni:
età (E) compresa fra 18 e 60 anni
E>=18 AND E<=60
Altezza (A) superiore a 1,90 m oppure peso (P) superiore a 100Kg
A>190 OR P>100
Anno (Y) multiplo di 4, ma non multiplo di 100
Y%4==0 AND NOT(Y%100==0)
30
Rappresentazione degli algoritmi:
diagrammi di flusso o flowchart
32
Istruzioni (blocchi) fondamentali
Inizio e fine di un algoritmo
Inizio Fine
33
Somma di due valori
forni/ dall’utente
34
Strutture di controllo
Mediante i blocchi fondamentali, è possibile costruire delle strutture
tipicamente utilizzate per il controllo del flusso di esecuzione dell’algoritmo:
selezione e iterazione
Selezione
Esprime la scelta tra due possibili azioni (o sequenze di azioni) mutuamente
esclusive.
36
Strutture di controllo
Iterazione
• Corpo: esecuzione delle istruzioni fondamentali del ciclo che devono essere
eseguite in modo ripetitivo;
• Modifica: modifica dei valori delle variabili che controllano l'esecuzione del ciclo
(eseguito ad ogni iterazione);
41
Iterazioni
Repeat-until While
42
Esecuzione di una stampa ripetuta 10 volte
(versione 1)
Esecuzione di una stampa ripetuta 10 volte
(versione 2)
Stampa dei primi 100
numeri naturali
47
Stampa dei primi N numeri
8/3/2018 naturali
naturali
start
leggi N
i=0
fine i<N
stampa i
i = i+1
Somma di N dati forniti
dall’utente
49
Somma di N dati forniti
dall’utente
50
Calcolo del fattoriale del
numero N
51