Premi`ere S Lyc´ee Jean Vilar 2013/2014
AlgoBox : Vecteurs et droites du plan
Exercice 1. On consid`ere l’algorithme suivant ?
Variables xA, yA, xU, yU, a, b, c sont des nombres réels
Entrée Saisir xA, yA, xU et yU
Initialisation
a prend la valeur yU
b prend la valeur -xU
c prend la valeur -a xA – b yA
Sortie
Afficher « l'équation est ax + by + c = 0
avec a », a, ««b = », b, « c = », c
1. `
A quoi sert l’algorithme ? Expliquer.
2. Compl´eter le programme suivant qui correspond `a l’algorithme :
1: VARIABLES
2: xA EST_DU_TYPE NOMBRE
3: yA EST_DU_TYPE NOMBRE
4: xU EST_DU_TYPE NOMBRE
5: yU EST_DU_TYPE NOMBRE
6: ...
7: ...
8: ...
9: DEBUT_ALGORITHME
10: LIRE xA
11: LIRE yA
12: ...
13: ...
14: a PREND_LA_VALEUR yU
15: b PREND_LA_VALEUR -xU
16: ...
17: AFFICHER "L’équation est de la forme ax + by + c = 0"
18: AFFICHER "\navec a = "
19: AFFICHER a
20: ...
21: ...
22: ...
23: ...
24: FIN_ALGORITHME
ou en Python :
x_A =input(”x A = )
y_A =input(”y A = )
...
...
a=y_U
b=x_U
...
print ”L equation de la droite passant par Aet de vecteur directeur U
est
print a,”x + ,...
19
Premi`ere S Lyc´ee Jean Vilar 2013/2014
Exercice 2. Ecrire un programme qui demande a,bet ctrois nombres r´eels et ensuite qui teste si
a=0ou b=0et le cas ´ech´eant ache ”ax + by + c = 0” est l’´equation cart´esienne d’une droite”.
Exercice 3. Coder dans AlgoBox l’algorithme suivant :
a, b, c sont des nombres
xA, yA sont des nombres
Lire a, b et c
Si a <> 0 ou b <> 0 alors
lire xA, yA
si A appartient à la droite D d’équation ax + by + c = 0 alors
Afficher "A appartient à D"
fin
fin
Exercice 4. On consid`ere la droite Dd’´equation
6x+ 15y=3
´
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.
20
Premi`ere S Lyc´ee Jean Vilar 2013/2014
AlgoBox : Vecteurs et droites du plan
(corrig´e)
Exercice 1. On consid`ere l’algorithme suivant ?
Variables xA, yA, xU, yU, a, b, c sont des nombres réels
Entrée Saisir xA, yA, xU et yU
Initialisation
a prend la valeur yU
b prend la valeur -xU
c prend la valeur -a xA – b yA
Sortie
Afficher « l'équation est ax + by + c = 0
avec a », a, ««b = », b, « c = », c
1. `
A quoi sert l’algorithme ? Expliquer.
2. Compl´eter le programme suivant qui correspond `a l’algorithme :
1: VARIABLES
2: xA EST_DU_TYPE NOMBRE
3: yA EST_DU_TYPE NOMBRE
4: xU EST_DU_TYPE NOMBRE
5: yU EST_DU_TYPE NOMBRE
6: a EST_DU_TYPE NOMBRE
7: b EST_DU_TYPE NOMBRE
8: c EST_DU_TYPE NOMBRE
9: DEBUT_ALGORITHME
10: LIRE xA
11: LIRE yA
12: LIRE xU
13: LIRE yU
14: a PREND_LA_VALEUR yU
15: b PREND_LA_VALEUR -xU
16: c PREND_LA_VALEUR -a * xA + b * yA
17: AFFICHER "L’équation est de la forme ax + by + c = 0"
18: AFFICHER "\n avec a = "
19: AFFICHER a
20: AFFICHER "\n b = "
21: AFFICHER b
22: AFFICHER "\n c = "
23: AFFICHER c
24: FIN_ALGORITHME
Exercice 2. Ecrire un programme qui demande a,bet ctrois nombres r´eels et ensuite qui teste si
a=0ou b=0et le cas ´ech´eant ache ”ax + by + c = 0” est l’´equation cart´esienne d’une droite” :
1: VARIABLES
2: a EST_DU_TYPE NOMBRE
3: b EST_DU_TYPE NOMBRE
4: c EST_DU_TYPE NOMBRE
5: DEBUT_ALGORITHME
6: LIRE a
7: LIRE b
21
Premi`ere S Lyc´ee Jean Vilar 2013/2014
8: LIRE c
9: SI ( a!= 0 ou b != 0 ) ALORS
10: DEBUT_SI
11: AFFICHER "ax+by+c = 0 décrit une droite"
12: FIN_SI
13: SINON
14: DEBUT_SINON
15: AFFICHER "ax + by + c = 0 ne décrit pas une droite"
16: FIN_SINON
17: FIN_ALGORITHME
Exercice 3. Coder dans AlgoBox l’algorithme suivant :
a, b, c sont des nombres
xA, yA sont des nombres
Lire a, b et c
Si a <> 0 ou b <> 0 alors
lire xA, yA
si A appartient à la droite D d’équation ax + by + c = 0 alors
Afficher "A appartient à D"
fin
fin
On rappelle que le point A(xA;yA)appartient `a la droite Dsi et seulement si on a l’´egalit´e :
axA+byA+c=0. D’o`u, le programme :
1: VARIABLES
2: a EST_DU_TYPE NOMBRE
3: b EST_DU_TYPE NOMBRE
4: c EST_DU_TYPE NOMBRE
5: xA EST_DU_TYPE NOMBRE
6: yA EST_DU_TYPE NOMBRE
7: DEBUT_ALGORITHME
8: LIRE a
9: LIRE b
10: LIRE c
11: SI ( a!= 0 ou b != 0 ) ALORS
12: DEBUT_SI
13: LIRE xA
14: LIRE yA
15: SI (a*xA + b*yA + c == 0) ALORS
16: DEBUT_SI
17: AFFICHER "A(xA;yA) appartient à la droite D"
18: FIN_SI
19: SINON
20: DEBUT_SINON
21: AFFICHER "A(xA;yA) n’appartient pas à la droite D"
22: FIN_SINON
23: FIN_SI
24: SINON
25: DEBUT_SINON
26: AFFICHER "ax + by + c = 0 ne décrit pas une droite"
27: FIN_SINON
28: FIN_ALGORITHME
Exercice 4. On consid`ere la droite Dd’´equation
6x+ 15y=3
22
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=36x
15
Ainsi, pour xallant de 20 `a 20, il nous sut de tester si yest un nombre entier compris entre
20 et 20.
D’autre part, notons que la fonction ane f(x)=36x
15 est d´ecroissante (son coecient directeur
est 6
15 =2
5), ainsi pour tout 20 ÆxÆ20, on a 20 Øf(20) Øy=f(x)Øf(20) Ø≠20.Do`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Ω36x
15
8: acher (x,y)
9: end if
10: end for
11: Acher 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
1 / 5 100%