Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Problema: come dividere due numeri
interi se si è capaci di fare solo somme e sottrazioni ?
2
L’informatica è una disciplina che vive nello spazio che intercorre
tra i problemi e le risorse tecnologiche L’informatico: successivamente decide COME l’esecutore deve operare inizialmente analizza il problema per precisare CHE COSA deve essere fatto
3
33 < 38 … il calcolo è terminato
147 : 38 divisore quoziente dividendo 147 – 38 = 109 – 38 = 71 – 38 = 33 < 38 … il calcolo è terminato 147 : 38 = 3 con il resto di 33
4
3 33 147 109 71 33 38 1 3 2 acquisisci dividendo acquisisci divisore
quoziente 0 quoziente 1 dividendo dividendo-divisore quoziente quoziente +1 3 2 dividendo >= divisore schermo dividendo < divisore 3 33 scrivi quoziente scrivi dividendo
5
Utilizzando i diagrammi
PROGRAM dividi; acquisisci dividendo acquisisci divisore Utilizzando i diagrammi sintattici VAR dividendo,divisore, quoziente: INTEGER; BEGIN quoziente 0 READLN(dividendo); READLN(divisore); quoziente := 0; REPEAT dividendo := dividendo – divisore; quoziente := quoziente + 1 UNTIL dividendo < divisore; L’esecutore predispone tre locazioni di memoria in cui registrerà dei numeri interi dividendo dividendo-divisore quoziente quoziente +1 dividendo >= divisore dividendo < divisore WRITELN(quoziente,dividendo) END. scrivi quoziente scrivi dividendo
6
La struttura iterativa
falso Si ripete l’istruzione eseguita fino a che la condizione indicata si verifica Vero Analogo effetto si potrebbe ottenere utilizzando una forma linguistica differente falso Vero In questo caso la ripetizione avviene solo se la condizione si verifica l’istruzione potrebbe non essere eseguita
7
3 33 147 109 71 33 38 1 3 2 acquisisci dividendo acquisisci divisore
quoziente 0 dividendo < divisore quoziente dividendo >= divisore 1 dividendo dividendo-divisore quoziente quoziente +1 3 2 schermo 3 33 scrivi quoziente scrivi dividendo
8
:= := dividendo dividendo-divisore quoziente quoziente +1
WHILE espressione DO istruzione WHILE dividendo >= divisore DO BEGIN dividendo := dividendo – divisore; quoziente := quoziente + 1 END; Dividendo, dopo l’operazione, conterrà il valore della differenza tra dividendo e divisore := simbolo di assegnazione := uguale dinamico
9
dividendo dividendo-divisore quoziente quoziente +1
PROGRAM dividi; acquisisci dividendo acquisisci divisore VAR dividendo,divisore, quoziente: INTEGER; BEGIN READLN(dividendo); quoziente 0 READLN(divisore); dividendo < divisore quoziente := 0; dividendo >= divisore WHILE dividendo >= divisore DO BEGIN dividendo := dividendo – divisore; quoziente := quoziente + 1 END; dividendo dividendo-divisore quoziente quoziente +1 WRITELN(quoziente,dividendo) scrivi quoziente scrivi dividendo END.
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.