Premi`ere S Lyc´ee Jean Vilar 2013/2014
´
Ecrire un programme qui compte le nombre de points A appartenant `a Det tels que les coordonn´ees
soient des nombres entiers compris entre -20 et 20.
Avant d’´ecrire le programme, pr´ecisons l’algorithme (ou comment on fait pour compter ces points).
Rappelons que si l’on se donne xalors on connait y:
y=3≠6x
15
Ainsi, pour xallant de ≠20 `a 20, il nous suffit de tester si yest un nombre entier compris entre
≠20 et 20.
D’autre part, notons que la fonction affine f(x)=3≠6x
15 est d´ecroissante (son coefficient directeur
est ≠6
15 =≠2
5), ainsi pour tout ≠20 ÆxÆ20, on a 20 Øf(≠20) Øy=f(x)Øf(20) Ø≠20.D’o`u
la condition ≠20 ÆyÆ20 est automatiquement v´erifi´ee.
L’algorithme est alors le suivant :
1: x, y sont des nombres
2: compteur est un nombre entier
3: compteur Ω0Ûinitialisation
4: for x allant de -20 `a 20 do
5: if 3 - 6x est divisible par 15 then
6: incr´ementer le compteur de 1
7: yΩ3≠6x
15
8: afficher (x,y)
9: end if
10: end for
11: Afficher compteur
Une fa¸con de tester si un nombre est divisible par 15 est de v´erifier si le reste de sa division
euclidienne par 15 est nul. Dans le langage d’AlgoBox, le reste de la division euclidienne d’un
nombre n par 15 se calcul `a l’aide la commande %, ainsi : n % 15.
Voici maintenant le programme Algobox :
1: VARIABLES
2: x EST_DU_TYPE NOMBRE
3: y EST_DU_TYPE NOMBRE
4: compteur EST_DU_TYPE NOMBRE
5: DEBUT_ALGORITHME
6: compteur PREND_LA_VALEUR 0
7: POUR xALLANT_DE -20 A20
8: DEBUT_POUR
9: SI ( (3-6*x) % 15 == 0 ) ALORS
10: DEBUT_SI
11: compteur PREND_LA_VALEUR compteur + 1
12: y PREND_LA_VALEUR (3-6*x)/15
13: AFFICHER "\n("
14: AFFICHER x
15: AFFICHER ", "
16: AFFICHER y
17: AFFICHER ")"
18: FIN_SI
19: FIN_POUR
20: AFFICHER "\n Nombre de solutions: "
21: AFFICHER compteur
22: FIN_ALGORITHME
23