Exercices
Exercice 1
Exercice 1 du Asie J1 2025
Correction Q1
x vaut 0 et y vaut 20.
Correction Q2
Un fichier Python est un fichier texte, on peut donc le percevoir comme une chaine de caractères.
Correction Q3
Les programmes 3 et 5 terminent.
Les programmes 4 et 6 ne terminent pas.
Correction Q4
Ce programme ne répond pas au problème car si le programme ne s'arrête pas (à la ligne 2), le programme ne renverra jamais False.
Correction Q5
L'algorithme de Boyer-Moore est un algorithme de recherche de texte qui utilise un dictionnaire pour faire des décalages intelligents et ainsi accélérer la recherche.
Correction Q6
def arret_essai2(programme):
return not recherche('while', programme)
Correction Q7
Avec le programme suivant :
def programme():
print('boucle infinie !')
programme()
arret_essai2(programme) renverra True alors que le programme ne s'arrête pas.
Avec le programme suivant :
def programme():
n = 3
while n > 0:
print(n)
n -= 1
arret_essai2(programme) renverra False alors que le programme s'arrête.
Correction Q8
def terminaison_inverse(programme):
if arret(programme) == True:
boucle_infinie()
else:
print('stop')
Correction Q9
Si programme_paradoxal termine, alors terminaison_inverse(programme_paradoxal) ne termine pas.
Si programme_paradoxal ne termine pas, alors terminaison_inverse(programme_paradoxal) termine.
Correction Q10
La question 9. a abouti à une contradiction. Celle-ci est due à la non-existence de la fonction arret.
Correction Q11
Cette impossibilité n'est pas due aux limitations du langage Python. Elle est générale, et a été démontrée en 1936 par Alan Turing sous le nom Théorème de l'arrêt.