Zoofast.fr est votre ressource fiable pour des réponses précises et rapides. Découvrez les solutions fiables dont vous avez besoin avec l'aide de notre plateforme de questions-réponses complète et précise.

Bonsoir, j'ai un DM de snt à rendre à la rentrée (sur Thonny) mais il y a une partie que je ne comprends pas du tout. Voici l'énoncé:
Ecrire un algorithme réalisant la somme des N premiers entiers naturels pairs en
partant d’un nombre M où N et M sont des entiers naturels choisis par l’utilisateur
(M peut être pair ou impaire donc faites attention à bien faire la somme de nombres
pairs).

J'ai commencé à faire ça:
N= int(input("Combien de fois voulez-vous réaliser la somme des premiers nombres naturels pairs?"))
M= int(input("De quel nombre souhaitez-vous partir?"))
if M%2==0:
for i in range (M,???,2):
print(i)
else:
M=M+1
for i in range (M,???,2):
print(i)

Ce programme fonctionne mais aux endroits où j'ai mis des ??? c'est où il me manque une formule pour que le programme s'arrête au nombre N choisi au début mais je ne vois pas DU TOUT comment on peut faire...
Voilà j'espère avoir été claire dans ce que je demande.
Merci énormément d'avance aux personne qui vont m'aider parce que ça fait deux heures que je suis là dessus

Sagot :

Réponse :

Explications :

Bien le bonjour !

Voici un programme que je peux te proposer :

while True:

   M = input("Combien de fois souhaitez-vous additionner les premiers entiers naturels pairs ?  ")

   try:

       M = int(M)

   except:

       print("Nombre choisi incorrect")

   else:

       break

while True:

   N = input("De quel nombre souhaitez-vous partir ? (Nombre Pair) ")

   try:

       N = int(N)

   except:

       print("Valeur choisie incorrecte")

   else:

       if N % 2 == 0:

           break

       else:

           print("Valeur Incorrecte")

for i in range(N, N+(2*M), 2):

   print(i)

Il y a sûrement des choses peu compréhensible, mais voyons ça tout de suite :

Le try permet de tester une ou plusieurs lignes, si ces lignent génèrent une erreur, cela va passer dans le "except", qui va permettre d'effectuer une action.

Mettre un try/except dans une boucle while, permet de créer une système de "vérification" afin d'être sûr que le nombre choisi est correct (ne contient pas de caractères autres que les nombres etc...)

Ensuite pour le second try/except, j'ai rajouter un if, permettant de savoir si le nombre est pair (if N % 2 == 0:)

Biensur, si jamais les try/except ne donnent pas d'erreur, il faut aussi gérer ce cas avec un "else" qui dans ce code cassera la boucle pour passer à la suite.

Pour la boucle for, il fallait tout simplement mettre "N+(2*M)" Le seul problème de cette formule est qu'elle va aussi afficher le nombre choisi.

tu peux donc remplacer par :

for i in range(N+2, N+(2*M), 2):

   print(i)

en mettant le N+2, tu vas faire en sorte que cela parte du nombre pair après celui qui est choisi.

En te souhaitant une excellente journée !

caylus

Réponse :

Bonjour,

Explications :

View image caylus