Upload
nita-barron
View
34
Download
0
Embed Size (px)
DESCRIPTION
Dal problema al programma. Mancarella Francesca Zuelli Lorenzo. Indice. Sequenza. Selezione. Ciclo o iterazione. Sequenza. Calcola la media di 3 numeri Pseudocodifica Flow-chart Debung Codifica. Cerchio (area,circonferenza) Pseudocodifica Flow-chart Debung Codifica. - PowerPoint PPT Presentation
Citation preview
Dal problema al programma
Mancarella FrancescaZuelli Lorenzo
Dal problema al programma 2Mancarella - Zuelli
Indice
Sequenza Selezione Ciclo o iterazione
Dal problema al programma 3Mancarella - Zuelli
Sequenza
Calcola la media di 3 numeri Pseudocodifica Flow-chart Debung Codifica Cerchio (area,circonferenza) Pseudocodifica Flow-chart Debung Codifica
Rettangolo (area,perimetro) Pseudocodifica Flow-chart Debung Codifica
Dal problema al programma 4Mancarella - Zuelli
Selezione
Trova il massimo di 3 numeri Pseudocodifica Flow-chart Debung Codifica
Definisci il triangolo Pseudocodifica Flow-chart Debung Codifica
Reciproco di un numeroPseudocodifica Flow-chart Debung Codifica
Dal problema al programma 5Mancarella - Zuelli
Ciclo o iterazione Mese (per falso)
Pseudocodifica Flow-chart Debung Codifica
Mese (per vero) PseudocodificaFlow-chart Debung Codifica
Spesa PseudocodificaFlow-chart Debung Codifica
Dal problema al programma 6Mancarella - Zuelli
Pseudocodifica: Calcola la media di 3 numeri
Algoritmo mediaVariabiliA, B, C numerica, intera, inputM numerica, reale, output
inizioScrivi(“inserisci tre numeri interi”);Leggi(A, B, C)M = (A + B + C) / 3;Scrivi(“Media = “,M)
fine
Dal problema al programma 7Mancarella - Zuelli
Flow-chart: Calcola la media di 3 numeri
inizio
A, B, C
M = (A+B+C) / 3
fine
M
Dal problema al programma 8Mancarella - Zuelli
Debung: Calcola la media di 3 numeriAlgoritmo media
Scrivi(“inserisci tre numeri interi”);
Leggi(A, B, C);M = (A + B + C) / 3;Scrivi(“Media = “, M);
Debung
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 9Mancarella - Zuelli
Codifica: Calcola la media di tre numeri Private Sub media_Click() 'VARIABILI Dim primonumero, secondonumero, terzonumero As Integer Dim Media As Integer 'ACQUISIZIONE DEI VALORI DELLE CELLE primonumero = Range("b2") secondonumero = Range("b3") terzonumero = Range("b4") 'CALCOLO IL VALORE DELLA MEDIA Media = (primonumero + secondonumero + terzonumero) / 3 'STAMPO IL VALORE DELLA MEDIA Range("b5") = Media End Sub
Dal problema al programma 10Mancarella - Zuelli
Pseudocodifica: Calcolare circonferenza e area di un cerchio di cui conosciamo il raggio
Algoritmo cerchioVariabiliraggio numero, reale, IArea,circonferenza numero, reale,O
CostantePigreco = 3,14 numero,reale
inizioScrivi(“Inserisci raggio”);Leggi(raggio);Area = (raggio^2*Pigreco);Circonferenza = (2*Pigreco*raggio);Scrivi(“Area = “, Area);Scrivi(“Circonferenza = “, Circonferenza);
fine
Dal problema al programma 11Mancarella - Zuelli
Flow-chart: circonferenza e areainizio
raggio
Area = (Raggio^2*Pigreco)
fine
Circonferenza = (2*Raggio*Pigreco)
Area
Circonferenza
Dal problema al programma 12Mancarella - Zuelli
Debug:circonferenza e areaAlgoritmo cerchio
Scrivi(“Inserisci raggio”);Leggi(raggio);Area = (raggio^2*Pigreco);Circonferenza = (2*Pigreco*raggio);Scrivi(“Area = “, Area);Scrivi(“Circonferenza = “, Circonferenza);
Debug
1. Inserisci raggio
2. raggio 10, Pigreco 3,14
3. 31,4 (10^2*3,14);
4. 62.8 (2*3,14*10);
5. Area = 31,4
6. Circonferenza = 62,8
Dal problema al programma 13Mancarella - Zuelli
Codifica: Calcolare circonferenza e areaPrivate Sub Cerchio_Click() ' VARIABILI Dim Raggio, Circonferenza, Area As Single ' COSTANTE
Const pigreco = 3.14 'ACQUISIZIONE DEI VALORI DELLE CELLE Raggio = Range("b1") ' CALCOLO IL VALORE DELLA CIRCONFERENZA Circonferenza = pigreco * Raggio * 2 ' CALCOLO IL VALORE DELL'AREA Area = pigreco * Raggio * Raggio 'STAMPO NELLA CELLA B2 IL RISULTATO:
CIRCONFERENZA Range("b2") = Circonferenza 'STAMPO NELLA CELLA B3 IL RISULTATO: AREA Range("b3") = AreaEnd Sub
Dal problema al programma 14Mancarella - Zuelli
Pseudocodifica: Calcolare area e perimetro di un rettangoloAlgoritmo rettangoloVariabiliB,H numerica, reale, IA,2P numerica, reale,O
inizioScrivi(“Inserisci base,altezza”);Leggi(B,H);A = (B*H);2P = (2B*2H);Scrivi(“ A = “ A);Scrivi (“ 2P = “ 2P);
fine
Dal problema al programma 15Mancarella - Zuelli
Flow-chart: area e perimetro di un rettangolo
inizio
B,H
Area = (B*H)
fine
Perimetro = (2B*2H)
Area
Perimetro
Dal problema al programma 16Mancarella - Zuelli
Debug: area e perimetro di un rettangoloAlgoritmo rettangolo
Scrivi(“Inserisci base,altezza”);Leggi(B,H);A = (B*H);2P = (2*B+2*H);Scrivi(“ A = “ A);Scrivi (“ 2P = “ 2P);
Debung
1. Inserisci base,altezza
2. B 10, H 5
3. 50 (10*5);
4. 30 (2*10+2*5);
5. Area = 50
6. Altezza = 30
Dal problema al programma 17Mancarella - Zuelli
Codifica: area e perimetro di un rettangoloPrivate Sub areaeperimetro_Click() 'VARIABILI Dim altezza, base As Integer Dim area, perimetro As Integer 'ACQUISIZIONE DEI VALORI DELLE CELLE altezza = Range("b2“) base = Range("b3") 'CALCOLO IL VALORE DEL PERIMETRO perimetro = (base * 2) + (altezza * 2) 'CALCOLO IL VALORE DELL'AREA area = base * altezza 'STAMPO IL VALORE DEL PERIMETRO Range("b6") = perimetro 'STAMPO IL VALORE DELL'AREA Range("b5") = areaEnd Sub
Dal problema al programma 18Mancarella - Zuelli
Pseudocodifica: Trova il massimo di 3 numeri
Algoritmo MassimoVariabili A,B,C numerica, intera, IMax numerica, intera, O
inizioScrivi(“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 19Mancarella - Zuelli
Flow-chart: trova il massimo tra 3 numeri interi inizio
A, B, C
Max = A
B>Max
Max = B
No
C>MaxMax = C
Max
fine
No
Si
Si
Dal problema al programma 20Mancarella - Zuelli
Debug: trova il massimo tra 3 numeri interi
Algoritmo massimoScrivi(“Inserisci tre numeri interi”); Leggi(A, B, C)Max=A;Se (B>Max) allora
Max=Bfine se Se (C>Max) allora
Max=C;fine se Se(“Il Massimo è = “, Max);
Debug 1
1. Inserisci tre numeri interi
2. A 4, B 6, C 8
3. Max=4
4. 6>4 ?
5. Max 6
6. 8>6 ?
7. Max 8
8. Il massimo è = 8
Debug 2
1. Inserisci tre numeri interi
2. A 4, B 16, C 8
3. Max=4
4. 16>4 ?
5. Max 16
6. 8>16 ?
7. Il massimo è = 16
Debug 3
1. Inserisci tre numeri interi
2. A 14, B 6, C 8
3. Max=14
4. 6>14 ?
5. 8>14 ?
6. Il massimo è = 14
Debug 4
1. Inserisci tre numeri interi
2. A 14, B 4, C 4
3. Max=4
4. 4>4 ?
5. 4>4 ?
6. Il massimo è = 4
Dal problema al programma 21Mancarella - Zuelli
Codifica: trova il massimo di tre numeri
Private Sub massimo_Click() 'VARIABILI Dim primonumero, secondonumero, terzonumero As
Integer Dim massimo As Integer 'ACQUISIZIONE DEL VALORE DELLE CELLE primonumero = Range("b2") secondonumero = Range("b3") terzonumero = Range("b4") 'CONTROLLO DEI NUMERI (SELEZIONE) massimo = primonumero If (secondonumero > massimo) Then massimo = secondonumero End If If (terzonumero > massimo) Then massimo = terzonumero End If 'STAMPO IL VALORE DEL MASSIMO Range("b6") = massimoEnd Sub
Dal problema al programma 22Mancarella - Zuelli
Pseudocodifica: Definisci il triangoloAlgoritmo TriangoloVariabiliA, B, C numerica, intera, I
inizioScrivi(“Inserisci i tre lati del triangolo”);Leggi(A,B,C);Se (A<>B) AND (B<>C) AND (C<>A) allora
Scrivi(“Scaleno”);fine seSe (A<>B) OR (B<>C) OR (C<>A) allora
Scrivi(“Isoscele”)fine se Se (A=B) AND (B=C) AND (A=C) allora
Scrivi(“Equilatero”);fine se
fine
Dato in input 3 lati di un triangolo, dire in output se il triangolo è:
-Scaleno
-Isoscele
-Equilatero
Dal problema al programma 23Mancarella - Zuelli
Flow-chart: Definisci il triangolo
Scaleno
Isoscele
Equilatero
inizio
A, B, C
(A<>B) AND (B<>C) AND (A<>B)
(A=B) OR (B=C) OR (A=C)
(A=B) AND (B=C) AND (A=C)
fine
Dal problema al programma 24Mancarella - Zuelli
Debug: Definisci il triangoloAlgoritmo TriangoloVariabiliA, B, C numerica, intera, I
inizioScrivi(“Inserisci i tre lati del triangolo”);Leggi(A,B,C);Se (A<>B) AND (B<>C) AND (C<>A) allora
Scrivi(“Scaleno”);fine seSe (A<>B) OR (B<>C) OR (C<>A) allora
Scrivi(“Isoscele”)fine se Se (A=B) AND (B=C) AND (A=C) allora
Scrivi(“Equilatero”);fine se
fine
Debug 1
1. Inserisci tre lati del triangolo
2. A 2, B 5, C 10
3. (2<>5) AND (5<>10) AND (2<>10) ? (V)
4. Scaleno
5. (2=5) OR (5=10) OR (2=10) ? (F)
6. (2=5) AND (5=10) AND (2=10) ? (F)
Debug 2
1. Inserisci tre lati del triangolo
2. A 2, B 2, C 8
3. (2<>2) AND (2<>8) AND (2<>8) ? (F)
4. (2=2) OR (2=8) OR (2=2) ? (V)
5. Isoscele
6. (2=2) AND (2=8) OR (2=2) ? (F)Debug 3
1. A 5, B 5, C 5
2. (5<>5) AND (5<>5) AND (5<>5) ? (F)
3. (5=5) OR (5=5) OR (5=5) ? (V)
4. Isoscele
5. (5=5) AND (5=5) AND (5=5) ? (V)
6. Equilatero
Dal problema al programma 25Mancarella - Zuelli
Codifica: Definisci il triangoloPrivate Sub Triangolo_Click() ' VARIABILI Dim primolato, secondolato, terzolato As Integer ' ACQUISIZIONE DEI VALORI DELLE CELLE primolato = Cells(1, 2) secondolato = Cells(2, 2) terzolato = Cells(3, 2) ' CONTROLLO DEI NUMERI (SELEZIONE) If (primolato <> secondolato And secondolato <> terzolato And terzolato <>
primolato) Then Range("c1") = "scaleno" ElseIf (primolato = secondolato) And (secondolato = terzolato) And (terzolato
= primolato) Then Range("c1") = "equilatero" ElseIf (primolato <> secondolato) Or (secondolato <> terzolato) Or (terzolato
<> primolato) Then Range("c1") = "iscoscele" End IfEnd sub
Dal problema al programma 26Mancarella - Zuelli
Pseudocodifica: Reciproco di un numeroAlgoritmo ReciprocoVariabili A numerica, intera, I
inizioScrivi(“Inserisci un numero”);Leggi(A);Se (A<>0) allora
Scrivi(“Il reciproco è: “,1/A)altrimenti
Scrivi(“Errore”)
fine
Dal problema al programma 27Mancarella - Zuelli
Flow-chart: Reciproco di un numero
inizio
A
(A<>0)
Errore 1/A
fine
Dal problema al programma 28Mancarella - Zuelli
Debug: Reciproco di un numeroAlgoritmo ReciprocoVariabili A numerica, intera, I
inizioScrivi(“Inserisci un numero”);Leggi(A);Se (A<>0) allora Scrivi(“Il reciproco è: “,1/A)altrimenti Scrivi(“Errore”)
fine
Debug 1
1. Inserisci un numero
2. A 2
3. (2<>0) ? (V)
4. Il reciproco è : ½
Debug 2
1. Inserisci un numeri
2. A 0
3. (0<>0) ? (F)
4. Errore
Dal problema al programma 29Mancarella - Zuelli
Codifica: Reciproco di un numeroPrivate Sub reciproco_Click() 'VARIABILI Dim numero, reciproco, errore As Integer 'ACQUISIZIONE DEL VALORE DELLE CELLE numero = Range("b1") 'CONTROLLO DEI NUMERI (SELEZIONE) If (numero <> 0) Then Range("b3") = 1 / numero Else Range("b3") = "errore“ End If End Sub
Dal problema al programma 30Mancarella - Zuelli
Pseudocodifica: Mese (per falso)Algoritmo mese Variabili M numerica,intera,I
inizioripeti
Scrivi(“Inserisci mese”);Leggi(M);Se(M>0) AND (M<13) allora
Scrivi(“Mese inserito corretto”)Altrimenti
Scrivi(“Errore,reinserire)”fine se
finché((M>12) OR (M<1))fine
Dal problema al programma 31Mancarella - Zuelli
Flow-chart : Mese (per falso)
OK
inizio
M
(M>0) AND (M<13)ERRORE
(M>0) AND (M<13)
fine
sino
vero
falso
Dal problema al programma 32Mancarella - Zuelli
Debug : Mese (per falso)Ripeti
scrivi (“Inserisci mese”)leggi (M)se (M > 0 ) AND (M < 13) allora
scrivi (“corretto”)altrimenti
scrivi (“Errore”)Fine se
Finché ((M>0) AND (M<13))
Debug1. Inserisci mese 2. M 173. 17>0 AND 17< 13 ? (F) 4. Errore5. 17>0 AND 17<13 ? (F)6. Inserisci mese7. M 08. 0>0 AND 0<13 ? (F)9. Errore10. 0>0 AND 0<13 ? (F)11. Inserisci mese 12. M 1013. 10>0 AND 10<13 ? (V)14. Corretto15. 10>0 AND 10<13 ? (V)
Dal problema al programma 33Mancarella - Zuelli
Codifica: Mese (per falso)Private Sub mese_Click() 'VARIABILI Dim mese, corretto, errore As Integer 'ACQUISIZIONE DEL VALORE DELLE
CELLE mese = Range("b1") 'CONTROLLO DEI NUMERI
(SELEZIONE) If (mese > 0) And (mese < 13) Then Range("c1") = "corretto" Else Range("c1") = "errore" End IfEnd Sub
Dal problema al programma 34Mancarella - Zuelli
Pseudocodifica : Mese (per vero)Algoritmo mese Variabili M numerica,intera,I
Iniziom=0esegui 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,reinserire)”fine se
fine
Dal problema al programma 35Mancarella - Zuelli
Flow-chart : Mese (per vero)
OK
inizio
M
(M<=0)or (M>12)
ERRORE(M>0) AND (M<13)
fine
vero
M=0
falso
falso
Dal problema al programma 36Mancarella - Zuelli
Debug: Mese (per vero)Algoritmo mese Variabili M numerica,intera,I
Iniziom=0esegui mentre ((M>12) OR (M<1))
Scrivi(“Inserisci mese”);Leggi(M);Se(M>0) AND (M<13) allora
Scrivi(“Mese inserito corretto”)
AltrimentiScrivi(“Errore,reinserire)”
fine se fine
Debug
1. M 0
2. 0<1 OR 0>12 ? (V)
3. Inserisci mese
4. M 14
5. Errore, reinserire
6. 14<1 OR 14>12 ? (V)
7. Inserisci mese
8. M 6
9. Mese inserito corretto
10. 6<1 OR 6>12 ? (F)
Dal problema al programma 37Mancarella - Zuelli
Pseudocodifica: SpesaAlgoritmo spesaVariabiliP numerica, reale,I T numerica, reale, O Inizio
T=0ripeti
scrivi (“inserisci prezzo”)leggi (P)T=T+P
finché (P=0)scrivi (“totale =“ T);
fine
Dal problema al programma 38Mancarella - Zuelli
Flow-chart : Spesainizio
T=0
P
T=T+P
P=0
T
fine
Dal problema al programma 39Mancarella - Zuelli
Debug: SpesaAlgoritmo spesaVariabiliP numerica, reale,I T numerica, reale, O Inizio
T=0ripeti
scrivi (“inserisci prezzo”)leggi (P)T=T+P
finché (P=0)scrivi (“totale =“ T);
fine
Debug 1. T 02. Inserisci prezzo 3. P 104. T 0+10 (10)5. 10= 0 ? (F)6. Inserisci prezzo7. P 58. T 10+5 (15)9. 15=0 ? (F)10. Inserisci prezzo11. P 012. T 22+0 (22)13. 0=0 ? (V)14. Totale = 22
Dal problema al programma 40Mancarella - Zuelli
Codifica: spesaPrivate Sub spesa_Click() Dim prodotto, tot As Single Dim i As Integer tot = 0 For i = 1 To 5 prodotto = Cells(i, 2) tot = tot + prodotto Next Range("b7") = totEnd Sub
Dal problema al programma 41Mancarella - Zuelli
Mappa Debug
Debug
Debug
menu
Sequenza
Ciclo
Selezione
Media
Cerchio
Rettangolo
Massimo
Triangolo
Reciproco
Mese (falso)
Mese (vero)
Spesa
Pseudocodifica
Pseudocodifica
Pseudocodifica
Pseudocodifica
Pseudocodifica
Pseudocodifica
Pseudocodifica
Pseudocodifica
Pseudocodifica
Flow-chart
Flow-chart
Flow-chart
Flow-chart
Flow-chart
Flow-chart
Flow-chart
Flow-chart
Flow-chart
Debug
Debug
Debug
Debug
Debug
Debug