• Aucun résultat trouvé

reste 37 4

N/A
N/A
Protected

Academic year: 2022

Partager "reste 37 4"

Copied!
3
0
0

Texte intégral

(1)

TP algorithmique 1 - PGCD et frations - 2 4

I Division

a. Comme en primaire

Vousvoulez diviser 37par4:àl'éole primaire,vousavezapprisàvousposer

la question:

En 37 ombien de fois 4?

Puis vient letemps dualul :

une fois 4, 4 : trop petit...

2 fois 4, 8 : trop petit...

3 fois 4, 12 : trop petit...

9 fois 4, 36 : trop petit...

10 fois 4, 40 : Ah! Trop grand!

Il yva don9 fois mais on n'y est pas enore : il me reste un petit pas à

faire de36 jusqu'à 37.

8 × 4 9 × 4 10 × 4

reste 37 4

Comment traduire ette division àl'aide d'une sommeetd'unproduit?

b. Parlons à l'ordinateur

Imaginez maintenant que vous devez expliquer e alul à un ordinateur en

l'imaginant ommeun petit lutinse promenant sur la droitedes nombres.

Vous pourriez ommener parlui dire :

tu pars de0 ettu vas ompter tesenjambées,

puis

tu avanes de 4 unitéstant que tu n'auraspasdépassé37.

Enn,

dèsquetu asdépassé37,tut'arrêtes:lequotientestlenombred'enjambées

moinsune.

Il nereste plusqu'à lui dire dans salangue... Nousétudierons prinipalement

deuxlangues informatiques ette année :le XCAS et leOCAML.

Par exemple, en XCAS,eladonne :

quotient(dividende,diviseur):={

enjambees:=0;

while(enjambees

*

diviseur<=dividende){

enjambees:=enjambees+1

}

return(enjambees­1)

}

Érivez un sript qui renvoie ette fois le reste de la division eulidienne de deux

nombres.

(2)

II. PGCD 2 4-LyéeJeanPerrin-2009/2010

. Parlons à un ordinateur plus malin

Les mathématiques, 'est pour les fainéants... Le problème, 'est que pour

pouvoir sepayerleluxe d'êtrefainéant,il faut pasmal rééhir!

Par exemple, je suis malin et passablement fainéant. Je dois diviser a par b

donsavoir en a ombiende fois b. Je medis :

Ben déjà, si a est plus petit que b, en a il y va zéro fois : le quotient

vaut don zéro

Puis jeme dis :

Si je reule de b, il ira une fois de moins b dans a. Cela signie que

quotient(a,b)=1+quotient(a-b,b)

Ehben, ave ça, unordinateur intelligent va sedébrouiller...

Onlui demandele quotient de 37par4 :

est-e que 37 est plus petit que 4? Non, don je garde en mémoire que

quotient(37,4)=1+quo ti ent(3 7- 4,4 ) etje m'oupede quotient(33,4);

est-e que 33 est plus petit que 4? Non, don je garde en mémoire que

quotient(33,4)=1+quo ti ent(3 3- 4,4 ) etje m'oupede quotient(29,4);

et.

est-e que 5 est plus petit que 4? Non, don je garde en mémoire que

quotient(5,4)=1+quot ie nt (5- 4,4 ) etje m'oupe de quotient(1,4);

est-e que1 estplus petit que 4?Oui,don jesais que quotient(1,4)=0;

donje vais pouvoiraluler quotient(5,4) puis quotient(9,4) puis et.

Çaparaît plus long maise sale boulot de gestion de la mémoire est fait par

deslogiiels intelligents. Nous pouvonsnous ontenter de donner juste àl'or-

dinateur un assimpleet un moyen pouraller d'un asompliqué versle as

simple.

Regardez plutt!

quotient_malin(dividende,diviseur):={

if(dividende<diviseur)

then{0}

else{1+quotient_malin(dividende­diviseur,diviseur)}

}

OCAMLparle àpeu prèsle mêmelangage :

let re quotient_malin(dividende,diviseur)=

if dividende<diviseur

then 0

else 1+quotient_malin(dividende­diviseur,diviseur)

Érivezunsriptqui renvoieette foislerestemalindeladivisioneulidienne dedeux

nombres.

II PGCD

a. Diviseur

Le PéGéCéDé de deuxnombres,'est leur plusgrand diviseur ommun.

D'abord, qu'est-e qu'onappelle un diviseur danse ontexte?

Par exemple, 4 divise 80 ar le reste de la division de 80 par 4 vaut 0 : la

division tombe justeomme vousdisiez en CM1.

Onpeutaussidire que4divise 32:4 estdonun diviseur ommun de 32 et

80.Maisest-e leplus grand?

b. Eulide

Eulide, 'est un savant gre qui a eu beauoup de bonnes idées il y a 2300

ans.On utiliseenore largement ses résultats aulyée.

Bon, vous voulez onnaître le plus grand diviseur ommun de deux nombres

aet b.

Est-equ'il en existe au moinsun?

L'idéed'Eulide aétéd'eetuer ladivision...eulidi enne de aparb.Soit ale

plus granddesdeux.

(3)

III. OPÉRATIONSSUR LESNOMBRES RATIONNELS 2 4-LyéeJeanPerrin-2009/2010

a=bq+r ave 06r<b

Appelons dun diviseur ommunde a etb.

Pourquoi d estaussiun diviseur ommunde bet r?

Et vie-versa etdansl'autre sens?

Donherher lePGCD de aetb revient à herher eluide betr.

Quelestl'avantage?Qu'est-equi sepasseauboutd'unmoment?Ya-t-ilun

assimple?Peut-on utiliser notre méthode de fainéant?

Testezvos onjeturessur la mahine.

III Opérations sur les nombres rationnels

a. Fration simpliée

Quelle diéreneexiste-t-il entre 7

3 et

21

9

?

Quelrle peutjouer lePGCDdans ette histoire?

Onva réerun programme simpliant les frations.

Au lieu d'érireun nombrerationnel sous la forme

numérateur

dénominateur

, onva l'en-

trer dansla mahinesous la forme[numérateur,dénominateur℄.

Ainsi 21

9

s'érira [21,9℄.

Onpeutalors réerun programme qui simplieraunefration donnée.

Par exemple surXCAS:

simp(Fration):={

a:=Fration[0℄; // le premier terme de la fration

b:=Fration[1℄; // le seond

if(b==0)

then{"On peut po diviser par 0"}

else{[a/pgd(a,b),b/pgd(a,b)℄}

}:;

Desommentaires?

SurOCAML,on proèdeàquelques aménagements.

Pourprévenir toute divisionparzéroon varéerun opérateurtraitant lesex-

eptionsqu'onnommeraDivision_par_zeroet quinousservirade garde-

fou:

# exeption Division_par_zero;;

On invoquera ette exeption ave la ommande raise: étant donné votre

niveau d'anglais,ette ommandeest naturelle!...

Onpeutréerun opérateurqui simplie les frations :

# let simp([a;b℄) =

if b=0 then raise Division_par_zero

else [a/pgd(a,b);b/pgd(a,b)℄;;

b. Opérations sur les frations

Onrée ensuiteune sommesimpliée de frations :

# let som([a;b℄,[;d℄) =

if b=0 or d=0 then raise Division_par_zero else

simp([a

* d+b

*

;b

* d℄);;

Par exemple :

# som([2;3℄,[1;6℄);;

­ : int list = [5; 6℄

Bon:oupez-vousdelamultipliation, dualul del'inverseetdeladivision.

Quandtout seraprêt, ommententrer

1+ 2+

3

4

1- 5

6

et

3+ 1

2+ 1

1+

1

2+

1

6

.

Références

Documents relatifs

« au programme » de cet exercice d’arithmétique qui propose, classiquement désormais, comme application des résultats intermédiaires un travail de décodage où la calculatrice peut

Il convient, dans un premier temps d’étudier la factorisation du polynôme S puis d’exprimer et d’exploiter les hypothèses fournies.. Or, par hypothèse, ce reste

[r]

[r]

[r]

Compl´ eter l’algorithme ci-dessous pour qu’il affiche les quatre solutions trouv´ ees dans la question pr´ ec´ edente.. Alice peut-elle connaˆıtre la premi` ere lettre du

Le jeu du gâteau : combien de bougies restent-il quand tu en souffles autant que le nombre indiqué sur le dé?. Il reste :

[r]