Luca Chichisola1 Dal problema al programma LUCA CHICHISOLA
Luca Chichisola2 Indice Sequenza selezione Ciclo o iterazione mappa
Luca Chichisola3 Sequenza Calcola la media di tre numeri Cerchio (area,circonferenza) Rettangolo (area,perimetro) PseudocodificaFlow-chart Debug PseudocodificaFlow-chartDebug PseudocodificaFlow-chartDebug codifica
Luca Chichisola4 Selezione Trova il massimo di tre numeri Definisci il triangolo Reciproco PseudocodificaFlow-chartDebug PseudocodificaFlow-chartDebug PseudocodificaFlow-chartDebug codifica
Luca Chichisola5 Ciclo o iterazione mese per vero mese per falso spesa PseudocodificaFlow-chartDebug PseudocodificaFlow-chartDebug PseudocodificaFlow-chartDebug codifica
Luca Chichisola6 Pseudocodifica: calcola la media di tre numeri Algoritmo media Variabili A,B,Cnumerica,intera,input Mnumerica,reale,output Inizio scrivi (“inserisci tre numeri interi”); leggi (A,B,C); M = (A+B+C)/3; scrivi (“media =“,M); fine
Luca Chichisola7 Flow-chart: calcola la media di tre numeri inizio A,B,C M = (A+B+C)/3 M fine
Luca Chichisola8 Debug: Calcola la media di tre numeri Algoritmo media scrivi (“inserisci tre numeri interi”); leggi (A,B,C); M = (A+B+C)/3; scrivi (“media =“,M); Debug 1.Inserisci tre numeri interi 2. A 4, B 6, C (4+6+8)/3 4.Media = 6
Luca Chichisola9 peseudocodifica: cerchio (area,circonferenza) Algoritmo cerchio Variabili Raggionumero reale,input A,Cnumero reale,output Costante Pigreco = 3,14numero reale inizio Scrivi (“inserisci raggio”); leggi (“raggio”); A = pigreco*raggio^2; C = 2*pigreco*raggio; scrivi (“area =“,A); scrivi (“circonferenza =“,C); fine
Luca Chichisola10 Flow-chart: cerchio (area,circonferenza) inizio raggio pigreco*raggio^2 2*pigreco*raggio A C fine
Luca Chichisola11 Debug:cerchio (area,circonferenza) Algoritmo area,circonferenza Scrivi (“inserisci raggio”); leggi (“raggio”); A = pigreco*raggio^2; C = 2*pigreco*raggio; scrivi (“area =“,A); scrivi (“circonferenza =“,C); Debug 1.Inserisci raggio 2.Raggio ,5 pigreco*raggio^2 4.31,4 2*pigreco*raggio 5.Area = 78,5 6.Circonferenza = 31,4
Luca Chichisola12 pseudocodifica: rettangolo(area,perimetro) Algoritmo rettangolo Variabili B,Hnumerica,reale,I A,Pnumerica,reale,O Inizio scrivi(“inserisci la base e l’altezza”); leggi(B,H); A=B*H; P=2*(B+H); scrivi(“area=“,A); scrivi(“perimetro=“,P); fine
Luca Chichisola13 Flow-chart:rettangolo(area,perimetro) inizio B,H B*H 2*(B+H) A P fine
Luca Chichisola14 Debug:rettangolo(area,perimetro) Algoritmo rettangolo scrivi(“inserisci la base e l’altezza”); leggi(B,H); A=B*H; P=2*(B+H); scrivi(“area=“,A); scrivi(“perimetro=“,P); Debug 1.Inserisci la base e l’altezza 2.B 2,H B*H 4.12 2*(B+H) 5.Area=8 6.Perimetro=12
Luca Chichisola15 Pseudocodifica:trova il massimo di tre numeri Algoritmo massimo Variabili A,B,Cnumerica,intera,I Maxnumerica,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
Luca Chichisola16 Flow-chart:trova il massimo di tre numeri inizio A,B,C Max=A B>Max Max=B C>Max Max=C Max fine NO SI NO SI
Luca Chichisola17 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); Debug 1 1.Inserisci tre numeri 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 3 1.Inserisci tre numeri 2.A 14,B 6,C 8 3.Max = >14 ? 5.8>14 ? 6.Il massimo è = 14 Debug 2 1.Inserisci tre numeri 2.A 4, B 16, C 8 3.Max = >4 ? 5.Max >16 ? 7.Il massimo è = 16 Debug 4 1.Inserisci tre numeri 2.A 4, B 4, C 4 3.Max = 4 4.4>4 ? 5.4>4 ? 6.Il massimo è = 4
Luca Chichisola18 Pseudocodifica:definisci il triangolo Algoritmo triangolo Variabili A,B,Cnumerica,intera,I 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
Luca Chichisola19 Flow-chart: definisci triangolo inizio A,B,C (A<>B) AND (B <> C) AND (A<>C) scaleno (A = B) OR (B = C) OR (A = C) isoscele ( A = B) AND (B = C) AND (A = C) equilatero fine no si
Luca Chichisola20 Debug: definisci triangolo 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 1 1.Inserisci i tre lati del triangolo 2.A 2, B 3, C 6 3.(2<>3) AND (3<>6) AND (2<>6) ? (V) 4.Scaleno 5.(2 = 3) OR (3 = 6) OR (2 = 6) ? (F) 6.(2 = 3) AND (3 = 6) AND (2 = 6) ? (F) Debug 2 1.Inserisci tre lati del triangolo 2.A 2,B 2, C 6 3.(2<>3) AND (3<>6) AND (2<>6) ? (F) 4.(2 = 3) OR (3 = 6) OR (2 = 6) ? (v) 5.Isoscele 6.(2 = 3) AND (3 = 6) AND (2 = 6) ? (F) Debug 3 1.Inserisci i tre lati del triangolo 2.A 2, B 2, C 2 3.(2<>2) AND (2<>2) AND (2<>2) ? (F) 4.(2 =2) OR (2 = 2) OR (2 = 2) ? (V) 5.(2 = 2) AND (2 = 2) AND (2 = 2) ? (V) 6.equilatero
Luca Chichisola21 Pseudocodifica: reciproco Algoritmo reciproco Variabili Anumerica, intera, I Inizio scrivi (“inserisci un numero”); leggi (A); se ( A <> 0) allora scrivi (“1/”A); altrimenti scrivi(“errore”); fine se fine
Luca Chichisola22 Flow-chart: reciproco inizio A (A<>0) fine 1/A errore sino
Luca Chichisola23 Debug: reciproco Algoritmo reciproco scrivi (“inserisci un numero”); leggi (A); se ( A <> 0) allora scrivi (“1/”A); altrimenti scrivi(“errore”); fine se Debug 1 1.Inserisci un numero 2.A 4 3.(4 <> 0) ? (V) 4.¼ Debug 2 1.Inserisci un numero 2.A 0 3.(0 <>0) ? (F) 4.errore
Luca Chichisola24 Pseudocodifica: mese per vero Algoritmo mese Variabili Mnumerica, intera, I Inizio M = 0; esegui mentre ((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
Luca Chichisola25 FLOW-CHART: MESE per vero inizio (M 12) M (M>0) AND (M<13) errore Mese corretto M=0 fine V F F V
Luca Chichisola26 Debug: mese per vero Debug per vero 1.M ? (V) 3.Inserisci mese 4.M 14 5.Errore ? (V) 7.Inserisci mese 8.M 6 9.Mese corretto ? (F) Algoritmo mese per vero M = 0; esegui mentre ((M =12)); scrivi (“inserisci il mese”); legge(M); se (M>0) AND (M<13) allora scrivi (“mese corretto”); altrimenti scrivi (“errore”); fine se; ripeti
Luca Chichisola27 Pseudocodifica: mese per falso Algoritmo mese per falso Variabili Mnumerica, 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
Luca Chichisola28 Flow-chart: mese per falso Inizio M M>0 AND M< 13 Fine F V Errato Corretto M>0 AND M< 13 F V
Luca Chichisola29 Debug: mese per falso Debug per falso 1.Inserisci mese 2.M >0 AND 14<13 ? (F) 4.Errore 5.14>0 AND 14<13 ? (F) 6.Inserisci mese 7.M 1 8.1>0 AND 1<13 ? (V) 9.Mese corretto 10.1>0 AND 1<13 ? (V) Algoritmo mese per falso 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);
Luca Chichisola30 Pseudocodifica: spesa Algoritmo spesa Variabili Pnumerica, reale,I Totnumerica, reale,O Inizio ripeti; scrivi (“ inserisci il prezzo”); leggi (P); se (
Luca Chichisola31 Flow-chart: spesa inizio
Luca Chichisola32 Debug: spesa Debug
Luca Chichisola33 Codifica: calcola la media di tre numeri 'VARIABILI Dim primo, secondo, terzo, media As Integer 'Acquisizione dei valori dalle celle primo = Range("a1") secondo = Range("a2") terzo = Range("a3") 'Calcolo della media media = (primo + secondo + terzo) / 3 Range("c1") = media
Luca Chichisola34 Codifica: cerchio (area,circonferenza) 'VARIABILI Dim raggio, area, circonferenza As Single Const pigreco = 3.14 'AQUISIZIONE DEI VALORI DELLE CELLE raggio = Range("B1") 'CALCOLO IL VALORE DELLA CIRCONFERENZA E DELL'AREA circonferenza = (2 * 3.14 * raggio) area = (3.14 * raggio ^ 2) 'STAMPO NELLA CELLA B2 IL RISULTATO: CIRCONFERENZA Range("b2") = circonferenza 'STAMPO NELLA CELLA B3 IL RISULTATO : AREA Range("b3") = area
Luca Chichisola35 Codifica: rettangolo (area, perimetro) 'VARIABILI Dim base, altezza, perimetro, area As Integer 'ACQUISIZIONE DEI VALORI base = Range("a1") altezza = Range("a2") 'CALCOLO AREA E PERIMETRO area = (base * altezza) perimetro = 2 * (altezza + base) Range("c1") = area Range("c2") = perimetro
Luca Chichisola36 Codifica: massimo 'VARIABILI Dim primo, secondo As Integer Dim maggiore As Integer 'ACQUISIZIONE DEI VALORI DALLE CELLE primo = Cells (1, 2) secondo = Cells (2, 2) 'CONTROLLO DEI NUMERI (SELEZIONE) If primo > secondo Then maggiore = primo Else maggiore = secondo End If ' VISUALIZZA I NUMERI ORDINATI Cells(2, 4) = maggiore
Luca Chichisola37 Codifica: triangolo '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
Luca Chichisola38 Codifica: reciproco '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
Luca Chichisola39 Codifica: mese 'variabili Dim mese As Single 'acquisisci valori dalle celle mese = Range("b1") 'calcola mese giusto If (mese 12) Then Range("a3") = "errore" Else: Range("a3") = "mese corretto" End If
Luca Chichisola40 Codifica: spesa 'VARIABILI Dim i, totale, spesa As Integer 'QUANTI CONTA I NUMERI >20 totale = 0 'IL CONTATORE "i" CONTA QUANTE CELLE STO LEGGENDO For i = 2 To 6 spesa = Cells (i, 1) totale = totale + spesa Next Range("b8") = totale
Luca Chichisola41 mappa menu sequenza Selezione ciclo media cerchio rettangolo massimo triangolo reciproco Mese vero Mese falso Spesa pseudocodifica Flow-chart debug