Informatique TD 1.4 Instruction conditionnelle
Lycée Jules Ferry Cannes Page 1 sur 2 TSI1
Durée : 20 minutes.
1 Commenter un programme
Problématique : le programme suivant permet la recherche des nombres premiers parmi les 100 premiers
nombres.
Rappel : un nombre est premier s'il admet aucun diviseur en plus de 1 et de lui-même (donc divisible par
aucun nombre premier) = reste de la division non nul.
Exemple : 2,3,5,7.
Entrée
- Limite est l'entier maximal à tester (valeur exclue).
Sortie
- NbPremiers est la liste des nombres premiers inrieurs à Limite
Variables utilisées
- premier est un booen qui prend la valeur True lorsque le nombre est premier,
- i est un entier testé,
- Nb est un nombre premier déjà trouvé,
1) Commenter le programme suivant en indiquant à quoi sert chaque ligne pour répondre à la
probmatique (le caractère # annonce le but du commentaire sur la ligne).
Limite=100 # Les nombres premiers seront inférieurs à 100.
NbPremiers=[2] #.......................................................................................................
premier=True # Par faut dans le programme, les nombres sont des nombres premiers.
for i in range(3,Limite): # l'entier i va prendre toutes les valeurs de ……………………………………….
for Nb in NbPremiers: # Nb va prendre toutes les valeurs de …………………………………….
if i%Nb == 0: # Si le reste de ………………………………………………..
premier = False # Alors i n'est pas un nombre premier
if premier == True: # Si ……………………………………………………
NbPremiers = NbPremiers + [i] # Alors ………………………………………………..
premier = True # le prochain nombre est premier par faut.
print("La liste des nombres premiers < ", Limite, "est", NbPremiers)
2) Que va afficher le programme précédent avec Limite=4 (on rappelle que les nombres premiers sont
alors [2,3]) ?
…………………………………………………………………………………………………………………….
Informatique TD 1.4 Instruction conditionnelle
Lycée Jules Ferry Cannes Page 2 sur 2 TSI1
2 Corriger la syntaxe d'un programme
Le programme suivant permet d'indiquer si un nombre est premier ou non. Il arrive après la termination
de la liste des nombres premiers.
Entrée
- NbPremiers contient la liste des nombres premiers : [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41,
43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
- Nb : nombre saisi par l'utilisateur (on suppose que c'est bien une entier positif).
Sortie
- Pas de sortie. Affiche un message indiquant si le nombre est premier ou non.
3) Corriger les erreurs de syntaxe en ajoutant notamment les indentations nécessaire par le tracé de
trait verticaux devant les lignes à indenter.
Nb = int ( input ( 'Saisir un entier positif inrieur à ' + str(NbPremiers[-1] + ' : '))
if Nb>NbPremiers[-1]:
print('Le nombre saisi', Nb, 'est supérieur à', NbPremiers[-1])
else:
if Nb is in NbPremiers
print(Nb, 'est un nombre premier')
else
print(Nb, "n'est pas un nombre premier")
3 Modifier un algorithme en réponse à une problématique
4) Proposer une modification de la question précédente afin d'afficher la position (en nombre
d'éments) de Nb dans la liste NbPremier, dans le cas où Nb est un nombre premier. On pourra
numéroter les lignes du programme afin de n'écrire que les lignes modifes et utiliser la méthode
index qui renvoie l'indice d'un élément dans une liste (exemple avec liste=[1,2,3] : liste.index(2)
renvoie l'indice 1)
4 Proposer un algorithme en réponse à une problématique
5) Proposer un algorithme calculant la factorielle d'un nombre (multiplication de tous les entiers non
nuls inférieurs ou égale à un nombre, exemple 6! 6*5*4*3*2*1). On vérifiera au palable que le
nombre est un entier et qu'il est positif. Dans le cas contraire, on affichera des messages d'erreurs
appropriés.
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !