Seconde
/ Algorithmes 15 exercices corrigés
- Etude générale d'algorithmes (4 exercices)
- Première utilisation d'algoBox (4 exercices)
- Création d'algorithme (2 exercices)
- Tracé de courbes (2 exercices)
- Observation de la loi des grands nombres (2 exercices)
- Dichotomie (1 exercice)
E.3069
1
La
commande
floor
permet
d’obtenir
la
partie
entière
d’un
nombre
;
supposons
que
la
variable
a
ait
la
valeur
3
;
1415926535
.
a
Donner
la
valeur
de
floor(a*10)
.
b
En
déduire
la
commande
pour
obtenir
la
valeur
par
défaut
de
a
au
dixième
près
;
au
centième
près.
2
Déterminer
les
restes
des
divisions
euclidiennes
suiv-antes
:
a
10
par
3
b
33
par
5
c
27
par
4
d
69
par
8
La
commande
a
%
b
renvoie
le
reste
de
la
division
euclidi-enne
de
a
par
b
:
e
Quelles
peuvent
être
les
valeurs
de
a
%2
?
de
2
%
a
?
f
À
l’aide
d’une
structure
conditionnelle,
écrire
un
al-gorithme
qui
demande
la
saisie
d’un
entier
puis
qui
affiche
les
phrases
ˇce
nombre
est
pairı
ou
ˇ
ce
nombre
est
impair
ı
suivant
les
cas.
3
La
commande
sqrt(2)
renvoie
la
racine
carrée
du
nom-bre
2:
a
Écrire
un
algorithme
demandant
à
l’utilisateur
quatre
nombres
représentant
les
coordonnées
de
deux
points,
et
renvoyant
la
distance
séparant
ces
deux
points.
b
Modifier
l’algorithme
pour
qu’il
affiche
la
valeur
par
défaut
de
cette
distance
au
dixième
près.
E.3044
1
Saisir
l’algorithme
ci-dessous
dans
le
langage
de
program-mation
de
votre
choix:
Pour
a
allant
de
1
à
25
x
←
a
×
a
Fin
Pour
2
Par
une
exécution
pas
à
pas
de
cet
algorithme,
donner
l’ensemble
des
valeurs
qui
seront
affectées
à
la
variable
x
.
E.3068
1
Saisir
l’algorithme
ci-dessous
dans
le
langage
de
program-mation
de
votre
choix:
a
←
0
Tant
que
a<100
x
←
a%2
Si
x=0
Alors
y
←
a
Fin
Si
a
←
a+1
Fin
Tant
que
2
Lors
de
l’exécution
de
l’algorithme
pas
à
pas,
quelles
sont
les
différentes
valeurs
affectées
à
la
variable
y
?
3
Modifier
cet
algorithme
afin
que
la
variable
y
soit
affec-tée
successivement
de
tous
les
multiples
de
13
inférieurs
à
100
.
E.3070
1
Saisir
l’algorithme
ci-dessous
dans
le
langage
de
program-mation
de
votre
choix:
Fonction
f(a)
a
←
a
Tant
que
a>=1
a
←
a
−
1
Fin
Tant
que
Renvoyer
a
2
a
Effectuer
un
appel
à
la
fonction
f
avec
chacune
des
valeurs
suivantes
:
1
;
2
;
3
;
4
;
9
;
10
b
Quel
est
le
rôle
de
la
fonction
f
?
3.
Création
d’algorithme
E.3071
Le
schéma
ci-dessous
représente
l’algorithme
d’Euclide.
Construire
cet
algorithme
à
l’aide
d’AlgoBox.
E.3090
On
considère
l’algorithme
ci-dessous
où
les
variables
x
et
i
sont
de
type
nombre
:
https://chingmath.fr
sacados/3069
sacados/3044
sacados/3068
sacados/3070
sacados/3071
Lire les nombresAetBTant queLerestedeladivisiondeAparBest non nul?Le PGCD estBˆAprend pour valeurBˆBprend pour valeurrOn e∑ectue la division euclidienne deAparBSortiedeboucle
sacados/3090
Lire le nombrexA`cher 1Pouriallant de 2 àxLe reste de la division euclidiennedexparivaut 0?A`cher " - "A`cheriFin de l’algorithmeSortiedeboucleOuiNon
1
Construire
cet
algorithme
à
l’aide
d’AlgoBox.
2
Mathématiquement,
à
quoi
sert
cet
algorithme?
4.
Tracé
de
courbes
E.3091
1
a
Dans
AlgoBox
et
dans
l’onglet
ˇ
Dessiner
dans
un
repère
ı,
cocher
la
case
ˇ
Utiliser
un
repère
ı
;
saisir
les
valeurs
suivantes
pour
les
bornes
des
axes
:
Xmin:-5
;
Xmax:5
;
GraduationsX:1
Ymin:0
;
Ymax:25
;
GraduationsY:1
b
Saisir
dans
AlgoBox
l’algorithme
ci-dessous
:
c
Exécuter
l’algorithme
pour
observer
son
affichage.
d
Que
semble
afficher
cet
algorithme?
2
On
souhaite
tracer
davantage
de
points
de
cette
courbe,;
pour
cela,
on
modifie
la
boucle
itérative
pour
que
les
abscisses
des
points
soient
espacées
de
0
;
1
en
0
;
1
:
a
Modifier
la
ligne
x
PREND_LA_VALEUR
i
en
:
x
PREND_LA_VALEUR
i/10
b
Exécuter
l’algorithme
pour
observer
l’effet
de
ces
mod-ifications.
c
Quelle
modification
faut-il
effectuer
sur
l’algorithme
pour
que
la
courbe
représentative
s’affiche
sur
l’intervalle
−
5
;
5
?
d
Appliquer
ces
changements
et
relancer
cet
algorithme.
E.3092
On
considère
la
fonction
f
définie
par
:
f
(
x
)
=
x
−
1
Dans
un
repère
O
;
I
;
J
orthogonal,
on
note
C
f
la
courbe
représentative
de
la
fonction
f
.
1
a
Déterminer
l’ensemble
de
définition
de
la
fonction
f
.
b
Déterminer
les
coordonnées
du
point
de
la
courbe
C
f
ayant
pour
abscisse
1
.
2
a
Dans
AlgoBox
et
dans
l’onglet
ˇ
Dessiner
dans
un
repère
ı,
cocher
la
case
ˇ
Utiliser
un
repère
ı
;
saisir
les
valeurs
suivantes
définissant
les
bornes
des
axes
:
Xmin:0
;
Xmax:9
;
GraduationsX:1
Ymin:0
;
Ymax:3
;
GraduationsY:1
b
Saisir
dans
AlgoBox
l’algorithme
suivant
:
c
Exécuter
l’algorithme
et
observer
le
graphique
obtenu.
3
Le
but
de
cette
question
est
de
tracer
la
courbe
C
f
par
des
segments
reliant
chacun
des
points
précédents.
a
Effacer
la
commande
ˇ
TRACER_POINT
(x2,y2)
ı
pour
la
remplacer
par
la
commande
TRACER_SEGMENT
reliant
les
points
de
coordonnées
(x1,y1)
et
(x2,y2)
.
b
Exécuter
l’algorithme
pour
observer
les
modifications.
Le
tracé
effectué
est
composé
uniquement
de
segments.
Quelle
est
l’origine
commune
à
tous
ces
segments?
Pourquoi?
c
Avant
la
définition
de
la
boucle
POUR
et
en
relation
avec
la
question
1
b
,
initialiser
correctement
les
valeurs
de
x1
et
y1
afin
d’améliorer
le
tracé
de
la
courbe
C
f
.
d
Pour
tracer
la
courbe
C
f
segment
par
segment,
l’algorithme
doit
relier
le
point
actuel
avec
le
point
précédent.
Juste
avant
la
fin
de
la
boucle
POUR
,
affecter
à
x1
et
y1
les
valeurs
de
x2
et
y2
.
5.
Observation
de
la
loi
des
grands
nombres
E.3108
1
a
Saisir
dans
l’algorithme
suivant
dans
le
la
langage
de
programmation
de
votre
choix:
c
←
0
Pour
i
allant
de
0
à
100
x
←
valeur
aléatoire
appartenant
à
0
;
1
x
←
partie
entière
de
3
×
x
Fin
Pour
b
Lors
d’une
exécution
pas
à
pas
de
cet
algorithme,
quelles
valeurs
sont
affectées
à
la
variable
ˇ
x
ı?
https://chingmath.fr
sacados/3091
VARIABLESxEST_DU_TYPENOMBREyEST_DU_TYPENOMBREiEST_DU_TYPENOMBREDEBUT_ALGORITHMEPOURiALLANTDE-5A5DEBUT_POURxPREND_LA_VALEURiyPREND_LA_VALEURx*xTRACER_POINT(x,y)FIN_POURFIN_ALGORITHME
sacados/3092
VARIABLESx1EST_DU_TYPENOMBREy1EST_DU_TYPENOMBREx2EST_DU_TYPENOMBREy2EST_DU_TYPENOMBREiEST_DU_TYPENOMBREDEBUT_ALGORITHMEPOURiALLANTDE10A100DEBUT_POURx2PREND_LA_VALEURi/10y2PREND_LA_VALEURsqrt(x2-1)TRACER_POINT(x2,y2)FIN_POURFIN_ALGORITHME
sacados/3108
2
a
Ajouter
une
structure
conditionnelle
à
l’intérieur
de
la
boucle
POUR
afin
que
l’instruction
:
c
←
c+1
soit
exécutée
chaque
fois
que
la
variable
ˇ
x
ı
prend
la
valeur
2
.
b
Exécuter
plusieurs
fois
l’algorithme
et
observer
la
valeur
de
la
variable
c
.
Peut-on
expliquer
les
variations
des
valeurs
de
la
vari-able
c
?
3
a
Modifier
l’algorithme
afin
que
la
boucle
effectue
500
itérations
et
ajouter
l’instruction
ci-dessous
en
fin
d’algorithme:
f
←
c
500
b
Exécuter
plusieurs
fois
cet
algorithme
et
observer
les
variations
de
la
valeur
de
la
variable
f
en
fin
d’algorithme.
4
Que
peut-on
faire
pour
que
les
variations
de
la
variable
f
se
stabilisent?
E.3109
1
a
Activer
l’utilisation
d’un
repère
dans
AlgoBox
en
prenant
les
paramètres
suivants
:
Xmin
:
0
Xmax:
10
Graduations
X:
1
Ymin
:
0
Ymax:
10
Graduations
Y:
1
b
Saisir
l’algorithme
suivant
dans
AlgoBox:
c
Exécuter
cet
algorithme.
Quelle
est
son
action?
2
a
En
utilisant
l’exercice
précédant,
modifier
l’algorithme
présent
pour
qu’il
affiche
la
fréquence
d’apparition
du
nombre
2
(dans
la
variable
x
)
.
b
Modifier
l’algorithme
pour
qu’il
affiche
la
droite
d’équation
y=1/3
.
c
Augmenter
le
nombre
de
tirages
de
cet
algorithme.
Quelle
observation
peut-on
faire
lors
de
l’exécution
de
l’algorithme?
6.
Dichotomie
E.3146
1
Saisir
l’algorithme
ci-dessous
:
2
a
Exécuter
cet
algorithme
avec
les
valeurs
suivantes
:
xMin=1
;
borneMax=3
;
x=1.9384
b
Observer
les
valeurs
successives
de
borneMin
et
borneMax
:
vers
quelle
valeur
semnble-t-elle
tendre?
3
Modifier
cet
algorithme
pour
que
ces
deux
valeurs
se
rap-prochent
de
2
.
https://chingmath.fr
sacados/3109
VARIABLESxEST_DU_TYPENOMBREiEST_DU_TYPENOMBREmaxEST_DU_TYPENOMBREDEBUT_ALGORITHMEmaxPREND_LA_VALEUR100POURiALLANTDE1A100DEBUT_POURxPREND_LA_VALEURrandom()xPREND_LA_VALEURfloor(x*3)TRACER_POINT(10*i/max,x)FIN_POURFIN_ALGORITHME
sacados/3146
VARIABLESborneMinEST_DU_TYPENOMBREborneMaxEST_DU_TYPENOMBRExEST_DU_TYPENOMBREDEBUT_ALGORITHMETANT_QUE(borneMax-borneMin>pow(10,-3))FAIREDEBUT_TANT_QUESI(x<(borneMin+borneMax)/2)ALORSDEBUT_SIborneMaxPREND_LA_VALEUR(borneMin+borneMax)/2FIN_SISINONDEBUT_SINONborneMinPREND_LA_VALEUR(borneMax+borneMin)/2FIN_SINONAFFICHERborneMinAFFICHER"-"AFFICHERborneMaxFIN_TANT_QUEFIN_ALGORITHME