Dal problema al programma
Mariangeloni Chiara
Cassisi Jodie
Indice
Sequenza
 Selezione
 Ciclo o iterazione
 Codifica

Dal problema al programma
2
Sequenza

Calcola la media di 3 numeri
pseudocodifica

debug
Cerchio (area,circonferenza)
pseudocodifica

flow-chart
flow-chart
debug
Rettangolo (area,perimetro)
pseudocodifica
flow-chart
debug
Dal problema al programma
3
Selezione

Massimo
Pseudocodifica

Debug
Flow-chart
Debug
Flow-chart
Debug
Triangolo
Pseudocodifica

Flow-chart
Reciproco
Pseudocodifica
Dal problema al programma
4
Ciclo o iterazione

Mese per falso
Pseudocodifica

Debug
Mese per vero
Pseudocodifica

Flow-chart
Flow-chart
Debug
Flow-chart
Debug
Spesa
Pseudocodifica
Dal problema al programma
5
Codifica








Media di tre numeri
Cerchio
Rettangolo
Reciproco
Mese per vero
Mese per falso
Definisci il triangolo
Massimo tra tre numeri
Pseudocodifica: calcola la media di 3 numeri
Algoritmo media.
Variabili
A,B,C numerica,intere,imput
M
numerica,reale,output
Inizio
Scrivi(‘’inserisci tre numeri interi’’)
Leggi(A,B,C)
Scrivi(‘’Media =‘’,M)
Fine
Dal problema al programma
7
Flow-chart: calcola la media di 3
numeri
Inizio
A,B,C
M = (A,B,C)/3
M
Fine
Dal problema al programma
8
Debug: Calcola la media di 3 numeri
Algoritmo media
Scrivi(‘’inserisci tre numeri interni’’)
Leggi(A,B,C)
M = (A+B+C)/3
Scrivi (“ Media= ‘’, M)
Debug
1. Inserisci tre numeri interi
2. A  4, B  6,C  8
3. 6  (4+6+8)/3
4. . Media = 6
Dal problema al programma
9
Pseudocodifica: Cerchio (area,circonferenza)
Algoritmo cerchio
Variabili
Raggio
Numero reale,input
Circonferenza,Area Numero reale,output
Costanti
Pigreco = 3.14 numero reale
Inizio
Scrivi(‘’inserisci raggio’’);
Leggi(raggio);
Circonferenza = 2*pigreco*raggio;
Area = pigreco*raggio^2
Scrivi(“Circonferenza= “ , Circonferenza)
Scrivi(“Area= “, Area”)
Fine
Dal problema al programma
10
Flow-chart: cerchio (area,circonferenza)
Inizio
Raggio
Circonferenza = 2*pigreco*raggio
Area=pigreco*raggio^2
Circonferenza,Area
Fine
Dal problema al programma
11
Debug: cerchio(area,circonferenza)
Algoritmo cerchio
Scrivi(‘’inserisci Raggio’’);
Leggi(Raggio);
Circonferenza = 2*pigreco*raggio;
Area = pigreco*raggio^2
Scrivi(“Circonferenza= “ ,
Circonferenza)
Scrivi(“Area= “, Area”)
Debug
1.
Inserisci raggio
2.
Raggio  6
3.
Circonferenza = 2*3.14*6
4.
Area = 3.14*6^2
5.
Circonferenza= 37.68
6.
Area= 113.04
Dal problema al programma
12
Pseudocodifica: rettangolo (area,perimetro)
Variabili
B,H
A,P
numerica reale,imput
numerica reale,output
Inizio
Scrivi: (‘’inserisci base e altezza);
Leggi: (B,H);
Area = B*H
Perimetro = 2*(B+H)
Scrivi(“Area= “ , A)
Scrivi(“Perimetro= “, P”)
Fine
Dal problema al programma
13
Flow – chart: rettangolo (area, perimetro)
inizio
B, H
A = B*H
P = 2*(B+H)
A, P
Dal problema al programma
14
Debug: rettangolo (area,perimetro)
Algoritmo rettangolo
Scrivi: (‘’inserisci base e
altezza);
Leggi: (B,H);
Area = B*H
Perimetro = 2*(B+H)
Scrivi(“Area= “ , A)
Scrivi(“Perimetro= “, P”)
Debug
1.
2.
3.
4.
5.
6.
Inserisci base e altezza
B5,H2
A  5*2
P  2*(5+2)
Area = 10
Perimetro = 14
Dal problema al programma
15
Pseudocodifica:Trova il massimo di 3 numeri
Algoritmo Massimo
Variabili
A,B,C
numerica,intera,input
Max
numerica,intera,output
Inizio
Scrivi(“Inserisci tre numeri interi”);
Leggi(A,B,C);
Max=B
fine se
Se(C> Max)allora
Max=C;
fine se
Scrivi(“il massimo è = “, Max);
fine
Dal problema al programma
16
Flow-chart: trova il massimo tra 3 numeri
inizio
A, B, C
MAX = A
B>MAX
MAX = B
C>MAX
MAX = C
Max
fine
Dal problema al programma
17
Debug: trova il massimo tra 3 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);
Debug 1
Debug 2
1.
Inserisci tre numeri interi
1. Inserisci tre numeri interi
2.
A 4, B6, C8
2. A14, B6, C8
3.
Max=4
3. Max = 4
4.
6>4?
4. 16>4?
5.
Max6
5. Max16
6.
8>6?
6. 8>16?
7.
Max8
7. Il massimo è = 16
8.
Il massimo è=8
Debug 3
Debug 4
1. Inserisci 3 numeri interi
1. Inserisci tre numeri interi
2. A14, B6, C8
2. A4, B4, C4
3. Max = 14
3. Max=4
4. 6>14?
4. 4>4?
5. 8>14?
5. 4>4?
6. Il massimo è = 14
6. Il massimo è = 4
Dal problema al programma
18
Pseudocodifica: Definisci il triangolo
Algoritmo Triangolo
Variabili
Dato in input tre lati di
A, B, C numerica, intera, input
un triangolo, dire in
inizio
output se il triangolo è:
Scrivi(“inserisci i tre lati del triangolo”);
-Scaleno
Leggi(A, B, C);
Se (A<>B) AND (B<>C) AND (A<>C) allora-Isoscele
Scrivi(“scaleno”);
-Equilatero
fine se
Se (A=B) OR (B=C) OR (A=C) allora
Scrivi(“isoscele”);
fine se
Se (A=B) AND (B=C) AND (A=C) allora
Scrivi (“equilatero”);
fine se
fine
Dal problema al programma
19
Flow-chart: definisci il triangolo
inizio
A, B, C
No
(A<>B)AND(B<>C)AND(C<>A)
No
(A=B)OR(B=C)OR(C=A)
Sì
Scaleno
Sì
Isoscele
No
(A=B)AND(B=C)AND(C=A)
Sì
Equilatero
Fine
Debug: definisci il triangolo
Algoritmo triangolo
Variabili
A, B, C
Inizio
scrivi(“inserisci 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)allora
scrivi(“isoscele”);
fine se
se(A=B)AND(B=C)AND(C=A)allora
scrivi(“equilatero”);
fine se
fine
Debug 1
1. Inserisci i tre lati del triangolo
2. A2, B4,C8
3. (2<>4)AND(4<>8)AND(8<>2) (V)
4. Scaleno
5. (2=4)OR(4=8)OR(8=2) (F)
6. (2=4)AND(4=8)AND(8=2) (F)
Debug 2
1. Inserisci i tre lati del triangolo
2. A2, B2, C8
3. (2<>)AND(2<>8)AND(8<>2) (F)
4. (2<>2)OR(2<>8)OR(8<>2) (v)
5. Isoscele
6. (2<>2)AND(2<>8)AND(8<>2) (F)
Debug 3
1. Inserisci i tre lati del triangolo
2. A8, B8, C8
3. (8<>8)AND(8<>8)AND(8<>8) (F)
4. (8=8)OR(8=8)OR(8=8) (F)
5. (8=8)AND(8=8)AND(8=8) (V)
6. Equilatero
Pseudocodifica: reciproco
Algoritmo reciproco
Variabili
A numerica, intera, I
Inizio
scrivi (“inserisci un numero”);
leggi (A);
se ( A <> 0) allora
scrivi (“1/”A);
se no
scrivi(“errore”);
fine
Dal problema al programma
22
Flow-chart: reciproco
inizio
A
(A<>0)
1/A
errore
fine
Debug: reciproco
Algoritmo reciproco
scrivi (“inserisci un numero”);
leggi (A);
se ( A <> 0) allora
scrivi (“1/”A);
altrimenti
scrivi(“errore”);
fine se
Debug 1
Inserisci un numero
A4
(4 <> 0) ? (V)
¼
Debug 2
Inserisci un numero
A0
(0 <>0) ? (F)
errore
Pseudocodifica: mese falso
Algoritmo mese
Variabili
M
Numerica intera,I
Inizio
Ripeti
Scrivi(“Inserisci mese”);
Leggi(M);
Se(M>0)AND(M<13) allora
scrivi(“mese inserito corretto”);
altrimenti(“errore reinserici”)
Fine se
Finché (M>0)AND(M<13)
Fine
Flow-chart: mese
M
M=
falso
condizione
vero
Debug: mese
RIPETI
Scrivi(“Inserisci mese”);
Leggi(M);
Se (M>0)AND(M<13) allora
scrivi(“mese inserito corretto”);
altrimenti
scrivi(“errore reinserici”)
Fine se
Finché (M>0)AND(M<13)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Inserisci mese
M14
14>0 AND 14<13 ? (F)
errore reinserici
14>0 AND 14<13 ? (F)
Inserisci mese
M1
1<0 AND 1<13 ? (V)
Mese inserito corretto
1>0 AND 1<13 ? (V)
Pseudocodifica: mese vero
Algoritmo mese
Variabili
M
Numerica intera,I
Inizio
M=0;
Esegui mentre((M>12)OR(M<1))
Scrivi(“Inserisci mese”);
Leggi(M);
Se(M>0)AND(M<13) allora
scrivi(“mese inserito corretto”);
altrimenti
scrivi(“errore reinserici”);
Fine se
ripeti
Fine
Flow-chart: mese
condizione
vero
M
M=
falso
Debug: mese
Ripeti
Scrivi(“Inserisci mese”);
Leggi(M);
Se(M>0)AND(M<13) allora
scrivi(“mese inserito corretto”);
Fine se
fine
1. Inserisci mese
2. M1
3.1>0 AND 1<13 ? (V)
4. Mese inserito corretto
5. 1>0 AND 1<13 ? (V)
Codifica: media di tre numeri
Private Sub mediadi tre numeri_Click()
'VARIABILI
Dim numero1, numero2, numero3, media As Single
'ACQUISIZIONE DELLE VARIABILI NELLE CELLE
numero1 = Range("b1")
numero2 = Range("b2")
numero3 = Range("b3")
'CALCOLO IL VALORE DELLA MEDIA
media = (numero1 + numero2 + numero3) / 3
'MEDIA
Range("b4") = media
End Sub
Codifica:cerchio
Private Sub cerchio_Click()
'VARIABILI
Dim raggio, area, circonferenza, pigreco As Single
'ACQUISIZIONE DEI VALORI NELLE CELLE
raggio = Range("b1")
circonferenza = Range("b2")
area = Range("b3")
pigreco = 3.14
'CALCOLO I VALORI
circonferenza = 2 * pigreco * raggio
area = pigreco * raggio ^ 2
'ACQUISIZIONE DEI VALORI NELLE CELLE
Range("b2") = circonferenza
Range("b3") = area
End Sub
Codifica: rettangolo
Private Sub rettangolo_Click()
'VARIABILI
Dim base, altezza, area, perimetro As Single
'ACQUISIZIONE DEI VALORI NELLE CELLE
base = Range("b1")
altezza = Range("b2")
area = Range("b3")
perimetro = Range("b4")
'CALCOLO I VALORI
area = base * altezza
perimetro = 2 * (base + altezza)
'ACQUISIZIONE DEI VALORI NELLE CELLE
Range("b3") = area
Range("b4") = perimetro
End Sub
Codifica:massimo tra tre numeri
Private Sub rettangolo_Click()
'VARIABILI
Dim base, altezza, area, perimetro As Single
'ACQUISIZIONE DEI VALORI NELLE CELLE
base = Range("b1")
altezza = Range("b2")
area = Range("b3")
perimetro = Range("b4")
'CALCOLO I VALORI
area = base * altezza
perimetro = 2 * (base + altezza)
'ACQUISIZIONE DEI VALORI NELLE CELLE
Range("b3") = area
Range("b4") = perimetro
End Sub
Codifica:definisci il triangolo
Private Sub Definiscitriangolo_Click()
'variabili
Dim lato1, lato2, lato3 As Single
'acquisisci valori dalle celle
lato1 = Range("b1")
lato2 = Range("b2")
lato3 = Range("b3")
'definisci triangolo
If (lato1 <> lato2) And (lato2 <> lato3) And (lato1 <> lato3) Then
Range("a5") = "scaleno"
End If
If (lato1 = lato2) Or (lato2 = lato3) Or (lato1 = lato3) Then
Range("a5") = "isoscele"
End If
If (lato1 = lato2) And (lato2 = lato3) Then
Range("a5") = "equilatero"
End If
End Sub
Codifica: reciproco
Private Sub reciproco_Click()
'variabili
Dim numero As Single
'acquisisci valori dalle celle
numero = Range("b1")
'calcola il valore del reciproco
If (numero <> 0) Then
Range("a3") = 1 / numero
Else
Range("a3") = "errore"
End If
End Sub
Codifica:mese per vero
Private Sub mesepervero_Click()
'variabili
Dim mese As Single
'acquisisci valori dalle celle
mese = Range("b1")
'calcola mese giusto
If (mese < 1) Or (mese > 12) Then
Range("a3") = "errore"
Else: Range("a3") = "mese corretto"
End If
End Sub
Codifica:mese per falso
Private Sub meseperfalso_Click()
'variabili
Dim mese As Single
'acquisisci valori dalle celle
mese = Range("b1")
'calcola mese scorretto
If (mese > 1) Or (mese < 12) Then
Range("a3") = "corretto"
Else: Range("a3") = "mese scorretto"
End If
End Sub
Mappa
sequenza
Indice
selezione
ciclo
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
Dal problema al programma
Scarica

Dal problema al programma - excel