londoni camilla-galeandro beatrice1 dal problema al programma galeandro b. – londoni c

41
Londoni camilla-Galeandro Londoni camilla-Galeandro Beatrice Beatrice 1 Dal problema al programma Dal problema al programma Galeandro B. – Londoni C.

Upload: michelangelo-guglielmi

Post on 02-May-2015

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

11

Dal problema al programmaDal problema al programma

Galeandro B. – Londoni C.

Page 2: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

22

IndiceIndice

•Sequenza

•selezione

•Ciclo o iterazione

• mappa

Page 3: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

33

SequenzaSequenza

•Calcola la media di tre numeri

•Cerchio (area,circonferenza)

•Rettangolo (area,perimetro)

Pseudocodifica

Flow-chart Debug

Pseudocodifica

Flow-chart Debug

Pseudocodifica

Flow-chart Debug

codifica

codifica

codifica

Page 4: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

44

SelezioneSelezione

• Trova il massimo di tre numeri

• Definisci il triangolo

• Reciproco

Pseudocodifica

Flow-chart Debug

Pseudocodifica

Flow-chart Debug

Pseudocodifica

Flow-chart Debug

codifica

codifica

codifica

Page 5: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

55

Ciclo o iterazioneCiclo o iterazione

• mese per vero

• mese per falso

• spesa

Pseudocodifica

Flow-chart Debug

Pseudocodifica

Flow-chart Debug

Pseudocodifica

Flow-chart Debug

codifica

codifica

Page 6: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

66

Pseudocodifica: calcola la media di tre numeriPseudocodifica: calcola la media di tre 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

Page 7: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

77

Flow-chart: calcola la media di tre numeriFlow-chart: calcola la media di tre numeri

inizio

A,B,C

M = (A+B+C)/3

M

fine

Page 8: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

88

Debug: Calcola la media di tre numeriDebug: 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. A4, B6, C8

3. 6(4+6+8)/3

4. Media = 6

Page 9: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

99

peseudocodifica: cerchio (area,circonferenza): cerchio (area,circonferenza)

Algoritmo cerchio

Variabili

Raggio numero reale,input

A,C numero reale,output

Costante

Pigreco = 3,14 numero reale

inizio

Scrivi (“inserisci raggio”);

leggi (“raggio”);

A = pigreco*raggio^2;

C = 2*pigreco*raggio;

scrivi (“area =“,A);

scrivi (“circonferenza =“,C);

fine

Page 10: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

1010

Flow-chart: cerchio (area,circonferenza)Flow-chart: cerchio (area,circonferenza)

inizio

raggio

pigreco*raggio^2

2*pigreco*raggio

A

C

fine

Page 11: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

1111

Debug:cerchio (area,circonferenza)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);

Debug1. Inserisci raggio

2. Raggio5

3. 78,5pigreco*raggio^2

4. 31,42*pigreco*raggio

5. Area = 78,5

6. Circonferenza = 31,4

Page 12: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

1212

pseudocodifica: rettangolo(area,perimetro)pseudocodifica: rettangolo(area,perimetro)Algoritmo rettangolo

Variabili

B,H numerica,reale,I

A,P numerica,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

Page 13: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

1313

Flow-chart:rettangolo(area,perimetro)Flow-chart:rettangolo(area,perimetro)

inizio

B,H

B*H

2*(B+H)

A

P

fine

Page 14: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

1414

Debug:rettangolo(area,perimetro)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 4

3. 8 B*H

4. 12 2*(B+H)

5. Area=8

6. Perimetro=12

Page 15: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

1515

Pseudocodifica:trova il massimo di tre numeriPseudocodifica:trova il massimo di tre numeriAlgoritmo massimoVariabili

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

Page 16: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

1616

Flow-chart:trova il massimo di tre numeriFlow-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

NOSI

Page 17: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

1717

Debug:trova il massimo di tre numeriDebug:trova il massimo di tre numeri

Algoritmo massimoscrivi (“inserisci tre numeri interi”);

leggi (A,B,C);Max = A;se (B>Max)allora

Max = B;fine sese (C>Max) allora

Max = C;fine sescrivi (“il massimo è =“,

Max);

Debug 11. 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 31. Inserisci tre numeri

2. A 14,B 6,C 8

3. Max = 14

4. 6>14 ?

5. 8>14 ?

6. Il massimo è = 14

Debug 21. Inserisci tre numeri

2. A4, B 16, C 8

3. Max = 4

4. 16>4 ?

5. Max 16

6. 8>16 ?

7. Il massimo è = 16

Debug 41. Inserisci tre numeri

2. A 4, B 4, C 4

3. Max = 4

4. 4>4 ?

5. 4>4 ?

6. Il massimo è = 4

Page 18: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

1818

Pseudocodifica:definisci il triangoloPseudocodifica:definisci il triangolo

Algoritmo triangoloVariabili

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 (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

Page 19: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

1919

Flow-chart: definisci triangoloFlow-chart: definisci triangoloinizio

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

no

no

si

si

si

Page 20: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

2020

Debug: definisci triangoloDebug: definisci triangoloAlgoritmo triangolo

scrivi (“inserisci i tre lati del triangolo”);

leggi (A,B,C);se (A<>B) AND (B<>C) AND (A<>C)

allorascrivi(“scaleno”);

fine sese (A = B) OR (B = C) OR (A = C) allora

scrivi (“isoscele”);fine sese ( A = B) AND (B = C) AND (A = C)

allorascrivi (“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 31. Inserisci i tre lati del triangolo2. A 2, B 2, C 23. (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

Page 21: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

2121

Pseudocodifica: reciprocoPseudocodifica: reciprocoAlgoritmo reciprocoVariabili

A numerica, intera, I

Inizio

scrivi (“inserisci un numero”);

leggi (A);

se ( A <> 0) allora

scrivi (“1/”A);

altrimenti

scrivi(“errore”);

fine se

fine

Page 22: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

2222

Flow-chart: reciprocoFlow-chart: reciprocoinizio

A

(A<>0)

fine

1/Aerrore

sino

Page 23: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

2323

Debug: reciprocoDebug: reciprocoAlgoritmo reciproco

scrivi (“inserisci un numero”);leggi (A);se ( A <> 0) allora

scrivi (“1/”A);altrimenti

scrivi(“errore”);fine se

Debug 11. Inserisci un numero

2. A 4

3. (4 <> 0) ? (V)

4. ¼

Debug 21. Inserisci un numero

2. A 0

3. (0 <>0) ? (F)

4. errore

Page 24: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

2424

Pseudocodifica: mese per veroPseudocodifica: mese per veroAlgoritmo mese

Variabili

M numerica, intera, I

Inizio

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

Page 25: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

2525

FLOW-CHART: MESE per FLOW-CHART: MESE per veroveroinizio

(M<1) OR (M>12)

M

(M>0) AND (M<13)

erroreMese corretto

M=0

fine

V

F

FV

Page 26: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

2626

Debug: mese per veroDebug: mese per veroDebug per vero1. M 0

2. 0<1 OR 0>12 ? (V)

3. Inserisci mese

4. M14

5. Errore

6. 14<1 OR 14>12 ? (V)

7. Inserisci mese

8. M 6

9. Mese corretto

10.6<1 OR 6 >12 ? (F)

Algoritmo mese per vero

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

Page 27: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

2727

Pseudocodifica: mese per falsoPseudocodifica: mese per falsoAlgoritmo mese per falsoVariabili

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

Page 28: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

2828

Flow-chart: mese per falsoFlow-chart: mese per falsoInizio

M

M>0 AND M< 13

Fine

F V

Errato Corretto

M>0 AND M< 13F

V

Page 29: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

2929

Debug: mese per falsoDebug: mese per falsoDebug per falso1. Inserisci mese

2. M 14

3. 14>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);

Page 30: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

3030

Pseudocodifica: spesaPseudocodifica: spesaAlgoritmo spesaVariabili

P numerica, reale,I

Tot numerica, reale,O

Inizio

ripeti;

scrivi (“ inserisci il prezzo”);

leggi (P);

se (

Page 31: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

3131

Flow-chart: spesaFlow-chart: spesainizio

Page 32: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

3232

Debug: spesaDebug: spesaDebug

Page 33: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

3333

Codifica: calcola la media di tre numeriCodifica: calcola la media di tre numeri

'VARIABILIDim primo, secondo, terzo, media As Integer'Acquisizione dei valori dalle celleprimo = Range("a1")secondo = Range("a2")terzo = Range("a3")'Calcolo della mediamedia = (primo + secondo + terzo) / 3Range("c1") = media

Page 34: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

3434

Codifica: cerchio (area,circonferenza)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

Page 35: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

3535

Codifica: rettangolo (area , perimetro)Codifica: rettangolo (area , perimetro)

'VARIABILIDim base, altezza, perimetro, area As Integer'ACQUISIZIONE DEI VALORIbase = Range("a1")altezza = Range("a2")'CALCOLO AREA E PERIMETROarea = (base * altezza)perimetro = 2 * (altezza + base)Range("c1") = areaRange("c2") = perimetro

Page 36: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

3636

Codifica: massimoCodifica: 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

Page 37: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

3737

Codifica: triangoloCodifica: triangolo'variabiliDim lato1, lato2, lato3 As Single'acquisisci valori dalle cellelato1 = Range("b1")lato2 = Range("b2")lato3 = Range("b3")'definisci triangoloIf (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 IfIf (lato1 = lato2) And (lato2 = lato3) Then Range("a5") = "equilatero" End If

Page 38: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

3838

Codifica: reciprocoCodifica: reciproco'variabiliDim numero As Single'acquisisci valori dalle cellenumero = Range("b1")'calcola il valore del reciprocoIf (numero <> 0) Then Range("a3") = 1/ numero

Else: Range("a3") = "errore"End If

Page 39: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

3939

Codifica: meseCodifica: mese

'variabiliDim mese As Single'acquisisci valori dalle cellemese = Range("b1")'calcola mese giustoIf (mese < 1) Or (mese > 12) Then Range("a3") = "errore"Else: Range("a3") = "mese corretto"End If

Page 40: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

4040

Codifica: spesaCodifica: spesa

'VARIABILIDim i, totale, spesa As Integer'QUANTI CONTA I NUMERI >20totale = 0'IL CONTATORE "i" CONTA QUANTE CELLE STO LEGGENDOFor i = 2 To 6 spesa = Cells (i, 1) totale = totale + spesaNext Range("b8") = totale

Page 41: Londoni camilla-Galeandro Beatrice1 Dal problema al programma Galeandro B. – Londoni C

Londoni camilla-Galeandro BeatriLondoni camilla-Galeandro Beatricece

4141

mappamappa

menu

sequenza

Selezione

ciclo

media

cerchio

rettangolo

massimo

triangolo

reciproco

Mese vero

Mese falso

Spesa

pseudocodifica

pseudocodifica

pseudocodifica

pseudocodifica

pseudocodifica

pseudocodifica

pseudocodifica

pseudocodifica

pseudocodifica

Flow-chart

Flow-chart

Flow-chart

Flow-chart

Flow-chart

Flow-chart

Flow-chart

Flow-chart

Flow-chart

debug

debug

debug

debug

debug

debug

debug

debug

debug