1 / 32

Dal problema al programma

Dal problema al programma. Wilkinson D Fare clic per continuare. Indice. Sequenza Selezione Ciclo o iterazione mappa. Sequenza. Calcola la media di 3 numeri Pseudocodifica Flow-chart Debug Cerchio (area, circonferenza) Pseudocodifica Flow-chart Debug Rettangolo (area, perimetro)

Download Presentation

Dal problema al programma

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dal problema al programma Wilkinson D Fare clic per continuare

  2. Indice • Sequenza • Selezione • Ciclo o iterazione • mappa

  3. Sequenza • Calcola la media di 3 numeri PseudocodificaFlow-chartDebug • Cerchio (area, circonferenza) PseudocodificaFlow-chartDebug • Rettangolo (area, perimetro) PseudocodificaFlow-chartDebug

  4. Selezione • Trova il massimo di 3 numeri PseudocodificaFlow-chartDebug • Definisci il triangolo PseudocodificaFlow-chartDebug • Il reciproco di un numero Pseudocodifica Flow-chart Debug

  5. Ciclo o iterazione • 1 esercizio Pseudocodifica Flow-chart Debug • 2 esercizio Pseudocodifica Flow-chart Debug • 3 esercizio Pseudocodifica Flow-chart Debug

  6. Pseudocodifica: Calcola la media di 3 numeri Algoritmo media Variabili A, B, C numerica, intera, input M numerica, reale, output inizio Scrivi(“Inserisci tre numeri interi”); Leggi(A, B, C); M = (A + B + C) / 3; Scrivi(“Media =“, M); fine Private Sub Calcolamedia_Click() 'VARIABILI Dim n1, n2, n3, m As Single 'LEGGO n1 = Range("a2") n2 = Range("b2") n3 = Range("c2") 'CALCOLO m = (n1 + n2 + n3) / 3 'STAMPO Range("b4") = m End Sub

  7. Flow-chart: Calcola la media di 3 numeri inizio A, B, C M = (A, B, C) / 3 M fine

  8. Debug: Calcola la media di 3 numeri Debug • Inserisci tre numeri interi • A  4, B  6, C  8; • 6  (4+6+8) / 3 • Media = 6 Algoritmo media Scrivi(“Inserisci 3 numeri interi”); Leggi(A, B, C); M = (A + B + C) / 3; Scrivi(“Media =“, M);

  9. Pseudocodifica: Cerchio (area, circonferenza) Private Sub Calcola_Click() 'VARIABILI Dim r, a, c As Single Const pi = 3.14 'LEGGO r = Range("a2") 'CALCOLO a = (r ^ 2) * pi c = (2 * r) * pi 'STAMPO Range("c2") = a Range("d2") = c End Sub Algoritmo cerchio Variabili R numerica, reale, input A, C numerica, reale, output Costanti Pi greco = 3,14 numerica, reale inizio Scrivi (“Inserisci valore raggio); Leggi (R) ; A = R^2* 3,14; C = 2* R* 3,14; Scrivi (“Area =“, A); Scrivi (“Circonferenza =“, C); fine

  10. Flow-chart: Cerchio (area, circonferenza) Inizio R; Pi Greco=3,14 A = Pi Greco*R^2 C = 2*Pi Greco*R A; C Fine

  11. Debug: Cerchio (area, circonferenza) Algoritmo cerchio Scrivi(“Inserisci valore raggio”); Leggi (R); A = R^2* 3,14; C = 2* R* 3,14; Scrivi (“Area =“, A); Scrivi (“Circonferenza =“, C); Debug • Inserisci valore raggio • R  2 • 12,56  3,14*(2^2) • 12,56  3,14*2*2 • Area = 12,56 • Circonferenza = 12,56

  12. Pseudocodifica: Rettangolo (area, perimetro) Private Sub Calcola_Click() 'VARIABILI Dim b, h, p, a As Single 'LEGGO b = Range("a2") h = Range("b2") 'CALCOLO p = (2 * b) + (2 * h) a = b * h 'STAMPO Range("d2") = p Range("e2") = a End Sub Algoritmo rettangolo Variabili B, H numerica, reale, input inizio scrivi(“Inserire valori base e altezza”); leggi(B, H); A = B*H; P = 2*B+2*H; scrivi(“Area =“, A) scrivi(“Perimetro=“, P) fine

  13. Flow-chart: Rettangolo (area, perimetro) Inizio B, H A = B*H P = 2*B+2*H A, P fine

  14. Debug: Rettangolo (area, perimetro) Algoritmo rettangolo scrivi(“Inserire valori base e altezza”); leggi(B, H); A = B*H; P = 2*B+2*H; scrivi(“Area =“, A) scrivi(“Perimetro=“, P) Debug • Inserire valori base e altezza • B  2 • H  6 • 12  6*2 • 18  2*2+6*2 • Area = 12 • Perimetro = 18

  15. Pseudocodifica: Trova il massimo di 3 numeri PrivateSubCommandButton1_Click() 'VARIABILI Dim n1, n2, n3, m As Single 'LEGGO n1 = Range("a2") n2 = Range("a3") n3 = Range("a4") 'CALCOLO m = n1 If n2 > m Then m = n2 End If If n3 > m Then m = n3 End If 'STAMPO Range("b2") = m End Sub Algoritmo max Variabili A,B,C numerica, intera, input M numerica, intera, output Inizio scrivi (“inserisci tre numeri interi”); leggi ( A,B,C); M = A; se (B > M) allora M = B; fine se se (C> M) allora M = C; fine se scrivi(“il massimo è =“ M); fine

  16. Flow-chart: Trova il massimo di 3 numeri inizio A,B,C M = A no si B > M M = B C > M no si M = C M

  17. Debug: Trova il massimo di 3 numeri • Debug 1 • 1. Inserisci tre lati • 2. A 3, B 3, C 5 • 3. 3<>3 AND 3<>5 AND 3<>5? FALSO • 4. 3 = 3 OR 3 = 5 OR 3 = 5? • 5. Isoscele • 6. 3 = 3 AND 3 = 5 AND 3 = 5? FALSO Algoritmo max. 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) allora scrivi (“isoscele”); fine se Se (A = B) AND (B = C) AND (A = C) allora scrivi (“equilatero”); fine se Debug 3 1. inserisci tre lati 2. A 3, B 3, C 3 3. 3<>3 AND 3<>3 AND 3<>3? (F) 4. 3=3 OR 3=3 OR 3=3 ? 5. ISOSCELE 6. 3=3 AND 3=3 AND 3=3 ? 7. EQUILATERO • Debug 2 • Inserisci i tre lati • A 3, B 4, C 5 • 3<>4 AND 3<>5 AND 4<>5? • Scaleno • 3 = 4 OR 4=5 OR 3 = 5? FALSO • 3 = 4 AND 4 = 5 AND 3 = 5? FALSO

  18. Pseudocodifica: Definisci il triangolo Private Sub CommandButton1_Click() 'VARIBILI Dim l1, l2, l3 As Single 'LEGGO l1 = Range("a2") l2 = Range("a3") l3 = Range("a4") 'DEFINISCO If l1 <> l2 And l2 <> l3 And l1 <> l3 Then Range("b2") = "scaleno" End If If l1 = l2 Or l2 = l3 Or l1 = l3 Then Range("b2") = "isoscele" End If If l1 = l2 And l2 = l3 And l1 = l3 Then Range("b2") = "equilatero" End If End Sub Algoritmo triangolo Variabili A,B,C numerica, intera, input S,I,E numerica, intera, output 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) allora scrivi (“isoscele”); fine se Se (A = B) AND (B = C) AND (A = C) allora scrivi (“equilatero”); fine se Fine

  19. Flow-chart: Definisci il triangolo inizio A,B,C no A<>B AND A<>C AND B<>C si S A = B OR B = C OR A = C no si I A = B AND A = C AND B = C si E fine

  20. Debug: Definisci il triangolo • Debug 1 • 1. Inserisci tre lati • 2. A 3, B 3, C 5 • 3. 3<>3 AND 3<>5 AND 3<>5? FALSO • 4. 3 = 3 OR 3 = 5 OR 3 = 5? • 5. Isoscele • 6. 3 = 3 AND 3 = 5 AND 3 = 5? FALSO Algoritmo triangolo 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) allora scrivi (“isoscele”); fine se Se (A = B) AND (B = C) AND (A = C) allora scrivi (“equilatero”); fine se Debug 3 1. inserisci tre lati 2. A 3, B 3, C 3 3. 3<>3 AND 3<>3 AND 3<>3? (F) 4. 3=3 OR 3=3 OR 3=3 ? 5. ISOSCELE 6. 3=3 AND 3=3 AND 3=3 ? 7. EQUILATERO • Debug 2 • Inserisci i tre lati • A 3, B 4, C 5 • 3<>4 AND 3<>5 AND 4<>5? • Scaleno • 3 = 4 OR 4=5 OR 3 = 5? FALSO • 3 = 4 AND 4 = 5 AND 3 = 5? FALSO

  21. Pseudocodifica: Il reciproco di un numero Private Sub Reciproco_Click() 'VARIABILI Dim n As Single 'LEGGO n = Range("a2") 'CALCOLO If n <> 0 Then Range("b2") = 1 / n End If If n = 0 Then Range("b2") = "errore" End If End Sub Algoritmo reciproco: Variabili A numerica, intera I/O Inizio scrivi (“Inserisci un numero”); leggi (A); se (A<>0) allora scrivi (“il reciproco è =“ , 1/A); altrimenti scrivi (“errore”) fine se Fine

  22. Flow-chart: Il reciproco di un numero Inizio A no A<>0 si 1/A Fine

  23. Debug: Il reciproco di un numero • Debug 1 • Inserisci un numero • A 4 • 4<>0? • Il reciproco è 1/4 • Debug 2 • Inserisci un numero • A 0 • 0<>0 ? • Errore Algoritmo reciproco scrivi (“Inserisci un numero”); leggi (A); se (A<>0) allora scrivi (“il reciproco è =“ , 1/A); altrimenti scrivi (“errore”) fine se

  24. Pseudocodifica: Totale spesa (per falso) Algoritmo spesa Variabili P numerica, reale,I T numerica, reale, O Inizio T=0 ripeti scrivi (“inserisci prezzo”) leggi (P) T=T+P finché (P=0) scrivi (“totale =“ T); fine Algoritmo spesa Variabili P numerica, reale,I T numerica, reale, O Inizio T=0 ripeti scrivi (“inserisci prezzo”) leggi (P) T=T+P finché (P=0) scrivi (“totale =“ T); fine

  25. Flow-chart: Totale spesa (per falso) Inizio T=0 P T=T+P P=0 T Fine

  26. Debug: Totale spesa ( per falso) • Debug • 1. T 0 • 2. Inserisci prezzo • 3. P 10 • 4. T 0+10 (10) • 5. 10= 0 ? (F) • 6. Inserisci prezzo • 7. P 5 • 8. T 10+5 (15) • 9. 15=0 ? (F) • 10. Inserisci prezzo • 11. P 0 • 12. T 22+0 (22) • 13. 0=0 ? (V) • 14. Totale = 22 Algoritmo spesa T=0 ripeti scrivi (“inserisci prezzo”) leggi (P) T=T+P finché (P=0) scrivi (“totale =“ T);

  27. Pseudocodifica: Mese (per falso) Algoritmo mese Variabili M numerica,intera, I Inizio 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)) Fine

  28. Flow-chart: Mese (per falso) Inizio Fine M no si M>0 AND M< 13 Corretto Errato M>0 AND M< 13

  29. Debug: Mese (per falso) • Debug • Inserisci mese • M 17 • 17>0 AND 17< 13 ? (F) • Errore • 17>0 AND 17<13 ? (F) • Inserisci mese • M 0 • 0>0 AND 0<13 ? (F) • Errore • 0>0 AND 0<13 ? (F) • Inserisci mese • M 10 • 10>0 AND 10<13 ? (V) • Corretto • 10>0 AND 10<13 ? (V) Algoritmo mese 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))

  30. Pseudocodifica: Mese (per vero) Algoritmo mese Variabili M numerica, intera, I Inizio M=0 Esegui mentre (M<1) OR (M>12) scrivi (“inserisci mese”) leggi (M) se (M>0) AND (M< 13) allora scrivi (“corretto”) altrimenti scrivi (“errore”) fine se Ripeti fine

  31. Flow-chart: Mese (per vero) Inizio M=0 Vero M<1 OR M>12 M M>0 AND M<13 Errato Corretto Fine

  32. Debug: Mese (per vero) • Debug • M 0 • 0 <1 OR 0>12 ? (V) • Inserisci mese • M 15 • 15>0 AND 15< 13 ? (F) • Errore • 15>0 AND 15< 13 ? (F) • Inserisci mese • M 9 • 9>0 AND 9<13 ? (V) • Corretto • 9<1 OR 9>12 ? (F) Algoritmo mese M=0 Esegui mentre (M<1) OR (M>12) scrivi (“inserisci mese”) leggi (M) se (M>0) AND (M< 13) allora scrivi (“corretto”) altrimenti scrivi (“errore”) fine se Ripeti

More Related