Corrigé des 31 exercices sur les algorithmes et programmes en seconde à télécharger en PDF

Les algorithmes et programmes – Corrigé d'exercices de maths niveau Seconde sur Maths-pdf.fr Couverture : Cahier d'exercices corrigés de maths 2de en PDF Télécharger en PDF Le livre d'exercices corrigés en 2de PDF à imprimer Voir le livre ›


Sommaire

Toutefois, ce corrigé exercices algorithmes seconde réunit la solution détaillée des 31 exercices de la fiche « algorithmes et programmes ». Puis les dix premiers posent les bases : type d’une variable, affectation, exécution pas à pas, instruction conditionnelle if … else, boucle bornée for et simulation d’un lancer de pièce. De plus, la suite passe à des situations plus riches : écrire une fonction Python pour un tarif de location, une distance sur une droite graduée, le volume d’un cylindre ou le test de Pythagore, puis prévoir ce que renvoie un script donné. Ensuite, on y rencontre la boucle non bornée while, l’algorithme de Héron qui approche une racine carrée, la dichotomie, le reste d’une division euclidienne et le rôle des ensembles de nombres ℕ, ℤ, ℚ et ℝ. Par ailleurs, la difficulté augmente progressivement, jusqu’aux cas limites qui font planter un programme (racine d’un nombre négatif, division par zéro).

De même, ces solutions s’adressent aux élèves de seconde qui préparent un contrôle, aux parents qui suivent les devoirs et aux enseignants qui veulent une rédaction de référence. Notamment, chaque résolution suit les variables dans un tableau, donne le résultat et propose un programme que l’on peut tester. Puis le bon usage : chercher d’abord au brouillon en exécutant l’algorithme à la main, puis comparer avec la correction. Ensuite, le sommaire permet d’aller directement à l’exercice voulu.

corrigé algorithmes seconde (suite)

En outre, les énoncés se trouvent sur la fiche Algorithmes et programmes : exercices de maths en 2de corrigés en PDF.. Puis cherchez d’abord chaque exercice au brouillon, puis comparez avec la correction.

Corrigé des exercices 1 à 10 sur les algorithmes et la programmation en seconde

Exercice 1 : Programme avec le langage Python

Revoir l’énoncé de l’exercice 1

Énoncé de l'exercice 1 : Programme avec le langage Python

Donc, a) La valeur saisie est convertie par int( ) : \(x\) est une variable de type entier (int).

b) Le programme calcule successivement \(4x\), puis \(4x+1\), puis le carré.

\(x\) \(y=4x\) \(y=y+1\) \(y=y^2\) (affiché)
3 12 13 169
−1 −4 −3 9
11 44 45 2 025

c) En suivant les affectations : \(f(x)=(4x+1)^2\) (que l’on peut développer en \(16x^2+8x+1\)).

Réponse : \(x\) est un entier ; \(y=169\), \(9\) et \(2\,025\) ; \(f(x)=(4x+1)^2\).

Notamment, ↑ Sommaire · Énoncés de la fiche

Exercice 2 : Décrire le rôle et fonctionnement de l’algorithme (corrigé algorithmes seconde)

Revoir l’énoncé de l’exercice 2

Énoncé de l'exercice 2 sur les algorithmes et la programmation en seconde : Décrire le rôle et fonctionnement de l’algorithme

Enfin, Fonctionnement. L’algorithme demande une chaîne de caractères \(C\) non vide. De plus, il range dans \(\ell\) le nombre de caractères de \(C\) : \(\ell\) est donc la position du dernier caractère. Ensuite, il extrait ensuite de \(C\) la sous-chaîne qui commence au caractère numéro \(\ell\) et qui contient 1 caractère, et l’affiche.

De même, exemple. Avec \(C=\) « algorithme » : \(\ell=10\) et Sch(« algorithme », 10, 1) = « e ».

Ainsi, rôle. L’algorithme affiche le dernier caractère de la chaîne saisie. Par ailleurs, en Python, on écrirait simplement C[len(C)-1] ou C[-1] (attention, en Python la numérotation commence à 0).

Réponse : l’algorithme affiche le dernier caractère de la chaîne saisie.

Toutefois, ↑ Sommaire · Énoncés de la fiche

Exercice 3 : Programme et magasin de reprographie

Revoir l’énoncé de l’exercice 3

Énoncé de l'exercice 3 sur les algorithmes et la programmation en seconde : Programme et magasin de reprographie – corrigé algorithmes seconde

Ensuite, a) Jusqu’à 50 photocopies, chacune coûte 0,15 € : \(\text{Prix}=0{,}15\times N\). En outre, Au-delà, les 50 premières coûtent \(50\times0{,}15=7{,}50\) € et chacune des \(N-50\) suivantes coûte 0,10 €.

Puis, ligne ① : Prix=0.15*N
Ligne ② : Prix=0.15*50+0.10*(N-50) (soit Prix=7.5+0.1*(N-50))

b) Le programme complet :

Par ailleurs, print(« Entrer N : »)
N=int(input())
if N<=50:
    Prix=0.15*N
else:
    Prix=0.15*50+0.10*(N-50)
print(« Prix= »,Prix)

Toutefois, c) Contrôles : pour \(N=30\), \(30\times0{,}15=4{,}50\) € ; pour \(N=50\), \(7{,}50\) € ; pour \(N=80\), \(7{,}50+30\times0{,}10=10{,}50\) €. Remarque : si l’on comprend que toutes les copies passent à 0,10 € au-delà de 50, la ligne ② devient Prix=0.10*N ; mais alors 51 copies (5,10 €) coûteraient moins cher que 50 (7,50 €), ce qui est peu vraisemblable.

Réponse : ① Prix=0.15*N ; ② Prix=7.5+0.1*(N-50) ; par exemple 80 photocopies coûtent 10,50 €.

Ensuite, ↑ Sommaire · Énoncés de la fiche

Exercice 4 : Algorithme qui affiche la distance (corrigé algorithmes seconde)

Revoir l’énoncé de l’exercice 4

Énoncé de l'exercice 4 : Algorithme qui affiche la distance

a) Durée = distance ÷ vitesse.

\[ t_1=\frac{5}{15}=\frac{1}{3}\text{ h}=20\text{ min} \qquad t_2=\frac{7-5}{12}=\frac{1}{6}\text{ h}=10\text{ min} \]

Louise met 30 minutes au total.

Puis, b) À 15 km/h, on parcourt \(\frac{15}{60}=0{,}25\) km par minute ; à 12 km/h, \(\frac{12}{60}=0{,}2\) km par minute. Donc :

  • si \(0\leqslant t\leqslant20\) : \(d(t)=0{,}25\,t\) ;
  • si \(20\lt t\leqslant30\) : \(d(t)=5+0{,}2\,(t-20)\) ;
  • Par ailleurs, si \(t\gt30\) : la course est finie, \(d(t)=7\).

Toutefois, t=float(input(« t en minutes : « ))
if t<=20:
    d=0.25*t
elif t<=30:
    d=5+0.2*(t-20)
else:
    d=7
print(« d(t) = »,d, »km »)

Par exemple, pour \(t=25\) min, le programme affiche \(5+0{,}2\times5=6\) km.

051015202530351234567t (min)d (km)15 km/h12 km/h
La distance parcourue en fonction du temps : 5 km en 20 min, puis 2 km en 10 min
Réponse : Louise met 30 min ; \(d(t)=0{,}25t\) jusqu’à 20 min, puis \(d(t)=5+0{,}2(t-20)\) jusqu’à 30 min, puis 7 km.

Ainsi, ↑ Sommaire · Énoncés de la fiche

Exercice 5 : Un algorithme à étudier

Revoir l’énoncé de l’exercice 5

Énoncé de l'exercice 5 sur les algorithmes et la programmation en seconde : Un algorithme à étudier – corrigé algorithmes seconde

Notamment, a) On suit l’évolution de \(S\) pour \(n=5\) :

\(i\) 1 2 3 4 5
\(S\) 1 5 14 30 55

Donc, le résultat affiché est 55.

Car b) À chaque tour, on ajoute \(i^2\) à \(S\). Puis l’algorithme calcule donc la somme des carrés des entiers de 1 à \(n\) : \(S=1^2+2^2+\dots+n^2\).

Réponse : pour \(n=5\), \(S=55\) ; l’algorithme calcule \(1^2+2^2+\dots+n^2\).

Donc, ↑ Sommaire · Énoncés de la fiche

Exercice 6 : Un algorithme qui donne l’image par une fonction (corrigé algorithmes seconde)

Revoir l’énoncé de l’exercice 6

Énoncé de l'exercice 6 sur les algorithmes et la programmation en seconde : Un algorithme qui donne l’image par une fonction

Par ailleurs, on traduit les trois cas par une instruction conditionnelle à trois branches :

Donc, def f(x):
    if x<=0:
        return x**2
    elif x<=1:
        return x
    else:
        return -2*x+3

Le elif n’est examiné que si \(x\gt0\) : la condition x<=1 correspond donc bien au cas \(0\lt x\leqslant1\). Tests : \(f(-2)=4\), \(f(0{,}5)=0{,}5\), \(f(3)=-3\).

−2−1123−3−2−11234Ox²x−2x + 3
La courbe de f est formée de trois morceaux qui se raccordent en (0 ; 0) et (1 ; 1)
Réponse : fonction Python à trois cas if x<=0 / elif x<=1 / else renvoyant \(x^2\), \(x\) ou \(-2x+3\).

Ensuite, ↑ Sommaire · Énoncés de la fiche

Exercice 7 : Simuler 100 lancers avec Python

Revoir l’énoncé de l’exercice 7

Énoncé de l'exercice 7 : Simuler 100 lancers avec Python

a) Rôle des variables :

  • Car n est un compteur : il vaut 0 au départ et augmente de 1 à chaque « Pile » ; à la fin, il contient le nombre de Pile obtenus ;
  • Par exemple, i est la variable de la boucle : elle prend les valeurs 1, 2, …, 100 et compte les lancers ;
  • Donc, x est un nombre aléatoire de \([0\,;1[\) tiré à chaque lancer ; x<0.5 arrive avec une probabilité \(\frac{1}{2}\) et représente « Pile ».

En effet, b) Il suffit d’englober la simulation dans une seconde boucle qui se répète M fois (et de remettre n à 0 à chaque simulation) :

Car from random import random
M=int(input(« M = « ))
for k in range(1,M+1):
    n=0
    for i in range(1,101):
        x=random()
        if x<0.5:
            n=n+1
    print(« simulation »,k, »: n= »,n)

Réponse : n compte les Pile, i numérote les lancers, x est le tirage aléatoire ; pour M simulations, on ajoute une boucle extérieure répétée M fois avec n remis à 0.

Ainsi, ↑ Sommaire · Énoncés de la fiche

Exercice 8 : Donner un programme qui fournit les 100 premiers entiers (corrigé algorithmes seconde)

Revoir l’énoncé de l’exercice 8

Énoncé de l'exercice 8 sur les algorithmes et la programmation en seconde : Donner un programme qui fournit les 100 premiers entiers

a) Pour chaque entier \(k\) de 1 à \(N\), on ajoute 1 à \(x\) lorsque \(k\) divise \(N\). Ensuite, la fonction renvoie donc le nombre de diviseurs de \(N\). Par exemple, diviseurs(12) = 6 (1, 2, 3, 4, 6, 12).

Enfin, b) On réutilise cette fonction dans une boucle de 1 à 100 (en Python, « \(k\) divise \(N\) » s’écrit N%k==0) :

Par ailleurs, def diviseurs(N):
    x=0
    for k in range(1,N+1):
        if N%k==0:
            x=x+1
    return x
for n in range(1,101):
    if diviseurs(n)>=10:
        print(n)

Le programme affiche 48, 60, 72, 80, 84, 90 et 96 (par exemple 60 a 12 diviseurs : 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60).

Réponse : diviseurs(N) donne le nombre de diviseurs de N ; les entiers de 1 à 100 ayant au moins dix diviseurs sont 48, 60, 72, 80, 84, 90 et 96.

Ensuite, ↑ Sommaire · Énoncés de la fiche

Exercice 9 : Un programme écrit en Python

Revoir l’énoncé de l’exercice 9

Énoncé de l'exercice 9 sur les algorithmes et la programmation en seconde : Un programme écrit en Python – corrigé algorithmes seconde

Par ailleurs, a) \(x\) est converti par int( ) : c’est un entier.

b) Le programme calcule \(x^2\), puis \(-x^2+3x\), puis \(-x^2+3x+4\).

  • \(x=1\) : \(y=1\), puis \(-1+3=2\), puis \(2+4=\) 6 ;
  • \(x=-2\) : \(y=4\), puis \(-4-6=-10\), puis −6 ;
  • \(x=12\) : \(y=144\), puis \(-144+36=-108\), puis −104.

Puis, c) Attention à la ligne y=-y+3*x : c’est l’opposé de \(y\) qui est utilisé. Puis on obtient \(f(x)=-x^2+3x+4\).

Réponse : \(x\) est un entier ; \(y=6\), \(-6\) et \(-104\) ; \(f(x)=-x^2+3x+4\).

En outre, ↑ Sommaire · Énoncés de la fiche

Exercice 10 : Un programme écrit avec le langage Python (corrigé algorithmes seconde)

Revoir l’énoncé de l’exercice 10

Énoncé de l'exercice 10 : Un programme écrit avec le langage Python

Cependant, a) Pour \(n=4\), la boucle prend \(j=1,2,3,4\) (range(1,n+1) s’arrête avant \(n+1\)) :

\[ S=0+2+4+6+8=20 \]

Le programme affiche S= 20.

De même, b) Le programme ajoute \(2j\) pour \(j\) allant de 1 à \(n\) : il calcule la somme des \(n\) premiers nombres pairs non nuls, \(S=2+4+\dots+2n\). Toutefois, comme \(1+2+\dots+n=\frac{n(n+1)}{2}\), on a \(S=n(n+1)\) ; pour \(n=4\), \(4\times5=20\).

Réponse : pour \(n=4\), \(S=20\) ; en général \(S=2+4+\dots+2n=n(n+1)\).

Par ailleurs, ↑ Sommaire · Énoncés de la fiche

Corrigé des exercices 11 à 20 sur les algorithmes et la programmation en seconde

Exercice 11 : Simuler un lancer de dé et écrire un programme (corrigé algorithmes seconde)

Revoir l’énoncé de l’exercice 11

Énoncé de l'exercice 11 sur les algorithmes et la programmation en seconde : Simuler un lancer de dé et écrire un programme – corrigé algorithmes seconde

a) Au départ, \(S\) vaut 0. À chacun des 10 passages dans la boucle, ALGOBOX_ALEA_ENT(1,6) tire au hasard un entier \(x\) entre 1 et 6 (le résultat d’un lancer de dé), puis on ajoute \(x\) à \(S\). En effet, de plus, la variable \(S\) joue le rôle d’un accumulateur : à la fin, elle contient la somme des résultats des 10 lancers.

En outre, le même programme en Python :

Notamment, from random import randint
S=0
for k in range(1,11):
    x=randint(1,6)
    S=S+x
print(S)

Puis, b) Chaque lancer donne au plus 6. Ensuite, la somme est donc au plus \(10\times6=60\), valeur atteinte lorsque les 10 lancers donnent tous 6 (cas rare mais possible). Par ailleurs, la plus grande valeur affichée est 60 (et la plus petite est \(10\times1=10\)).

Réponse : S est la somme des 10 résultats obtenus ; sa plus grande valeur possible est 60.

Par ailleurs, ↑ Sommaire · Énoncés de la fiche

Exercice 12 : Location d’une voiture et programmer un algorithme

Revoir l’énoncé de l’exercice 12

Énoncé de l'exercice 12 sur les algorithmes et la programmation en seconde : Location d’une voiture et programmer un algorithme

Figure de l'exercice 12 : algorithme de location de voiture avec une instruction Si x inférieur ou égal à 100 alors, et deux cases vides à compléter pour la valeur de m
Figure de l’énoncé

Ensuite, a) Le prix comprend 50 € fixes plus le prix des kilomètres.

  • Si \(x\leqslant100\) : tous les kilomètres sont à 0,25 €, donc \(m=50+0{,}25x\).
  • Sinon : les 100 premiers kilomètres coûtent \(100\times0{,}25=25\) €, et les \(x-100\) suivants coûtent 0,35 € chacun, donc \(m=50+25+0{,}35(x-100)=75+0{,}35(x-100)\).
Correction de l'exercice 12 : les cases de l'algorithme sont complétées en rouge par 50 + 0,25x dans le cas x inférieur ou égal à 100 et par 75 + 0,35(x − 100) sinon
La réponse sur la figure

b) Programme en Python :

Enfin, x=int(input(« Nombre de km : « ))
if x<=100:
    m=50+0.25*x
else:
    m=75+0.35*(x-100)
print(« Montant : »,m, »euros »)

c) Tests :

  • \(x=80\) : \(m=50+0{,}25\times80=\) 70 € ;
  • \(x=100\) : \(m=50+25=\) 75 € ;
  • \(x=150\) : \(m=75+0{,}35\times50=\) 92,50 € ;
  • \(x=300\) : \(m=75+0{,}35\times200=\) 145 €.

On vérifie que les deux formules donnent bien le même prix à la limite : pour \(x=100\), la seconde donne aussi \(75+0=75\) €.

Réponse : si \(x\leqslant100\), \(m=50+0{,}25x\) ; sinon \(m=75+0{,}35(x-100)\) ; par exemple 150 km coûtent 92,50 €.

Toutefois, ↑ Sommaire · Énoncés de la fiche

Exercice 13 : Algorithme qui fournit la distance entre 2 points (corrigé algorithmes seconde)

Revoir l’énoncé de l’exercice 13

Énoncé de l'exercice 13 sur les algorithmes et la programmation en seconde : Algorithme qui fournit la distance entre 2 points – corrigé algorithmes seconde

Par exemple, a) La distance entre deux points d’une droite graduée est la différence entre la plus grande abscisse et la plus petite :

  • si \(a\leqslant b\), \(AB=b-a\) ;
  • si \(a\gt b\), \(AB=a-b\).

Car dans les deux cas, \(AB=|b-a|\) (valeur absolue de la différence). Alors, exemple : A d’abscisse \(-3\) et B d’abscisse 5 donnent \(AB=|5-(-3)|=8\).

Car b) Algorithme de la fonction :

Fonction distance(a, b)
    Si a ≤ b alors d prend la valeur b − a
    Sinon d prend la valeur a − b
    Renvoyer d

En Python :

Cependant, def distance(a,b):
    if a<=b:
        return b-a
    else:
        return a-b

On peut aussi écrire directement return abs(b-a). Ensuite, tests : distance(−3, 5) renvoie 8 ; distance(7, 2) renvoie 5.

Réponse : \(AB=|b-a|\) ; la fonction renvoie \(b-a\) si \(a\leqslant b\) et \(a-b\) sinon.

Ainsi, ↑ Sommaire · Énoncés de la fiche

Exercice 14 : Algorithme qui précise si un triangle est rectangle

Revoir l’énoncé de l’exercice 14

Énoncé de l'exercice 14 sur les algorithmes et la programmation en seconde : Algorithme qui précise si un triangle est rectangle

Figure de l'exercice 14 : triangle ABC avec les longueurs des côtés notées a = BC, b = AC et c = AB
Figure de l’énoncé

Ainsi, sur la figure, \(a=BC\) est le côté opposé au sommet A, \(b=AC\) et \(c=AB\). Ainsi, Si le triangle est rectangle en A, son hypoténuse est [BC].

D’après le théorème de Pythagore et sa réciproque : ABC est rectangle en A si et seulement si \(BC^2=AB^2+AC^2\), c’est-à-dire \(a^2=b^2+c^2\).

Fonction H(a, b, c)
    Si a² = b² + c² alors renvoyer « Vrai »
    Sinon renvoyer « Faux »

En Python :

En outre, def H(a,b,c):
    if a*a==b*b+c*c:
        return « Vrai »
    else:
        return « Faux »

Tests : H(5, 4, 3) renvoie « Vrai » car \(25=16+9\) ; H(5, 4, 2) renvoie « Faux » car \(25\neq16+4\) ; H(3, 4, 5) renvoie « Faux » : ce triangle est rectangle, mais en C, pas en A.

Remarque : avec des longueurs décimales, l’ordinateur fait des arrondis et le test == peut échouer à tort ; on remplace alors la condition par abs(a*a-b*b-c*c)<0.000001.

Réponse : H(a, b, c) renvoie « Vrai » si \(a^2=b^2+c^2\) et « Faux » sinon.

Par exemple, ↑ Sommaire · Énoncés de la fiche

Exercice 15 : Volume d’un cylindre et écrire un algorithme (corrigé algorithmes seconde)

Revoir l’énoncé de l’exercice 15

Énoncé de l'exercice 15 sur les algorithmes et la programmation en seconde : Volume d’un cylindre et écrire un algorithme

Figure de l'exercice 15 : algorithme du volume d'un cylindre avec deux cases vides pour les valeurs de S et de V – corrigé algorithmes seconde
Figure de l’énoncé

De même, a) La base est un disque de rayon R : son aire est \(S=\pi\times R^2\). Puis le volume d’un cylindre est l’aire de la base multipliée par la hauteur : \(V=S\times h\).

Correction de l'exercice 15 : les cases de l'algorithme sont complétées en rouge par π × R² pour S et par S × h pour V
La réponse sur la figure

Toutefois, b) Programme en Python (la constante \(\pi\) s’obtient avec pi du module math) :

Par ailleurs, from math import pi
R=float(input(« R = « ))
h=float(input(« h = « ))
S=pi*R**2
V=S*h
print(« V = »,V)

c) Contrôles :

  • \(R=1\), \(h=1\) : \(V=\pi\approx\) 3,14 cm³ ;
  • Toutefois, \(R=2\), \(h=5\) : \(V=\pi\times4\times5=20\pi\approx\) 62,83 cm³ ;
  • \(R=3\), \(h=10\) : \(V=90\pi\approx\) 282,74 cm³.
Réponse : S prend la valeur \(\pi R^2\) et V prend la valeur \(S\times h\) ; par exemple \(R=2\) cm et \(h=5\) cm donnent \(V=20\pi\approx62{,}83\text{ cm}^3\).

Toutefois, ↑ Sommaire · Énoncés de la fiche

Exercice 16 : Préciser le plus petit ensemble du nombre a

Revoir l’énoncé de l’exercice 16

Énoncé de l'exercice 16 : Préciser le plus petit ensemble du nombre a

Cependant, on exprime chaque variable en fonction de \(a\) :

\[ \begin{aligned} b &= a^2 \\ c &= a-b=a-a^2 \\ d &= 2c \\ e &= d-c+b=2c-c+b=c+b=(a-a^2)+a^2=a \end{aligned} \]

La fonction nombre renvoie donc toujours \(a\) lui-même. Vérification avec \(a=2\) : \(b=4\), \(c=-2\), \(d=-4\), \(e=-4-(-2)+4=2\).

  • Par exemple, nombre(2) \(=2\) : le plus petit ensemble est \(\mathbb{N}\) ;
  • Puis, nombre(−4) \(=-4\) : entier négatif, le plus petit ensemble est \(\mathbb{Z}\) ;
  • De même, nombre(\(\sqrt2\)) \(=\sqrt2\) : c’est un irrationnel, le plus petit ensemble est \(\mathbb{R}\).
Réponse : nombre(a) \(=a\) ; donc nombre(2) \(\in\mathbb{N}\), nombre(−4) \(\in\mathbb{Z}\), nombre(\(\sqrt2\)) \(\in\mathbb{R}\).

Ainsi, ↑ Sommaire · Énoncés de la fiche

Exercice 17 : On exécute le script ci-dessous (corrigé algorithmes seconde)

Revoir l’énoncé de l’exercice 17

Énoncé de l'exercice 17 sur les algorithmes et la programmation en seconde : On exécute le script ci-dessous

Le script calcule \(b=\frac{a}{2}\), puis \(c=3+\frac{a}{2}\), puis \(d=\sqrt{3+\frac{a}{2}}\).

a. \(b=1{,}5\), \(c=4{,}5\), \(d=\sqrt{4{,}5}\approx2{,}121\). Ensuite, comme \(2^2=4\) et \(3^2=9\), \(\sqrt{4{,}5}\) est strictement entre 2 et 3 : nombre(3) n’est pas un entier.

b. \(b=6\), \(c=9\), \(d=\sqrt9=3\) : nombre(12) est un entier (Python affiche 3.0, car sqrt renvoie un flottant, mais la valeur est bien l’entier 3).

Ensuite, c. \(b=-2\), \(c=1\), \(d=\sqrt1=1\) : nombre(−4) est un entier (affiché 1.0).

d. \(b=-6\), \(c=3-6=-3\). Ensuite, la racine carrée d’un nombre négatif n’existe pas : Python s’arrête sur un message d’erreur (ValueError: math domain error) et n’affiche aucun résultat.

Réponse : a. non (\(\sqrt{4{,}5}\)) ; b. oui (3) ; c. oui (1) ; d. erreur, car on demande \(\sqrt{-3}\).

Donc, ↑ Sommaire · Énoncés de la fiche

Exercice 18 : L’algorithme de la fonction opération

Revoir l’énoncé de l’exercice 18

Énoncé de l'exercice 18 sur les algorithmes et la programmation en seconde : L’algorithme de la fonction opération – corrigé algorithmes seconde

Expression de \(e\) en fonction de \(a\) : \(b=-a\), \(c=b^2=a^2\), \(d=-2c=-2a^2\), donc \(e=-2a^2+|a|\).

  • Ainsi, \(a=-2\) : \(b=2\), \(c=4\), \(d=-8\), \(e=-8+|-2|=-8+2=-6\in\mathbb{Z}\) : la fonction affiche « entier ».
  • Également, \(a=3\) : \(b=-3\), \(c=9\), \(d=-18\), \(e=-18+3=-15\in\mathbb{Z}\) : la fonction affiche « entier ».
  • Notamment, \(a=\sqrt2\) : \(b=-\sqrt2\), \(c=(-\sqrt2)^2=2\), \(d=-4\), \(e=-4+\sqrt2\approx-2{,}586\). Également, comme \(\sqrt2\) est irrationnel, \(-4+\sqrt2\) n’est pas un entier : la fonction affiche « pas entier. »
Réponse : operation(−2) et operation(3) affichent « entier » (\(e=-6\) et \(e=-15\)) ; operation(\(\sqrt2\)) affiche « pas entier. » (\(e=-4+\sqrt2\)).

Également, ↑ Sommaire · Énoncés de la fiche

Exercice 19 : Script de la fonction compteur (corrigé algorithmes seconde)

Revoir l’énoncé de l’exercice 19

Énoncé de l'exercice 19 : Script de la fonction compteur

a. À chaque tour de la boucle while, \(a\) est remplacé par son carré et \(N\) augmente de 1 ; on s’arrête dès que \(a\lt0{,}1\).

N 0 1 2 3 4 5
a 0,9 0,81 0,6561 0,4305 0,1853 0,0343
\(a\geqslant0{,}1\) ? oui oui oui oui oui non : arrêt

Donc compteur(0.9) = 5.

Pour \(a=0{,}1\) : la condition \(0{,}1\geqslant0{,}1\) est vraie, donc on fait un tour : \(a=0{,}01\) et \(N=1\). Ensuite \(0{,}01\lt0{,}1\) : arrêt. Donc compteur(0.1) = 1.

b. Après \(N\) tours, \(a\) a été élevé au carré \(N\) fois : il vaut \(a^{2^N}\) (par exemple \(a^2\), puis \(a^4\), puis \(a^8\)…). Par ailleurs, comme \(0\lt a\lt1\), ces nombres diminuent. Puis le programme renvoie donc le nombre de fois qu’il faut élever \(a\) au carré pour obtenir un nombre strictement inférieur à 0,1, c’est-à-dire le plus petit entier \(N\) tel que \(a^{2^N}\lt0{,}1\).

Réponse : compteur(0.9) = 5 et compteur(0.1) = 1 ; la fonction compte combien d’élévations au carré successives sont nécessaires pour que \(a\) devienne inférieur à 0,1.

De même, ↑ Sommaire · Énoncés de la fiche

Exercice 20 : Algorithme qui détermine la racine carrée

Revoir l’énoncé de l’exercice 20

Énoncé de l'exercice 20 sur les algorithmes et la programmation en seconde : Algorithme qui détermine la racine carrée – corrigé algorithmes seconde

Figure de l'exercice 20 : tableau à compléter avec une ligne u contenant 2, 1,5 et des pointillés, et une ligne u moins racine de 2 contenant 0,586 et des pointillés
Figure de l’énoncé

1. Avec \(n=2\) et \(p=0{,}01\), on part de \(u=2\) et on recalcule \(u\) tant que \(u-\sqrt2\gt0{,}01\) (\(\sqrt2\approx1{,}41421\)).

  • Alors, \(u=2\) : \(u-\sqrt2\approx0{,}586\gt0{,}01\), on continue : \(u=\frac12\left(2+\frac22\right)=1{,}5\).
  • Enfin, \(u=1{,}5\) : \(u-\sqrt2\approx0{,}086\gt0{,}01\), on continue : \(u=\frac12\left(1{,}5+\frac{2}{1{,}5}\right)=\frac{17}{12}\approx1{,}417\).
  • De même, \(u\approx1{,}417\) : \(u-\sqrt2\approx0{,}002\lt0{,}01\) : la boucle s’arrête.
Correction de l'exercice 20 : le tableau est complété en rouge, u vaut environ 1,417 à la troisième étape, et u moins racine de 2 vaut environ 0,086 puis 0,002 – corrigé algorithmes seconde
La réponse sur la figure

Ainsi, l’algorithme affiche \(u=\frac{17}{12}\approx\) 1,417 (Python affiche 1.4166666666666665), valeur approchée de \(\sqrt2\) à 0,01 près.

Ensuite, 2. val_app(3, 0.0001) : \(\sqrt3\approx1{,}7320508\).

\(u\) 3 2 1,75 1,7321428…
\(u-\sqrt3\) 1,268 0,268 0,018 0,000092

En outre, comme \(0{,}000092\lt0{,}0001\), la boucle s’arrête : l’affichage est 1.7321428571428572 (c’est \(\frac{97}{56}\)).

Également, 3. val_app(7, 0.00001) : \(\sqrt7\approx2{,}6457513\).

\(u\) 7 4 2,875 2,6548913… 2,6457670… 2,6457513…
\(u-\sqrt7\) 4,354 1,354 0,229 0,0091 0,0000157 0,00000000005

À l’avant-dernière étape, \(0{,}0000157\gt0{,}00001\) : il faut encore un tour. De plus, l’affichage est 2.6457513111113693.

Réponse : 1. u vaut 2 ; 1,5 ; 1,417 et l’algorithme affiche environ 1,417 ; 2. environ 1,7321428571 ; 3. environ 2,6457513111.

↑ Sommaire · Énoncés de la fiche

Corrigé des exercices 21 à 30 sur les algorithmes et la programmation en seconde

Exercice 21 : Ordinateur et mot de passe

Revoir l’énoncé de l’exercice 21

Énoncé de l'exercice 21 : Ordinateur et mot de passe

Le script calcule \(p\), le nombre formé par les quatre chiffres, puis le reste \(k\) de la division euclidienne de \(p\) par la somme des chiffres \(a+b+c+d\) (en Python, % donne le reste). Si ce reste a un seul chiffre, c’est le résultat ; sinon on garde son chiffre des unités (k%10).

a. Code 2020 : \(p=2020\) et \(a+b+c+d=2+0+2+0=4\). Or \(2020=4\times505+0\), donc \(k=0\lt10\) et \(s=0\). Ensuite, le nombre généré est 0.

b. Code 1789 : \(p=1789\) et \(1+7+8+9=25\). Or \(1789=25\times71+14\), donc \(k=14\). Comme \(14\geqslant10\), \(s=14\,\%\,10=4\). Par ailleurs, le nombre généré est 4.

c. Pour le code 0000, la somme des chiffres vaut \(0\) : il faudrait calculer le reste de la division de \(p\) par 0, ce qui est impossible (Python déclencherait l’erreur ZeroDivisionError). Puis la méthode de M. Galois ne peut donc pas s’appliquer : l’ordinateur ne doit pas proposer 0000.

Remarque : dans le script tel qu’il est écrit, pour 0000 on a \(s=p=0\lt10\), donc la boucle while n’est jamais exécutée et la fonction renvoie 0 sans faire de division. Mais ce 0 ne provient pas du calcul prévu : le code 0000 n’a pas de sens pour cette méthode.

Réponse : a. \(s=0\) ; b. \(s=4\) ; c. non, car la somme des chiffres de 0000 est nulle et l’on ne peut pas diviser par 0.

↑ Sommaire · Énoncés de la fiche

Exercice 22 : Algorithme de la fonction nombre (corrigé algorithmes seconde)

Revoir l’énoncé de l’exercice 22

Énoncé de l'exercice 22 sur les algorithmes et la programmation en seconde : Algorithme de la fonction nombre – corrigé algorithmes seconde

On exécute l’algorithme pas à pas pour chaque argument, en respectant l’ordre des instructions : \( b = a^2 \), puis \( c = a – b \), puis \( d = 2c \), puis \( e = d – c + b \).

\( a \) \( b = a^2 \) \( c = a – b \) \( d = 2c \) \( e = d – c + b \)
\( 2 \) \( 4 \) \( 2 – 4 = -2 \) \( -4 \) \( -4 + 2 + 4 = 2 \)
\( -4 \) \( 16 \) \( -4 – 16 = -20 \) \( -40 \) \( -40 + 20 + 16 = -4 \)
\( \sqrt{2} \) \( 2 \) \( \sqrt{2} – 2 \) \( 2\sqrt{2} – 4 \) \( 2\sqrt{2} – 4 – \sqrt{2} + 2 + 2 = \sqrt{2} \)

Attention au signe dans \( d – c \) : on soustrait \( c \), donc si \( c = -20 \), on ajoute 20.

On range ensuite chaque résultat dans le plus petit ensemble de nombres qui le contient (\( \mathbb{N} \subset \mathbb{Z} \subset \mathbb{D} \subset \mathbb{Q} \subset \mathbb{R} \)) :

  • nombre(2) = 2 est un entier positif : \( 2 \in \mathbb{N} \) ;
  • nombre(−4) = −4 est un entier négatif : \( -4 \in \mathbb{Z} \) ;
  • nombre(\( \sqrt{2} \)) = \( \sqrt{2} \) est irrationnel : \( \sqrt{2} \in \mathbb{R} \).

On remarque que la fonction renvoie à chaque fois le nombre de départ (on le démontre dans l’exercice 28).

Réponse : nombre(2) = 2 \( \in \mathbb{N} \) ; nombre(−4) = −4 \( \in \mathbb{Z} \) ; nombre(\( \sqrt{2} \)) = \( \sqrt{2} \in \mathbb{R} \).

↑ Sommaire · Énoncés de la fiche

Exercice 23 : Script et nombre entier

Revoir l’énoncé de l’exercice 23

Énoncé de l'exercice 23 sur les algorithmes et la programmation en seconde : Script et nombre entier

La fonction calcule successivement \( b = \frac{a}{2} \), \( c = 3 + b \) et \( d = \sqrt{c} \) (la fonction sqrt vient du module math). Ensuite, on suit les calculs pour chaque argument.

a. nombre(3) : \( b = 1{,}5 \), \( c = 4{,}5 \), \( d = \sqrt{4{,}5} \approx 2{,}121 \). Comme \( 4{,}5 \) n’est pas le carré d’un entier, nombre(3) n’est pas un entier (le script affiche 2.1213203435596424).

b. nombre(12) : \( b = 6 \), \( c = 9 \), \( d = \sqrt{9} = 3 \). nombre(12) = 3, c’est un entier. Python affiche 3.0 car sqrt renvoie toujours un nombre à virgule (type float), mais la valeur est bien l’entier 3.

c. nombre(−4) : \( b = -2 \), \( c = 3 + (-2) = 1 \), \( d = \sqrt{1} = 1 \). nombre(−4) = 1, c’est un entier (affiché 1.0).

d. nombre(−12) : \( b = -6 \), \( c = 3 + (-6) = -3 \). Puis il faudrait calculer \( \sqrt{-3} \), or la racine carrée d’un nombre négatif n’existe pas. Python s’arrête et affiche un message d’erreur :

ValueError: math domain error

Réponse : a. non (\( \sqrt{4{,}5} \approx 2{,}12 \)) ; b. oui, nombre(12) = 3 ; c. oui, nombre(−4) = 1 ; d. message d’erreur (math domain error), car \( \sqrt{-3} \) n’existe pas.

↑ Sommaire · Énoncés de la fiche

Exercice 24 : Qu'affiche la fonction opération ? (corrigé algorithmes seconde)

Revoir l’énoncé de l’exercice 24

Énoncé de l'exercice 24 : Qu'affiche la fonction opération ?

On applique les instructions dans l’ordre : \( b = -a \), \( c = b^2 \), \( d = -2c \), \( e = d + |a| \), puis on teste si \( e \) est un entier relatif (\( e \in \mathbb{Z} \)).

Argument −2 :

\[ b = 2, \quad c = 2^2 = 4, \quad d = -2 \times 4 = -8, \quad e = -8 + |-2| = -8 + 2 = -6. \]

\( -6 \in \mathbb{Z} \) : la fonction affiche « entier ».

Argument 3 :

\[ b = -3, \quad c = (-3)^2 = 9, \quad d = -18, \quad e = -18 + 3 = -15. \]

\( -15 \in \mathbb{Z} \) : la fonction affiche « entier ».

Argument \( \sqrt{2} \) :

\[ b = -\sqrt{2}, \quad c = \left(-\sqrt{2}\right)^2 = 2, \quad d = -4, \quad e = -4 + \sqrt{2}. \]

\( \sqrt{2} \) est irrationnel, donc \( -4 + \sqrt{2} \approx -2{,}586 \) n’est pas un entier : la fonction affiche « pas entier. »

Réponse : operation(−2) affiche « entier » (e = −6), operation(3) affiche « entier » (e = −15), operation(\( \sqrt{2} \)) affiche « pas entier. » (\( e = -4 + \sqrt{2} \)).

↑ Sommaire · Énoncés de la fiche

Exercice 25 : Que représente l'affichage de ce programme ?

Revoir l’énoncé de l’exercice 25

Énoncé de l'exercice 25 sur les algorithmes et la programmation en seconde : Que représente l'affichage de ce programme ?

À chaque tour de la boucle while, tant que \( a \geqslant 0{,}1 \), on remplace \( a \) par son carré et on ajoute 1 au compteur N.

a. compteur(0.9) : on suit les valeurs.

Tour \( a \) au début \( a \geqslant 0{,}1 \) ? nouvelle valeur de \( a \) N
1 0,9 oui 0,81 1
2 0,81 oui 0,6561 2
3 0,6561 oui ≈ 0,4305 3
4 ≈ 0,4305 oui ≈ 0,1853 4
5 ≈ 0,1853 oui ≈ 0,0343 5
— ≈ 0,0343 non : on sort — 5

Donc compteur(0.9) = 5.

compteur(0.1) : au départ \( a = 0{,}1 \) et la condition \( a \geqslant 0{,}1 \) est vraie (égalité). De plus, on fait un tour : \( a = 0{,}01 \) et N = 1. Ensuite \( 0{,}01 \lt 0{,}1 \), la boucle s’arrête : compteur(0.1) = 1.

b. Comme \( 0 \lt a \lt 1 \), élever au carré fait diminuer le nombre. Après N tours, \( a \) a été élevé au carré N fois. Ensuite, le programme renvoie donc le nombre de fois qu’il faut élever \( a \) au carré (successivement) pour obtenir un nombre strictement inférieur à 0,1.

Réponse : a. compteur(0.9) = 5 et compteur(0.1) = 1 ; b. l’affichage est le nombre de mises au carré successives nécessaires pour que \( a \) devienne strictement inférieur à 0,1.

↑ Sommaire · Énoncés de la fiche

Exercice 26 : Quel est le plus petit ensemble fourni par ce script ?

Revoir l’énoncé de l’exercice 26

Énoncé de l'exercice 26 sur les algorithmes et la programmation en seconde : Quel est le plus petit ensemble fourni par ce script ? – corrigé algorithmes seconde

La fonction choisit sa formule selon la valeur de \( x \) :

  • si \( x \leqslant -1 \) : \( a = 2x – 1 \) ;
  • si \( -1 \lt x \lt 4 \) : \( a = \frac{x}{3} \) ;
  • si \( x \geqslant 4 \) : \( a = x^2 – 3 \) (en Python, x**2 signifie \( x^2 \)).

Il faut donc d’abord situer chaque argument, en utilisant \( \sqrt{2} \approx 1{,}41 \) et \( 3\sqrt{2} \approx 4{,}24 \).

  • \( x = -2 \leqslant -1 \) : \( a = 2 \times (-2) – 1 = -5 \), entier négatif : \( -5 \in \mathbb{Z} \).
  • \( x = \sqrt{2} \), compris entre \( -1 \) et 4 : \( a = \frac{\sqrt{2}}{3} \), irrationnel : \( \frac{\sqrt{2}}{3} \in \mathbb{R} \).
  • \( x = 3\sqrt{2} \geqslant 4 \) : \( a = \left(3\sqrt{2}\right)^2 – 3 = 9 \times 2 – 3 = 15 \) : \( 15 \in \mathbb{N} \).
  • \( x = \frac{1}{2} \), entre \( -1 \) et 4 : \( a = \frac{1}{2} \div 3 = \frac{1}{6} \). Son écriture décimale \( 0{,}1666\ldots \) est illimitée : \( \frac{1}{6} \in \mathbb{Q} \) (mais pas à \( \mathbb{D} \)).
  • \( x = \frac{3}{2} \), entre \( -1 \) et 4 : \( a = \frac{3}{2} \div 3 = \frac{1}{2} = 0{,}5 \) : \( 0{,}5 \in \mathbb{D} \).

Remarque : Python calcule avec des valeurs approchées et affiche 15.000000000000004 pour \( 3\sqrt{2} \) ; la valeur exacte est bien 15.

Réponse : quisuisje(−2) = −5 \( \in \mathbb{Z} \) ; quisuisje(\( \sqrt{2} \)) = \( \frac{\sqrt{2}}{3} \in \mathbb{R} \) ; quisuisje(\( 3\sqrt{2} \)) = 15 \( \in \mathbb{N} \) ; quisuisje(\( \frac{1}{2} \)) = \( \frac{1}{6} \in \mathbb{Q} \) ; quisuisje(\( \frac{3}{2} \)) = 0,5 \( \in \mathbb{D} \).

↑ Sommaire · Énoncés de la fiche

Exercice 27 : Le script dichotomie

Revoir l’énoncé de l’exercice 27

Énoncé de l'exercice 27 : Le script dichotomie

Figure de l'exercice 27 : tableau à compléter avec trois lignes b - a, a et b, dont la première colonne contient a = 1 et b = 2 – corrigé algorithmes seconde
Figure de l’énoncé

a. Avec les arguments \( a = 1 \), \( b = 2 \), \( n = 0{,}1 \). À chaque tour, on calcule le milieu \( m = \frac{a + b}{2} \) : si \( m \gt \sqrt{2} \) (c’est-à-dire \( m – \sqrt{2} \gt 0 \)), le milieu devient la nouvelle borne \( b \) ; sinon il devient la nouvelle borne \( a \). Par ailleurs, on s’arrête dès que \( b – a \leqslant 0{,}1 \).

  • \( b – a = 1 \gt 0{,}1 \) : \( m = 1{,}5 \gt \sqrt{2} \approx 1{,}414 \), donc \( b = 1{,}5 \).
  • \( b – a = 0{,}5 \) : \( m = 1{,}25 \lt \sqrt{2} \), donc \( a = 1{,}25 \).
  • \( b – a = 0{,}25 \) : \( m = 1{,}375 \lt \sqrt{2} \), donc \( a = 1{,}375 \).
  • \( b – a = 0{,}125 \) : \( m = 1{,}4375 \gt \sqrt{2} \), donc \( b = 1{,}4375 \).
  • \( b – a = 0{,}0625 \leqslant 0{,}1 \) : la boucle s’arrête.

Pour comparer \( m \) à \( \sqrt{2} \) sans calculatrice, on peut comparer \( m^2 \) à 2 : \( 1{,}4375^2 \approx 2{,}07 \gt 2 \) et \( 1{,}375^2 \approx 1{,}89 \lt 2 \).

Correction de l'exercice 27 : tableau complété en rouge, b - a vaut 1 ; 0,5 ; 0,25 ; 0,125 ; 0,0625, a vaut 1 ; 1 ; 1,25 ; 1,375 ; 1,375 et b vaut 2 ; 1,5 ; 1,5 ; 1,5 ; 1,4375
La réponse sur la figure

Le script affiche (1.375, 1.4375).

b. À chaque étape, \( a \leqslant \sqrt{2} \leqslant b \) reste vrai. Puis l’affichage est donc un encadrement de \( \sqrt{2} \) d’amplitude inférieure ou égale à \( n = 0{,}1 \) :

\[ 1{,}375 \leqslant \sqrt{2} \leqslant 1{,}4375. \]

C’est la méthode par dichotomie : on coupe l’intervalle en deux à chaque étape.

c. Il faut :

  • remplacer sqrt(2) par sqrt(7) dans le test ;
  • partir d’un intervalle qui contient \( \sqrt{7} \) : comme \( 2^2 = 4 \lt 7 \lt 9 = 3^2 \), on prend \( a = 2 \) et \( b = 3 \) ;
  • choisir la précision \( n = 10^{-3} = 0{,}001 \).

On appelle donc dichotomie(2, 3, 0.001) avec le test modifié ; on obtient \( 2{,}6455078125 \leqslant \sqrt{7} \leqslant 2{,}646484375 \).

Réponse : a. le script affiche (1.375, 1.4375) ; b. c’est un encadrement de \( \sqrt{2} \) d’amplitude au plus 0,1 ; c. remplacer sqrt(2) par sqrt(7) et lancer dichotomie(2, 3, 0.001).

↑ Sommaire · Énoncés de la fiche

Exercice 28 : Fonction nombre et algorithme

Revoir l’énoncé de l’exercice 28

Énoncé de l'exercice 28 sur les algorithmes et la programmation en seconde : Fonction nombre et algorithme – corrigé algorithmes seconde

Cet algorithme est le même que celui de l’exercice 22. Plutôt que de refaire les calculs pour chaque valeur, on calcule \( e \) en fonction de \( a \) (calcul littéral) :

\[ \begin{aligned} b &= a^2 \\ c &= a – a^2 \\ d &= 2(a – a^2) = 2a – 2a^2 \\ e &= d – c + b = (2a – 2a^2) – (a – a^2) + a^2 \\ &= 2a – 2a^2 – a + a^2 + a^2 \\ &= a. \end{aligned} \]

Pour tout nombre \( a \), nombre(\( a \)) = \( a \) : la fonction renvoie l’argument lui-même. Ensuite, le plus petit ensemble de nombre(\( a \)) est donc celui de \( a \) :

  • nombre(2) = 2 : \( \mathbb{N} \) ;
  • nombre(−4) = −4 : \( \mathbb{Z} \) ;
  • nombre(\( \sqrt{2} \)) = \( \sqrt{2} \), irrationnel : \( \mathbb{R} \).

On retrouve bien les résultats obtenus pas à pas à l’exercice 22.

Réponse : nombre(\( a \)) = \( a \) pour tout \( a \), donc nombre(2) \( \in \mathbb{N} \), nombre(−4) \( \in \mathbb{Z} \) et nombre(\( \sqrt{2} \)) \( \in \mathbb{R} \).

↑ Sommaire · Énoncés de la fiche

Exercice 29 : Quel est l'affichage fourni par ce script ?

Revoir l’énoncé de l’exercice 29

Énoncé de l'exercice 29 : Quel est l'affichage fourni par ce script ?

Même script que dans l’exercice 23. Puis on l’étudie ici de façon générale : il renvoie

\[ \text{nombre}(a) = \sqrt{3 + \frac{a}{2}}. \]

Ce nombre existe seulement si \( 3 + \frac{a}{2} \geqslant 0 \), c’est-à-dire \( a \geqslant -6 \), et c’est un entier lorsque \( 3 + \frac{a}{2} \) est un carré parfait (0, 1, 4, 9, 16…).

  • a. \( 3 + \frac{3}{2} = 4{,}5 \), qui n’est pas un carré parfait : nombre(3) \( = \sqrt{4{,}5} \approx 2{,}12 \) n’est pas un entier.
  • b. \( 3 + \frac{12}{2} = 9 = 3^2 \) : nombre(12) = 3, c’est un entier (Python affiche 3.0).
  • c. \( 3 + \frac{-4}{2} = 1 = 1^2 \) : nombre(−4) = 1, c’est un entier (Python affiche 1.0).
  • d. \( -12 \lt -6 \), donc \( 3 + \frac{-12}{2} = -3 \lt 0 \) : la racine carrée n’existe pas, Python affiche une erreur ValueError: math domain error.
Réponse : a. non ; b. oui (3) ; c. oui (1) ; d. un message d’erreur, car \( \sqrt{-3} \) n’existe pas.

↑ Sommaire · Énoncés de la fiche

Exercice 30 : Algorithme de la fonction opération

Revoir l’énoncé de l’exercice 30

Énoncé de l'exercice 30 sur les algorithmes et la programmation en seconde : Algorithme de la fonction opération – corrigé algorithmes seconde

Même algorithme que dans l’exercice 24. Exprimons \( e \) en fonction de \( a \) : \( b = -a \), \( c = (-a)^2 = a^2 \), \( d = -2a^2 \), donc

\[ e = -2a^2 + |a|. \]

  • \( a = -2 \) : \( e = -2 \times 4 + 2 = -6 \), entier : affichage « entier ».
  • \( a = 3 \) : \( e = -2 \times 9 + 3 = -15 \), entier : affichage « entier ».
  • \( a = \sqrt{2} \) : \( e = -2 \times 2 + \sqrt{2} = -4 + \sqrt{2} \), qui n’est pas entier puisque \( \sqrt{2} \) est irrationnel : affichage « pas entier. »

Plus généralement, si \( a \) est un entier relatif, \( -2a^2 + |a| \) est aussi un entier : la fonction affiche toujours « entier » pour un argument entier.

Réponse : « entier » pour −2 (e = −6), « entier » pour 3 (e = −15) et « pas entier. » pour \( \sqrt{2} \) (\( e = -4 + \sqrt{2} \)).

↑ Sommaire · Énoncés de la fiche

Corrigé des exercices 31 à 31 sur les algorithmes et la programmation en seconde

Exercice 31 : Argument et fonction compteur

Revoir l’énoncé de l’exercice 31

Énoncé de l'exercice 31 sur les algorithmes et la programmation en seconde : Argument et fonction compteur

Même script que dans l’exercice 25. Remarquons qu’après N passages dans la boucle, \( a \) a été élevé au carré N fois : il vaut \( a^{2^N} \) (\( a^2 \), puis \( a^4 \), puis \( a^8 \)…).

a. Pour \( a = 0{,}9 \), on cherche le premier N tel que \( 0{,}9^{2^N} \lt 0{,}1 \) :

  • \( 0{,}9^2 = 0{,}81 \) ; \( 0{,}9^4 = 0{,}6561 \) ; \( 0{,}9^8 \approx 0{,}430 \) ; \( 0{,}9^{16} \approx 0{,}185 \) : toujours \( \geqslant 0{,}1 \) ;
  • \( 0{,}9^{32} \approx 0{,}034 \lt 0{,}1 \) : on s’arrête après 5 passages.

compteur(0.9) = 5.

Pour \( a = 0{,}1 \) : le test a >= 0.1 est vrai au départ (\( 0{,}1 \geqslant 0{,}1 \)), donc on fait un passage : \( a = 0{,}01 \) et N = 1, puis la boucle s’arrête. compteur(0.1) = 1. (Avec le test strict a > 0.1, on aurait obtenu 0.)

b. Le programme affiche le nombre de mises au carré successives nécessaires pour que le nombre de départ, compris entre 0 et 1, devienne strictement inférieur à 0,1. Plus \( a \) est proche de 1, plus ce nombre est grand.

Réponse : a. compteur(0.9) = 5, compteur(0.1) = 1 ; b. c’est le plus petit entier N tel que \( a^{2^N} \lt 0{,}1 \), c’est-à-dire le nombre d’élévations au carré nécessaires pour passer sous 0,1.

↑ Sommaire · Énoncés de la fiche

La méthode à retenir sur les algorithmes et la programmation

  • Exécuter à la main : faire un tableau avec une colonne par variable et une ligne par instruction ou par tour de boucle.
  • Affectation : dans y=y+1, on calcule d’abord le membre de droite avec l’ancienne valeur, puis on la remplace.
  • Boucle bornée : for i in range(a,b) fait prendre à \(i\) les valeurs \(a, a+1, \dots, b-1\) (la borne \(b\) est exclue).
  • Conditionnelle : if / elif / else ; les cas sont examinés dans l’ordre, le premier vrai est exécuté.
  • Compteur et accumulateur : on initialise à 0 avant la boucle, on ajoute 1 (compteur) ou une quantité (somme) à chaque tour.
  • Simulation : random()<p se produit avec une probabilité \(p\).

Les erreurs fréquentes

  • Oublier que range(1,n+1) s’arrête à \(n\), ou croire que range(1,n) va jusqu’à \(n\).
  • Lire y=-y+3*x comme \(y=y+3x\) : le signe moins change l’opposé de \(y\).
  • Écrire x**2 pour un nombre négatif et se tromper de signe à la main : \((-2)^2=4\).
  • Placer l’initialisation n=0 en dehors de la boucle des M simulations : les résultats s’additionnent.
  • Confondre = (affectation) et == (test d’égalité) dans une condition.

Questions fréquentes

Quelle différence entre un algorithme et un programme ?

Un algorithme est une suite d’instructions décrite en langage courant, indépendante de la machine. De plus, un programme est sa traduction dans un langage précis, comme Python, que l’ordinateur peut exécuter. Ensuite, en seconde, on passe régulièrement de l’un à l’autre.

Faut-il savoir programmer sur ordinateur pour le contrôle ?

En contrôle écrit, on demande surtout de lire, compléter ou écrire quelques lignes de Python sur papier. Tester les programmes chez soi (Thonny, EduPython, calculatrice) aide beaucoup à retenir la syntaxe, notamment l’indentation et les deux-points.

Pourquoi l’indentation est-elle importante en Python ?

En Python, ce sont les espaces en début de ligne qui indiquent quelles instructions sont dans une boucle ou dans un if. Par ailleurs, une instruction mal indentée change complètement le résultat, par exemple un print exécuté à chaque tour au lieu d’une seule fois.

Grâce à ce corrigé algorithmes seconde, on retrouve vite la bonne méthode. Puis ce corrigé algorithmes seconde précise aussi le calcul à ne pas oublier.

Pour aller plus loin :

Corrigé algorithmes seconde : la bonne méthode

Avant tout, rédige ta propre réponse sur un brouillon. Ensuite, vérifie chaque résultat avec soin. Ainsi, tu repères vite tes erreurs de méthode. Puis en outre, quelques minutes par jour suffisent pour retenir l’essentiel.

Par exemple, explique la méthode à voix haute, comme à un camarade. Enfin, le programme officiel de mathématiques est détaillé sur le site Éduscol. Également, tu peux continuer avec corrigé des 31 exercices sur les intervalles et la valeur absolue en seconde.

Voter.. post
Télécharger puis imprimer cette fiche en PDF.

Télécharger ou imprimer cette fiche «corrigé des 31 exercices sur les algorithmes et programmes en seconde à télécharger en PDF» au format PDF afin de pouvoir travailler en totale autonomie.


Nombre de fichiers PDF téléchargés.  Maths PDF c'est 16 366 588 cours et exercices de maths téléchargés en PDF et 4 531 exercices.

Télécharger les manuels scolaires de maths en PDF du CP à la Terminale