1 / 41

Dal problema al programma

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.

nita-barron
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 Mancarella Francesca Zuelli Lorenzo

  2. Indice • Sequenza • Selezione • Ciclo o iterazione Dal problema al programma

  3. Sequenza • Calcola la media di 3 numeri PseudocodificaFlow-chartDebungCodifica • Cerchio (area,circonferenza) PseudocodificaFlow-chartDebungCodifica • Rettangolo (area,perimetro) PseudocodificaFlow-chartDebungCodifica Dal problema al programma

  4. Selezione • Trova il massimo di 3 numeri PseudocodificaFlow-chartDebungCodifica • Definisci il triangolo PseudocodificaFlow-chartDebungCodifica • Reciproco di un numero PseudocodificaFlow-chartDebungCodifica Dal problema al programma

  5. Ciclo o iterazione • Mese (per falso) PseudocodificaFlow-chartDebungCodifica • Mese (per vero) PseudocodificaFlow-chartDebung Codifica • Spesa PseudocodificaFlow-chartDebungCodifica Dal problema al programma

  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 Dal problema al programma

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

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

  9. 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

  10. Pseudocodifica: Calcolare circonferenza e area di un cerchio di cui conosciamo il raggio Algoritmo cerchio Variabili raggio numero, reale, I Area,circonferenza numero, reale,O Costante Pigreco = 3,14 numero,reale inizio Scrivi(“Inserisci raggio”); Leggi(raggio); Area = (raggio^2*Pigreco); Circonferenza = (2*Pigreco*raggio); Scrivi(“Area = “, Area); Scrivi(“Circonferenza = “, Circonferenza); fine Dal problema al programma

  11. inizio raggio Area = (Raggio^2*Pigreco) Circonferenza = (2*Raggio*Pigreco) Area Circonferenza fine Flow-chart: circonferenza e area Dal problema al programma

  12. Debug:circonferenza e area • Debug • Inserisci raggio • raggio  10, Pigreco  3,14 • 31,4  (10^2*3,14); • 62.8  (2*3,14*10); • Area = 31,4 • Circonferenza = 62,8 Algoritmo cerchio Scrivi(“Inserisci raggio”); Leggi(raggio); Area = (raggio^2*Pigreco); Circonferenza = (2*Pigreco*raggio); Scrivi(“Area = “, Area); Scrivi(“Circonferenza = “, Circonferenza); Dal problema al programma

  13. Codifica: Calcolare circonferenza e area Private 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") = Area End Sub Dal problema al programma

  14. Pseudocodifica: Calcolare area e perimetro di un rettangolo Algoritmo rettangolo Variabili B,H numerica, reale, I A,2P numerica, reale,O inizio Scrivi(“Inserisci base,altezza”); Leggi(B,H); A = (B*H); 2P = (2B*2H); Scrivi(“ A = “ A); Scrivi (“ 2P = “ 2P); fine Dal problema al programma

  15. inizio B,H Area = (B*H) Perimetro = (2B*2H) Area Perimetro fine Flow-chart: area e perimetro di un rettangolo Dal problema al programma

  16. Debug: area e perimetro di un rettangolo • Debung • Inserisci base,altezza • B  10, H  5 • 50  (10*5); • 30  (2*10+2*5); • Area = 50 • Altezza = 30 Algoritmo rettangolo Scrivi(“Inserisci base,altezza”); Leggi(B,H); A = (B*H); 2P = (2*B+2*H); Scrivi(“ A = “ A); Scrivi (“ 2P = “ 2P); Dal problema al programma

  17. Codifica: area e perimetro di un rettangolo Private 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") = area End Sub Dal problema al programma

  18. Pseudocodifica: Trova il massimo di 3 numeri Algoritmo Massimo Variabili A,B,C numerica, intera, I Max numerica, intera, O 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

  19. inizio A, B, C Max = A Si No B>Max Max = B No C>Max Si Max = C Max fine Flow-chart: trova il massimo tra 3 numeri interi Dal problema al programma

  20. Debug: trova il massimo tra 3 numeri interi • Debug 1 • Inserisci tre numeri interi • A  4, B  6, C  8 • Max=4 • 6>4 ? • Max  6 • 8>6 ? • Max  8 • Il massimo è = 8 • Debug 2 • Inserisci tre numeri interi • A  4, B  16, C 8 • Max=4 • 16>4 ? • Max  16 • 8>16 ? • Il massimo è = 16 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 Se(“Il Massimo è = “, Max); • Debug 3 • Inserisci tre numeri interi • A  14, B  6, C  8 • Max=14 • 6>14 ? • 8>14 ? • Il massimo è = 14 • Debug 4 • Inserisci tre numeri interi • A  14, B  4, C  4 • Max=4 • 4>4 ? • 4>4 ? • Il massimo è = 4 Dal problema al programma

  21. 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") = massimo End Sub Dal problema al programma

  22. Pseudocodifica: Definisci il triangolo • Dato in input 3 lati di un triangolo, dire in output se il triangolo è: • Scaleno • Isoscele • Equilatero Algoritmo Triangolo Variabili A, B, C numerica, intera, I inizio Scrivi(“Inserisci i tre lati del triangolo”); Leggi(A,B,C); Se (A<>B) AND (B<>C) AND (C<>A) allora Scrivi(“Scaleno”); fine se Se (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 Dal problema al programma

  23. 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 Flow-chart: Definisci il triangolo Scaleno Isoscele Equilatero Dal problema al programma

  24. Debug: Definisci iltriangolo • Debug 1 • Inserisci tre lati del triangolo • A  2, B  5, C  10 • (2<>5) AND (5<>10) AND (2<>10) ? (V) • Scaleno • (2=5) OR (5=10) OR (2=10) ? (F) • (2=5) AND (5=10) AND (2=10) ? (F) Algoritmo Triangolo Variabili A, B, C numerica, intera, I inizio Scrivi(“Inserisci i tre lati del triangolo”); Leggi(A,B,C); Se (A<>B) AND (B<>C) AND (C<>A) allora Scrivi(“Scaleno”); fine se Se (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 2 • Inserisci tre lati del triangolo • A  2, B  2, C  8 • (2<>2) AND (2<>8) AND (2<>8) ? (F) • (2=2) OR (2=8) OR (2=2) ? (V) • Isoscele • (2=2) AND (2=8) OR (2=2) ? (F) • Debug 3 • A  5, B  5, C  5 • (5<>5) AND (5<>5) AND (5<>5) ? (F) • (5=5) OR (5=5) OR (5=5) ? (V) • Isoscele • (5=5) AND (5=5) AND (5=5) ? (V) • Equilatero Dal problema al programma

  25. Codifica: Definisci iltriangolo Private 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 If End sub Dal problema al programma

  26. Pseudocodifica: Reciproco di un numero Algoritmo Reciproco Variabili A numerica, intera, I inizio Scrivi(“Inserisci un numero”); Leggi(A); Se (A<>0) allora Scrivi(“Il reciproco è: “,1/A) altrimenti Scrivi(“Errore”) fine Dal problema al programma

  27. inizio A (A<>0) 1/A Errore fine Flow-chart: Reciproco di un numero Dal problema al programma

  28. Debug: Reciproco di un numero • Debug 1 • Inserisci un numero • A  2 • (2<>0) ? (V) • Il reciproco è : ½ Algoritmo Reciproco Variabili A numerica, intera, I inizio Scrivi(“Inserisci un numero”); Leggi(A); Se (A<>0) allora Scrivi(“Il reciproco è: “,1/A) altrimenti Scrivi(“Errore”) fine • Debug 2 • Inserisci un numeri • A  0 • (0<>0) ? (F) • Errore Dal problema al programma

  29. Codifica: Reciproco di un numero Private 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

  30. 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(“Mese inserito corretto”) Altrimenti Scrivi(“Errore,reinserire)” fine se finché((M>12) OR (M<1)) fine Dal problema al programma

  31. inizio M no si (M>0) AND (M<13) ERRORE OK falso (M>0) AND (M<13) vero fine Flow-chart : Mese (per falso) Dal problema al programma

  32. Debug : Mese (per falso) Debug 1. Inserisci mese 2. M  17 3. 17>0 AND 17< 13 ? (F) 4. Errore 5. 17>0 AND 17<13 ? (F) 6. Inserisci mese 7. M  0 8. 0>0 AND 0<13 ? (F) 9. Errore 10. 0>0 AND 0<13 ? (F) 11. Inserisci mese 12. M  10 13. 10>0 AND 10<13 ? (V) 14. Corretto 15. 10>0 AND 10<13 ? (V) 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)) Dal problema al programma

  33. 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 If End Sub Dal problema al programma

  34. Pseudocodifica : Mese (per 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,reinserire)” fine se fine Dal problema al programma

  35. inizio M=0 falso (M<=0)or (M>12) vero M falso (M>0) AND (M<13) ERRORE OK fine Flow-chart : Mese (per vero) Dal problema al programma

  36. Debug: Mese (per vero) • Debug • M  0 • 0<1 OR 0>12 ? (V) • Inserisci mese • M  14 • Errore, reinserire • 14<1 OR 14>12 ? (V) • Inserisci mese • M  6 • Mese inserito corretto • 6<1 OR 6>12 ? (F) 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,reinserire)” fine se fine Dal problema al programma

  37. Pseudocodifica: Spesa 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 Dal problema al programma

  38. Flow-chart : Spesa inizio T=0 P T=T+P P=0 T fine Dal problema al programma

  39. Debug: Spesa 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 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 Dal problema al programma

  40. Codifica: spesa Private 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") = tot End Sub Dal problema al programma

  41. Pseudocodifica Flow-chart Media Sequenza Cerchio Pseudocodifica Flow-chart Rettangolo Pseudocodifica Flow-chart Massimo Pseudocodifica Flow-chart Debug Selezione menu Triangolo Pseudocodifica Flow-chart Debug Reciproco Pseudocodifica Flow-chart Debug Mese (falso) Pseudocodifica Flow-chart Debug Ciclo Mese (vero) Pseudocodifica Flow-chart Debug Spesa Pseudocodifica Flow-chart Debug Mappa Debug Debug Debug Dal problema al programma

More Related