Dal problema al
programma
Quinza - Farina
Indice
 Sequenza
 Selezione
 Ciclo e iterazione
Dal problema al
programma
Quinza - Farina
2
Sequenza
 Calcola la media di 3 numeri
Pseudocodifica
Flow - chart
Debug
Codifica
 Cerchio (area, circonferenza)
Pseudocodifica Flow - chart
Debug
Codifica
 Rettangolo (area, perimetro)
Pseudocodifica
Dal problema al
programma
Flow - chart
Quinza - Farina
Debug
Codifica
3
Selezione
 Trova il massimo di tre numeri interi
Pseudocodifica
Flow - chart Debug
Codifica
 Definisci il triangolo
Pseudocodifica
Flow - chart Debug
Codifica
 Reciproco di un numero
Pseudocodifica Flow - chart
Dal problema al
programma
Debug
Quinza - Farina
Codifica
4
Ciclo e iterazione
 Mese per vero
Pseudocodifica
Flow - chart
Debug
Codifica
Flow - chart
Debug
Codifica
Pseudocodifica Flow - chart
Debug
Codifica
 Mese per falso
Pseudocodifica
 Spesa
Dal problema al
programma
Quinza - Farina
5
Pseudocodifica: Calcola
la media di 3 numeri
Algoritmo Media
Variabili
A, B, C
M
numerica, intera, input
numerica, reale, output
Inizio
Scrivi (“Inserisci tre numeri interi”);
Leggi (A, B, C);
M = (A + B + C) / 3;
Scrivi (“Media = “,M);
Fine
Dal problema al
programma
Quinza - Farina
6
Flown – Chart: Calcola
la media di 3 numeri
Inizio
A, B, C
M = ( A+B+C ) /3
M
Fine
Dal problema al
programma
Quinza - Farina
7
Debug: Calcola la
media di 3 numeri
Algoritmo media
Scrivi (“Inserisci 3
numeri interi”);
Leggi (A,B,C);
M = (A+B+C) / 3;
Scrivi (“Media =“, M);
Dal problema al
programma
Debug
1.
2.
3.
4.
Quinza - Farina
Inserisci 3 numeri interi
A  4, B  6, C  8
6  (4+6+8) / 3
Media = 6
8
Codifica: Calcola la
media di 3 numeri
'VARIABILI
Dim n1, n2, n3 As Single
Dim media As Single
'ACQUISIZIONE VALORI DALLE CELLE
n1 = Range("b1")
n2 = Range("b2")
n3 = Range("b3")
'CALCOLA LA MEDIA
media = (n1 + n2 + n3) / 3
Range("b4") = media
End Sub
Dal problema al
programma
Quinza - Farina
9
Pseudocodifica: Calcola la
circonferenza e l’area di un
cerchio
Algoritmo Cerchio
Variabili
Raggio
Circonferenza
Area
Costante
Pigreco = 3,14
Inizio
numero reale, input
numero reale, output
numero reale, output
numero reale
Scrivi (“Inserisci Raggio”);
Leggi (Raggio);
Area = Pigreco*Raggio^2;
Circonferenza = Pigreco*2*Raggio;
Scrivi (“Area = “, Area);
Scrivi (“Circonferenza =“, Circonferenza);
Fine
Dal problema al
programma
Quinza - Farina
10
Flown – Chart: Calcola
la circonferenza e l’area di
un cerchio
Inizio
Raggio
A = Pigreco*R^2
C = 2 Pigreco*R
Area, Circonferenza
Dal problema al
programma
Fine
Quinza - Farina
11
Debug: Calcola la
circonferenza e l’area del
cerchio
Algoritmo circonferenza Debug
e area
1. Inserisci il Raggio
Scrivi (“Inserisci Raggio”);
Leggi (Raggio);
Area = Pigreco*Raggio^2
Circonferenza =
Pigreco*2*Raggio
Scrivi (“Area = “, Area)
Scrivi (Circonferenza =“,
Circonferenza);
Dal problema al
programma
2.
3.
4.
5.
6.
R5
A  3,14*5^2
C  2*3,14*5
Area = 78,5
Circonferenza = 31,4
Quinza - Farina
12
Codifica: Calcola la
circonferenza e l’area del
cerchio
'VARIABILI
Dim r, c, a As Single
'COSTANTI
pigreco = 3.14
'ACQUISIZIONE VALORI DALLE CELLE
r = Range("b1")
'CALCOLO L'AREA E LA CIRCONFERENZA DEL CERCHIO
a = pigreco * r ^ 2
Range("b3") = area
c = pigreco * 2 * r
Range("b4") = circonferenza
End Sub
Dal problema al
programma
Quinza - Farina
13
Pseudocodifica: Calcola
l’area e il perimetro di un
rettangolo
Algoritmo rettangolo
Variabili
Base
Altezza
Area
Perimetro
numero reale, input
numero reale, input
numero reale, output
numero reale, output
Inizio
Scrivi (“Inserisci Base, Altezza”);
Leggi (B, H);
Area = B*H;
Perimetro = (B+H)*2;
Scrivi (“Area = “, A);
Scrivi (“Perimetro =“, P);
Fine
Dal problema al
programma
Quinza - Farina
14
Flow – chart: Calcolare
l’area e il perimetro di un
rettangolo
Inizio
Base, Altezza
A = B*H
P = (B+H)*2
Area, Perimetro
Dal problema al
programma
Fine
Quinza - Farina
15
Debug: Calcola l’area
e il perimetro di un
rettangolo
Algoritmo Rettangolo
Scrivi (“Inserisci Base,
Altezza”);
Leggi (B, H);
Area = B*H;
Perimetro = (B+H)*2;
Scrivi (“Area = “, A);
Scrivi (“Perimetro =“, P);
Dal problema al
programma
Debug
1.
2.
3.
4.
5.
6.
Quinza - Farina
Inserisci Base, Altezza
B5 H2
A  5*2
P  (5+2)*2
Area = 10
Perimetro = 14
16
Codifica: Calcola l’area
e il perimetro di un
rettangolo
'VARIABILI
Dim B, H, P, A As Single
'ACQUISIZIONE VALORI DALLE CELLE
B = Range("B1")
H = Range("B2")
'CALCOLA IL PERIMETRO E L'AREA
P = (B + H) * 2
Range("B3") = perimetro
A=B*H
Range("B4") = area
End Sub
Dal problema al
programma
Quinza - Farina
17
Pseudocodifica: Trova il
massimo di 3 numeri
Algorimo massimo
Variabili
A, B, C numerica, intera, input
Max
numerica, intera, output
Inizio
Scrivi (“Inserisci tre numeri interi”);
Leggi (A, B, C);
Max = A;
Se (B > Max) allora
Max = B;
Fine se
Se (C > Max) allora
Max = C;
Fine se
Scrivi (“Il massimo è =“, Max);
Fine
Dal problema al
programma
Quinza - Farina
18
Flow – chart: trova il
massimo di tre numeri
Inizio
interi
A, B, C
Max = A
No
B > Max
Sì
Max = B
No
B > Max
Sì
Max = B
Max
Dal problema al
programma
Quinza - Farina
Fine
19
Debug: Trova il
massimo di tre numeri
Algoritmo massimo
Scrivi (“Inserisci tre
numeri interi”);
Leggi (A, B, C);
Max = A;
Se (B > Max) allora
Max = B;
Fine se
Se (C > Max) allora
Max = C;
Fine se
Scrivi (“Il massimo è =“,
Max);
Dal problema al
programma
Debug 1
Debug 2

1.







Inserisci tre numeri
interi
A4B6C8
Max = 4
6>4?
Max  6
8>6?
Max  8
Il massimo è = 8
2.
3.
4.
5.
6.
7.
Inserisci tre numeri
interi
A  4 B  16 C  8
Max = 4
16 > 4 ?
Max  16
8 > 16 ?
Il massimo è =16
Debug 3
Debug 4







Inserisci tre numeri
interi
A  14 B  6 C  8
Max = 14
6 > 14 ?
8 > 14 ?
Il massimo è =14
Quinza - Farina





Inserisci tre numeri
interi
A4B4C4
Max = 4
4>4?
4>4?
Il massimo è = 4
20
Codifica: Trova il
massimo di tre numeri
‘VARIABILI
Dim A, B, C, Max As Integer
‘ACQUISIZIONE DEI VALORI DALLE CELLE
A = Range (“b1”)
B = Range (“ b2”)
C = Range (“b3”)
‘CALCOLA IL MASSIMO DI TRE NUMERI
Max = A
If (B > Max) Then
Max = B
End If (C > Max) Then
Max = C
Range (“b4”) = Max
End Sub
Dal problema al
programma
Quinza - Farina
21
Pseudocodifica:
Definisci il triangolo
Algoritmo Triangolo
Variabili
A, B, C numerica, intera, input
Inizio
Scrivi (“Inserisci i tre lati del triangolo”);
Leggi (A, B, C);
Se (A<>B) AND (B<>C) AND (A<>C) allora
Scrivi (“Scaleno”);
Fine se
Se (A=B)OR (B=C) OR (A=C)
Scrivi (“Isoscele”);
Fine se
Se (A=B) AND (B=C) AND (A=C) allora
Scrivi (“Equilatero”);
Fine se
Fine
Dal problema al
programma
Quinza - Farina
Dato in input 3 lati di
un triangolo, dire
in output se il
triangolo è:
 Scaleno
 Isoscele
 Equilatero
22
Flow - Chart: Definisci il
triangolo
Inizio
A, B, C
No
No
A <> B
AND B <> C
AND A <> C
A=B
OR B=C
OR A=C
Sì
Scaleno
Sì
Isoscele
No
A=B
AND B=C
AND A=C
Sì
Equilatero
Dal problema al
programma
Quinza - Farina
Fine
23
Debug: Definisci il
triangolo
Algoritmo Triangolo
Variabili
A, B, C
numerica, intera, input
Inizio
Scrivi (“Inserisci i tre lati del
triangolo”);
Leggi (A, B, C);
Se (A<>B) AND (B<>C) AND
(A<>C) allora
Scrivi (“Scaleno”);
Fine se
Se (A=B)OR (B=C) OR (A=C)
Scrivi (“Isoscele”);
Fine se
Se (A=B) AND (B=C) AND
(A=C) allora
Scrivi (“Equilatero”);
Fine se
Fine
Dal problema al
programma
Debug 1
Debug 2







Inserisci tre lati del
triangolo
A4B6C8
4<> 6 AND 6 <> 8
AND 4 <> 8 ? V
Scaleno
4 = 6 OR 6 = 8 OR 4
=8?F
4 = 6 AND 6 = 8 AND
4=8?F





Inserisci tre lati del
triangolo
A4B4C8
4<> 4 AND 4 <> 8
AND 4 <> 8 ? F
4 = 4 OR 4 = 8 OR 4
=8?V
Isolscele
4 = 4 AND 4 = 8 AND
4=8?F
Debug 3







Quinza - Farina
Inserisci tre lati del
triangolo
A4B4C4
4<> 4 AND 4 <> 4
AND 4 <> 4 ? F
4 = 4 OR 4 = 4 OR 4
=4?V
Isoscele
4 = 4 AND 4 = 4 AND
4=4?V
Equilatero
24
Codifica: Definisci il
triangolo
‘VARIABILI
Dim lato1, lato2, lato3 As Single
‘ACQUISIZIONE VALORI DALLE CELLE
A = Range("b1")
B = Range("b2")
C = Range("b3")
‘DEFINISCI TRIANGOLO
If (A <> B) And (B <> C) And (A <> C) Then
Range("a5") = "scaleno"
End If
If (A = B) Or (B = C) Or (A = C) Then
Range("a5") = "isoscele"
End If
If (A = B) And (B = C) Then
Range("a5") = "equilatero"
End If
Dal problema al
programma
Quinza - Farina
25
Pseudocodifica:
Reciproco di un numero
Algoritmo Reciproco
Variabili
A numerica, intera, input
Inizio
Scrivi (“Inserisci un numero”);
Leggi (A);
Se (A<>0) allora
Scrivi (“1/”A);
altrimenti
Scrivi (“Errore”);
Fine
Dal problema al
programma
Quinza - Farina
26
Flow – Chart: Reciproco
di un numero
Inizio
A
No
A<>0
Errore
Sì
1/A
Fine
Dal problema al
programma
Quinza - Farina
27
Debug: Reciproco di un
numero
Algoritmo Reciproco
Variabili
A numerica, intera, input
Inizio
Scrivi (“Inserisci un
numero”);
Leggi (A);
Se (A<>0) allora
Scrivi (1/A);
altrimenti
Scrivi (“Errore”);
Fine
Dal problema al
programma
Debug 1
Inserisci un numero
A4
(4 <> 0) ? (V)
¼
Debug 2
Inserisci un numero
A0
(0 <>0) ? (F)
errore
Quinza - Farina
28
Codifica: Reciproco di
un numero
‘VARIABILI
Dim A As integer
Dim opposto
‘ACQUISIZIONE VALORI DALLE CELLE
A = Range(“b1”)
‘CONTROLLO DEI NUMERI (SELEZIONE)
If (A<>0) then
Range(“b2”) = 1*A
Range(“b2”) = A
Else
Range(“b2”) = errore
End if
End sub
Dal problema al
programma
Quinza - Farina
29
Pseudocodifica:
Mese per vero
Algoritmo Mese
Variabili
M Mese
Inizio
M=0
esegui mentre [ (M > 1) or (M < 12)];
scrivi (“inserisci il Mese”);
leggi (M)
Se (M > 0) and (M < 13) allora
scrivi (“Mese corretto”)
Altrimenti
(“Scrivi errore”)
Fine se
ripeti
Fine
Dal problema al
programma
Quinza - Farina
30
Flow – Chart: Mese per
Inizio
vero
M=0
V
[(M <1) or (M> 12)]
V
M
F
(M>0) and (M<13)
Errore
Dal problema al
programma
Ok
Quinza - Farina
Fine
31
Debug: Mese per vero
Debug 1
Algoritmo Mese
Variabili
M Mese
Inizio
M=0
esegui mentre [ (M > 1) or (M < 12)];
scrivi (“inserisci il Mese”);
leggi (M)
Se (M > 0) and (M < 13) allora
scrivi (“Mese corretto”)
Altrimenti
(“Scrivi errore”)
Fine se
ripeti
Fine
1. M  0
2. O<1 or 0>12 ? (V)
3. Inserisci Mese
4. M  13
5. Errore
6. 13 <1 or 13 > 12?
(V)
7. Inserisci Mese
8. M  7
9. Mese corretto
10. 7 <1 or 7 > 12 ?(F)
Dal problema al
programma
Quinza - Farina
32
Codifica: Mese per vero
‘VARIABILI
Dim mese As Single
‘ACQUISIZIONE DEI VALORI DALLE CELLE
mese = Range("b1")
‘CALCOLA MESE CORRETTO
If (mese < 1) Or (mese > 12) Then
Range("a3") = "errore"
Else: Range("a3") = "mese corretto"
End If
Dal problema al
programma
Quinza - Farina
33
Pseudocodifica:
Mese per falso
Algoritmo mese per falso
Variabili
Mese
numerica, intera, I
Inizio
ripeti;
scrivi(“inserisci il mese”);
leggi (Mese);
se (Mese>0) AND (Mese<13) allora
scrivi (“mese corretto”);
altrimenti
scrivi (“errore”);
fine se;
finché (Mese>0) AND (Mese<13);
fine
Dal problema al
programma
Quinza - Farina
34
Flow – Chart:
Mese per falso
Inizio
Mese
F F
V
Mese>0 AND Mese< 13
Corretto
Errato
F F
Mese>0 AND Mese< 13
VV
Dal problema al
programma
Quinza Fine
- Farina
35
Debug: Mese per falso
Algoritmo mese per falso
Variabili
Mese
numerica, intera, I
Inizio
ripeti;
scrivi(“inserisci il mese”);
leggi (Mese);
se (Mese>0) AND (Mese<13)
allora
scrivi (“mese
corretto”);
altrimenti
scrivi (“errore”);
fine se;
finché (Mese>0) AND (Mese<13);
fine
Debug per falso
1. Inserisci mese
2. Mese  14
3. 14>0 AND 14<13 ? (F)
4. Errore
5. 14>0 AND 14<13 ? (F)
6. Inserisci mese
7. Mese 1
8. 1>0 AND 1<13 ? (V)
9. Mese corretto
10. 1>0 AND 1<13 ? (V)
Dal problema al
programma
Quinza - Farina
36
Codifica: Mese per falso
Dal problema al
programma
Quinza - Farina
37
Pseudocodifica: Spesa
Dal problema al
programma
Quinza - Farina
38
Flow – Chart: Spesa
Dal problema al
programma
Quinza - Farina
39
Debug: Spesa
Dal problema al
programma
Quinza - Farina
40
Codifica: Spesa
'VARIABILI
Dim i, tot, spesa As Integer
' CONTA I NUMERI >20
tot = 0
'IL CONTATORE "i" CONTA QUANTE CELLE STO
LEGGENDO
For i = 2 To 6
spesa = Cells (i, 1)
tot = tot + spesa
Next
Range("b8") = tot
Dal problema al
programma
Quinza - Farina
41
Mappa
sequenza
Menu
Selezione
ciclo
Dal problema al
programma
media
pseudocodifica
Flow-chart
debug
cerchio
pseudocodifica
Flow-chart
debug
rettangolo
pseudocodifica
Flow-chart
debug
massimo
pseudocodifica
Flow-chart
debug
triangolo
pseudocodifica
Flow-chart
debug
reciproco
pseudocodifica
Flow-chart
debug
Mese vero
pseudocodifica
Flow-chart
debug
Mese falso
pseudocodifica
Flow-chart
debug
Spesa
pseudocodifica
Flow-chart
debug
Quinza - Farina
42
Scarica

Dal problema al programma - excel