1 / 9

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 ?. L’informatica è una disciplina che vive nello spazio che intercorre tra i problemi e le risorse tecnologiche.

geoff
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 147 : 38 divisore quoziente dividendo 147 – 38 = 109 1 109 – 38 = 71 2 71 – 38 = 33 3 33 < 38 … il calcolo è terminato 147 : 38 = 3 con il resto di 33

  4. dividendo 147 33 71 109 acquisisci dividendo acquisisci divisore divisore 38 quoziente  0 quoziente 1 dividendo  dividendo-divisore quoziente  quoziente +1 3 2 0 dividendo >= divisore schermo dividendo < divisore 3 33 scrivi quoziente scrivi dividendo

  5. 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. dividendo 147 33 71 109 acquisisci dividendo acquisisci divisore divisore 38 quoziente  0 dividendo < divisore quoziente dividendo >= divisore 1 dividendo  dividendo-divisore quoziente  quoziente +1 3 2 0 schermo 3 33 scrivi quoziente scrivi dividendo

  8. dividendo < divisore dividendo >= divisore 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. 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.

More Related