Dal problema al programma Santonastaso; Capuzzo Indice Sequenza Selezione Ciclo o iterazione Mappa Capuzzo;Santonastaso Dal problema al programma 2 Sequenza Calcola la media di 3 numeri Pseudocodifica Flow-chart Debug Cerchio (area, circonferenza) Pseudocodifica Flow-chart Debug Rettangolo (area, perimetro) Pseudocodifica Capuzzo;Santonastaso Flow-chart Dal problema al programma Debug 3 Selezione Trova il massimo di 3 numeri Pseudocodifica Flow-chart Debug Definisci un triangolo Pseudocodifica Flow-chart Debug Il reciproco di un numero Pseudocodifica Capuzzo;Santonastaso Flow-chart Dal problema al programma Debug 4 Ciclo o iterazione Mese (per vero) Pseudocodifica Flow-chart Debug Pseudocodifica Flow-chart Debug Pseudocodifica Flow-chart Debug Mese (per falso) Spesa Capuzzo;Santonastaso Dal problema al programma 5 Pseudocodifica: Calcola la media di 3 numeri 'VARIABILI Dim n1, n2, n3 As Single Dim somma, media 'ACQIUSIZIONE DEI VALORI NELLE CELLE n1 = Range("b3") Scrivi (“Inserisci tre numeri interi”); n2 = Range("b4") Leggi (A, B, C); n3 = Range("b5") M = (A + B + C) / 3; Scrivi (“Media = “,M); 'CALCOLO LA SOMMA E LA MEDIA somma = (n1 + n2 + n3) media = (n1 + n2 + n3) / 3 'STAMPO I VALORI NELLE CELLE B6, B7 Range("b6") = somma Range("b7") = media Algoritmo Media Variabili A, B, C numerica, intera, input M numerica, reale, output Inizio Fine fine Capuzzo;Santonastaso Dal problema al programma 6 Flow-chart: Calcola la media di 3 numeri Inizio A, B, C M =(A+B+C)/3 M fine Capuzzo;Santonastaso Dal problema al programma 7 Debug: calcola la media di 3 numeri Algoritmo media Scrivi(“inserisci tre numeri interi”); leggi(A, B, C); M = (A + B + C) /3; Scrivi(“Media = “, M); Debug 1. 2. A←4, B←6, C←8 3. 6←(4+6+8) /3 4. Capuzzo;Santonastaso Inserisci tre numeri interi Dal problema al programma Media =6 8 Pseudocodifica:cerchio( area, circonferenza) Algoritmo cerchio Variabili Raggio numero reale, I Pi greco numero reale, I Inizio A=R^2*pi greco C=2*pi greco*R Scrivi (“area=A”) Scrivi (“circonferenza=C”) fine 'VARIABILI Dim raggio As Integer Dim circonferenza, area As Integer Const pigreco = 3.14 'AQUISIZIONE DEI VALORI DELLE CELLE raggio = Cells(1, 2) 'CONTROLLO DEI NUMERI (SELEZIONE) circonferenza = 2 * pigreco * raggio area = pigreco * raggio ^ 2 'VISUALIZZA LA CIRCONFERENZA E L'AREA Cells(2, 2) = circonferenza Cells(3, 2) = area fine Capuzzo;Santonastaso Dal problema al programma 9 Debug: cerchio ( area, circonferenza) A=R^2*pi greco C=2*pi greco*R Scrivi (“area=A”) Scrivi (“circonferenza=C”) Capuzzo;Santonastaso 1. inserisci il raggio 2. 3. 4. 5. 6. R←5 A←3,14*5^2 C← 2*3,14*5 A=78,5 C=31,4 Dal problema al programma 10 Pseudocodifica rettangolo (area, perimetro) 'VARIABILI Variabili Dim lato1, lato2, area As Single B,H numerica reale, I 'AQUISIZIONE DEI VALORI DELLE CELLE A,P numerica reale,O lato1 = Range("b1") Inzio lato2 = Range("b2") scrivi (“inserisci base,altezza”); 'CALCOLA IL VALORE DELL'AREA leggi ( B,H); area = lato1 * lato2 A= B*H; 'CALCOLA IL VALORE DEL PERIMETRO perimetro = lato1 * 2 + lato2 * 2 P=2*(B+H); 'STAMPA NELLA CELLA B3 IL scrivi (“area=“,A); RISULTATO: AREA scrivi (“perimetro=“, P); Range("b3") = area fine 'STAMPA NELLA CELLA B4 IL RISULTATO: PERIMETRO Range("b4") = perimetro Capuzzo;Santonastaso fine Dal problema al programma 11 Flowchart rettangolo (area, perimetro) inizio Inizio B,H A=B*H P=2*(B+H) A,P fine Capuzzo;Santonastaso Dal problema al programma 12 Debug: rettangolo (area, perimetro) scrivi (“inserisci base,altezza”); leggi ( B,H); A= B*H; P=2*(B+H); scrivi (“area=“,A); scrivi (“perimetro=“, P); Capuzzo;Santonastaso 1. 2. 3. 4. 5. 6. inserisci base B←3 H←2 A←B*H P←2*(B+H) Area=6 Perimetro=10 Dal problema al programma 13 Pseudocodifica: trova il massimo di 3 numeri 'VARIABILI Dim i, maggiore, numero As Integer Variabili 'MAGGIORE CONTA IL MAGGIORE A, B, C numerica, intera, I Max numerica, O maggiore = Cells(2, 1) 'IL CONTATORE "i" CONTA QUANTE Inizio CELLE STO CONTANDO scrivi(“inserisci tre numeri interi”); For i = 2 To 4 leggi(“A,B,C”); numero = Cells(i, 1) max=A; If numero > maggiore Then se(B>max) allora maggiore = numero max=B; End If Fine se Se (C>max) allora Next max=C; Range("E1") = maggiore Fine se Scrivi(“il massimo è =“, max); fine fine Algoritmo Massimo Capuzzo;Santonastaso Dal problema al programma 14 Flowchart: trova il massimo di 3 numeri inizio A,B,C Max=A B>Max Max=B C>Max Max=C Max Capuzzo;Santonastaso Dal problema al programma fine 15 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); Capuzzo;Santonastaso Debug 2 Debug 1 Inserisci tre numeri interi Inserisci tre numeri interi A 4 B 11 C 6 A3B5C9 Max = 4 Max = 3 6>4? 5>3? Max 6 Max 5 11 > 6 ? 9>5? Il massimo è =11 Max 9 Il massimo è = 9 Debug 3 Inserisci tre numeri interi A 12 B 7 C 6 Max = 12 7 > 14 ? Il massimo è =14 Dal problema al programma Debug 4 Inserisci tre numeri interi A4B4C4 Max = 4 4>4? 4>4? Il massimo è = 4 16 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 Dato in input 3 lati di un triangolo, dire in output se il triangolo è: Scaleno Isoscele Equilatero Capuzzo;Santonastaso Variabili A,B,C Inizio numerica,intera,I 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 Dal problema al programma 17 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 Capuzzo;Santonastaso Dal problema al programma Fine 18 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 Capuzzo;Santonastaso Debug 1 Debug 2 1. Inserisci tre 1. Inserisci tre lati lati del triangolo del triangolo 2. \ A4B6 2. A4B4C C8 8 3. 4<> 6 AND 6 3. 4<> 4 AND 4 <> <> 8 AND 4 <> 8 AND 4 <> 8 ? 8?V F 4. Scaleno 4. 4 = 4 OR 4 = 8 5. 4 = 6 OR 6 = OR 4 = 8 ? V 8 OR 4 = 8 ? F Isolscele 6. 4 = 6 AND 6 5. 4 = 4 AND 4 = 8 = 83 AND 4 = 8 ? Debug AND 4 = 8 ? F F 1. Inserisci tre lati del triangolo 2. A4B4C 4 3. 4<> 4 AND 4 <> 4 AND 4 <> 4 ? F 4. 4 = 4 OR 4 = 4 OR 4 = 4 ? V Isolscele 5. 4 = 4 AND 4 = 4 19 Dal problema al programma AND 4 = 4 ? F Pseudocodifica : il reciproco di un numero Variabili A numerica, intera, I Inizio scrivi (“inserisci un numero”); leggi (A); se ( A <> 0) allora scrivi (“1/”A); se no scrivi(“errore”); fine Capuzzo;Santonastaso 'VARIABILI Dim numero As Integer Dim Opposto 'AQUISIZIONE DEI DATI DELLE CELLE numero = Cells(1, 2) 'CONTROLLO DEI NUMERI (SELEZIONE) If (numero > 0) Then Cells(2, 2) = -1 * numero Else Cells(2, 2) = "errore" End If End Dal problema al programma 20 Flowchart: il reciproco di un numero inizio A no (A<>0) errore si 1/A fine Capuzzo;Santonastaso Dal problema al programma 21 Debug: il reciproco di un numero Algoritmo reciproco scrivi (“inserisci un numero”); leggi (A); se ( A <> 0) allora scrivi (“1/”A); altrimenti Debug 1 Inserisci un numero A4 (4 <> 0) ? (V) ¼ Debug 2 Inserisci un numero A0 (0 <>0) ? (F) errore scrivi(“errore”); fine se Capuzzo;Santonastaso Dal problema al programma 22 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 Variabili M numerica, intera, I Inizio ripeti; scrivi(“inserisci il mese”); leggi (M); se (M>0) AND (M<13) allora scrivi (“mese corretto”); altrimenti scrivi (“errore”); fine se; finché (M>0) AND (M<13); fine Capuzzo;Santonastaso Dal problema al programma 23 Flow-chart: Mese (per falso) Inizio M no si M>0 AND M< 13 Corretto Errato M>0 AND M< 13 Fine Capuzzo;Santonastaso Dal problema al programma 24 Debug: Mese (per falso) Debug 1. Inserisci mese 2. M 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)) 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 Capuzzo;Santonastaso 15.10>0 AND 10<13 ? Dal problema al programma (V) 25 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 Variabili M Inizio numerica, intera, I M = 0; esegui mentre ((M<=1) OR (M>=12)); scrivi (“inserisci il mese”); legge(M); se (M>0) AND (M<13) allora scrivi (“mese corretto”); altrimenti scrivi (“errore”); fine se; ripeti fine Capuzzo;Santonastaso Dal problema al programma 26 Flow-chart: Mese (per vero) Inizio M=0 Vero M<1 OR M>12 M M>0 AND M<13 Errato Capuzzo;Santonastaso Corretto Dal problema al programma Fine 27 Debug: Mese (per vero) 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 Debug 1. M 0 2. 0 <1 OR 0>12 ? (V) 3. Inserisci mese 4. M 15 5. 15>0 AND 15< 13 ? (F) 6. Errore 7. 15>0 AND 15< 13 ? (F) 8. Inserisci mese 9. M 9 10.9>0 AND 9<13 ? (V) 11.Corretto 12.9<1 OR 9>12 ? (F) Capuzzo;Santonastaso Dal problema al programma 28 MappaPseudocodifica Flow-chart Debug Media Sequenza menu Selezione Ciclo Capuzzo;Santonastaso 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 Pseudocodifica Flow-chart Debug Es. 2 Pseudocodifica Flow-chart Debug Es. 3 Pseudocodifica Flow-chart Debug Dal problema al programma 29