Dal problema al programma Mariangeloni Chiara Cassisi Jodie Indice Sequenza Selezione Ciclo o iterazione 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 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 6 Flow-chart: calcola la media di 3 numeri Inizio A,B,C M = (A,B,C)/3 M Fine Dal problema al programma 7 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 8 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 9 Flow-chart: cerchio (area,circonferenza) Inizio Raggio Circonferenza = 2*pigreco*raggio Area=pigreco*raggio^2 Circonferenza,Area Fine Dal problema al programma 10 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 11 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 12 Flow – chart: rettangolo (area, perimetro) inizio B, H A = B*H P = 2*(B+H) A, P Dal problema al programma 13 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 B5,H2 A 5*2 P 2*(5+2) Area = 10 Perimetro = 14 Dal problema al programma 14 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 15 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 16 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, B6, C8 2. A14, B6, C8 3. Max=4 3. Max = 4 4. 6>4? 4. 16>4? 5. Max6 5. Max16 6. 8>6? 6. 8>16? 7. Max8 7. Il massimo è = 16 8. Il massimo è=8 Debug 3 Debug 4 1. Inserisci 3 numeri interi 1. Inserisci tre numeri interi 2. A14, B6, C8 2. A4, B4, C4 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 17 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 18 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. A2, B4,C8 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. A2, B2, C8 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. A8, B8, C8 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 21 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 A4 (4 <> 0) ? (V) ¼ Debug 2 Inserisci un numero A0 (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 M14 14>0 AND 14<13 ? (F) errore reinserici 14>0 AND 14<13 ? (F) Inserisci mese M1 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. M1 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