Problema : come dividere due numeri interi se si è capaci di

9
Problema: come dividere due numeri interi se si è capaci di fare solo somme e sottrazioni ?

description

Problema : come dividere due numeri interi se si è capaci di fare solo somme e sottrazioni ?. L’informatica è una disciplina che vive nello spazio che intercorre tra i problemi e le risorse tecnologiche. - PowerPoint PPT Presentation

Transcript of Problema : come dividere due numeri interi se si è capaci di

Page 1: Problema :  come dividere due numeri                                interi se si è capaci di

Problema: come dividere due numeri interi se si è capaci di fare solo somme e sottrazioni ?

Page 2: Problema :  come dividere due numeri                                interi se si è capaci di

L’informatica è una disciplina che vive

nello spazio che intercorretra i problemi e le risorse

tecnologiche

successivamente decideCOME

l’esecutore deveoperare

inizialmente analizza il problema per precisare

CHE COSA

deve essere fatto

L’informatico:

Page 3: Problema :  come dividere due numeri                                interi se si è capaci di

147 : 38

147 – 38 = 109 1

109 – 38 = 71 2 71 – 38 = 33 3

147 : 38 = 3 con il resto di 33

33 < 38 … il calcolo è terminato

dividendo

divisorequoziente

Page 4: Problema :  come dividere due numeri                                interi se si è capaci di

acquisisci dividendoacquisisci divisore

quoziente 0

dividendo dividendo-divisorequoziente quoziente +1

scrivi quozientescrivi dividendo

dividendo < divisore

dividendo >= divisore

dividendo

divisore

quoziente

147

38

01

109

2

7133

3

333

schermo

Page 5: Problema :  come dividere due numeri                                interi se si è capaci di

acquisisci dividendoacquisisci divisore

quoziente 0

dividendo dividendo-divisorequoziente quoziente +1

scrivi quozientescrivi dividendo

dividendo < divisore

dividendo >= divisore

PROGRAM dividi;

VAR dividendo,divisore, quoziente: INTEGER;

L’esecutore predispone tre

locazioni di memoria in cui registrerà dei numeri interi

BEGIN

READLN(dividendo);

READLN(divisore);

quoziente := 0;

REPEAT dividendo := dividendo – divisore; quoziente := quoziente + 1UNTIL dividendo < divisore;

WRITELN(quoziente,dividendo)

END.

Utilizzando i diagrammisintattici

Page 6: Problema :  come dividere due numeri                                interi se si è capaci di

falso

Vero

falso

Vero

Si ripete l’istruzione eseguitafino a che la condizione indicata si verifica

La struttura iterativa

Analogo effetto si potrebbe ottenere utilizzando una forma linguistica differente

In questo caso• la ripetizione avviene solo se la condizione si verifica• l’istruzione potrebbe non essere eseguita

Page 7: Problema :  come dividere due numeri                                interi se si è capaci di

acquisisci dividendoacquisisci divisore

quoziente 0

dividendo dividendo-divisorequoziente quoziente +1

scrivi quozientescrivi dividendo

dividendo < divisore

dividendo >= divisore

dividendo

divisore

quoziente

147

38

01

109

2

7133

3

333

schermo

Page 8: Problema :  come dividere due numeri                                interi se si è capaci di

dividendo dividendo-divisorequoziente quoziente +1

dividendo < divisore

dividendo >= divisore

WHILE espressione DO istruzione

WHILE dividendo >= divisore DO BEGIN dividendo := dividendo – divisore; quoziente := quoziente + 1 END;

:=

simbolo di assegnazione

:=

uguale dinamico

Dividendo, dopo l’operazione, conterrà

il valore della differenza tra

dividendo e divisore

Page 9: Problema :  come dividere due numeri                                interi se si è capaci di

acquisisci dividendoacquisisci divisore

quoziente 0

dividendo dividendo-divisorequoziente quoziente +1

scrivi quozientescrivi dividendo

dividendo < divisore

dividendo >= divisore

PROGRAM dividi;

VAR dividendo,divisore, quoziente: INTEGER;

BEGIN

READLN(dividendo);

READLN(divisore);

quoziente := 0;

WHILE dividendo >= divisore DO BEGIN dividendo := dividendo – divisore; quoziente := quoziente + 1 END;

WRITELN(quoziente,dividendo)

END.