algoritmi prime - docente Pablo Genova

Algoritmi e diagrammi di flusso
versione biennio
Pablo Genova
[email protected]
I. I. S. “Angelo Omodeo”
Indirizzo Tecnico-Economico
Mortara
A. S. 2015 – 2016
Cos'è un algoritmo?
Algoritmo:
procedimento che risolve un dato
problema in un numero finito di passi
La proprietà di finitezza è molto importante (l'algoritmo deve finire!) inoltre
tipicamente un algoritmo è
● non ambiguo,
● porta ad un risultato univoco,
● viene eseguito in un tempo finito
● i passi costituenti sono elementari (non ulteriormente scomponibili)
il passo dell'algoritmo si dice STEP in inglese
Curiosità: la parola algoritmo deriva da
Muhammad ibn Mūsā al-Khwārizmī,
matematico persiano della Corasmia
attualmente Xiva (Хива) Uzbekistan
Dal problema all'algoritmo
Quando costruiamo un algoritmo, creiamo una procedura
generale, astratta, che ci permette di risolvere un problema
Definiremo delle VARIABILI
e delle
numeri o caratteri che
variano nel corso dell'algoritmo
COSTANTI
numeri o caratteri che
rimangono costanti
NON variano nel corso dell'algoritmo
Esempio di costanti: π (pi greco) c (velocità della luce),
ma anche qualunque valore numerico che non cambia più in tutto il
procedimento,
Esempio economico: aliquota IVA fissata ad es. al 23% IVA=23%
Diagrammi di flusso
Per rappresentare un algoritmo usiamo la tecnica dei
diagrammi di flusso.
Se usata correttamente, è già un modo rudimentale di
programmazione, ovvero di elaborazione di un programma,
che è un insieme di istruzioni comprensibile al calcolatore.
Nel diagramma di flusso è già presente la logica della
programmazione, ciò che manca è la codifica, ovvero il
linguaggio concreto che esprime i vari passaggi in forma
comprensibile al calcolatore (questo non lo vedremo)
Curiosità flowchart originali IBM:
http://www.eah-jena.de/~kleine/history/software/IBM-FlowchartingTechniques-GC20-8152-1.pdf
Blocchi elementari
FINE
INIZIO
I
….
….
connettori
input
…...
O
output
V
Elaborazione
(calcolo)
F
Selezione binaria
Quanti tipi di blocchi servono?
I due informatici italiani Corrado Böhm e Giuseppe
Jacopini hanno dimostrato che
OGNI ALGORITMO PUO' ESSERE IMPLEMENTATO
UTILIZZANDO LE SOLE TRE STRUTTURE:
SEQUENZA, SELEZIONE ED ITERAZIONE
Teorema di Böhm-Jacopini
SEQUENZA E SELEZIONE le abbiamo già viste
(le sequenze sono i blocchi di elaborazione)
L'ITERAZIONE E' UNA STRUTTURA CHE PERMETTE DI RIPETERE un
dato numero di volte una o più operazioni
L'ITERAZIONE è anche nota come CICLO O LOOP
La media e la somma di tre numeri QUALSIASI
Dati tre numeri, calcolarne la somma e la media, visualizzare il risultato
INIZIO
ATTENZIONE!
A, B, C
COMMENTI
I
IL SIMBOLO
=
IN INFORMATICA
significa ASSEGNO
È sbagliato scrivere
!!!! A+B+C = S !!!!
Blocco di Input: inserisco i tre
numeri utilizzando le variabili
A, B e C
Calcolo la somma assegnando
alla variabile S il valore della
somma A+B+C
S = A+ B +C
Calcolo la media
si poteva anche scrivere
M = (A+B+C)/3
M=S/3
ATTENZIONE!
BISOGNA ESSERE
COERENTI
SE HO CHIAMATO
S LA SOMMA
COSI' DEVE
ESSERE IN TUTTO
LO SCHEMA
S, M
FINE
O
Blocco di Output: visualizzo
S e M (somma e media)
come richiesto
Esempio di selezione
Confrontare le aree di un quadrato e di un cerchio e dire qual è la figura con area maggiore
I COMMENTI SARANNO
RICHIESTI NELLA
VERIFICA
pi_greco =3.14159
L, R
ATTENZIONE!
DATO CHE LE DUE
AREE SONO GENERICHE
E DIVERSE FRA DI LORO
BISOGNA CHIAMARLE
CON NOMI DIVERSI
Il cerchio ha
area maggiore
O
Definisco la
costante pi_greco
come 3.14159
(approssimazione)
INIZIO
ATTENZIONE!
A_q = L*L
A_c =pi_greco * R * R
V
A_c > A_q
FINE
I
Inserisco lato del quadrato e
raggio del cerchio
Calcolo area quadrato A_q
Calcolo area cerchio A_c
F
O
Il quadrato ha
area maggiore
Esempio di iterazione Somma da 1 a 10
INIZIO
S
=
I
I
S
0
0
Definisco la variabile I e la metto a 0
I è un contatore
I+1
Incremento di 1 il contatore
metto I+1 in I
Questo serve a fare il CICLO
S+I
Incremento la somma di I, questo
serve a fare la somma
=
=
=
Definisco la variabile S e la metto a 0
V
I < 10
BLOCCO IL CICLO QUANDO
HO RAGGIUNTO IL
NUMERO RICHIESTO (10)
attenzione è minore stretto
è < NON ≤
F
CONTINUA IN SLIDE SUCCESSIVA
INIZIA IN SLIDE PRECEDENTE
O
S
VISUALIZZO S
FINE
I cicli sono in qualche modo l'essenza della programmazione perché
vi permettono di dire al calcolatore di ripetere tante volte una data
operazione e quindi di fare in poco tempo calcoli complessi o lunghi
per l'umano.
Nella verifica occorre sempre RICORDARE
LE UNITA' DELL'INFORMATICA (dal bit al Terabyte)
CONVERSIONI BINARIO
DECIMALE
L'ARCHITETTURA DI VON NEUMANN
LA STRUTTURA A LIVELLI DI UN SISTEMA OPERATIVO
COS'E' L'ESTENSIONE DI UN FILE E
LE PRINCIPALI ESTENSIONI DI USO COMUNE
ATTENZIONE: questi argomenti
possono SEMPRE essere richiesti!
RICORDARE LE ELEMENTARI FORMULE GEOMETRICHE che
permettono di calcolare aree e perimetri di quadrati, cerchi
rettangoli, noti i lati, i raggi, i diametri, ovvero con ovvie notazioni:
p quadrato = L *4
A quadrato = L2
prettangolo = 2 * (a+b)
A rettangolo = b*h
p triangolo = a+b+c pcerchio= π d = 2 π r
A triangolo = b*h/2
A cerchio = π r2