Je ne comprend pas cette formule
deel
-
jee pee Messages postés 9439 Date d'inscription Statut Modérateur Dernière intervention -
jee pee Messages postés 9439 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Cela fait quelques semaines que je suis sur python en suivant le livre de gerard swinnen,
j'ai du mal avec certaine formule, mais la j'ai vraiment un blocage avec la correction...
Je pense que mon soucis réel et les math et non le logiciel, j'ai limpression que mon cerveau ne peut pas comprendre cette simple chose.
Et quand je voie que je comprend pas ca j'ai juste envie de tout arrêter car je me sent vraiment stupide ^^"
Cela fait quelques semaines que je suis sur python en suivant le livre de gerard swinnen,
j'ai du mal avec certaine formule, mais la j'ai vraiment un blocage avec la correction...
Je pense que mon soucis réel et les math et non le logiciel, j'ai limpression que mon cerveau ne peut pas comprendre cette simple chose.
print("entrer l'inferieur :",end=" ")
a=eval(input())
print("superieur :",end=" ")
b=eval(input())
s=0
n=a
while n<=b:
if n%3==0 and n%5==0:
s=s+n
n=n+1
print("La somme recherchée vaut",s)
Et quand je voie que je comprend pas ca j'ai juste envie de tout arrêter car je me sent vraiment stupide ^^"
Configuration: Windows / Chrome 73.0.3683.103
1 réponse
-
Bonjour,
Tu aurais du nous donner l'énoncé de la question ;-)
Je me lance : la somme des entiers, compris entre 2 valeurs, divisibles à la fois par 3 et par 5.
Un peu difficile de t'aider. Pour résumer on demande de saisir 2 valeurs a et b et on va tester toutes les valeurs n entre ces 2 nombres (le while) pour voir s'ils sont divisibles à la fois par 3 et par 5 (le if), si oui on additionne la valeur testée n dans l'accumulateur s, quand la boucle est terminée on affiche s
-
-
effectivement désolée
Écrire un programme qui, étant données deux bornes entières a et b, additionne les nombres multiples de 3 et de 5 compris entre ces bornes. Prendre par exemple a = 0, b = 32 ; le résultat devrait être alors 0 + 15 + 30 = 45.
Modifier légèrement ce programme pour qu'il additionne les nombres multiples de 3 ou de 5 compris entre les bornes a et b. Avec les bornes 0 et 32, le résultat devrait donc être : 0 + 3 + 5 + 6 + 9 + 10 + 12 + 15 + 18 + 20 + 21 + 24 + 25 + 27 + 30 = 225.
Ce que je comprend pas déjà c'est a quoi sert réellement la fonction "eval" ici ?
Et on lui dit bien d’exécuter cela si" n" et divisible par 3 et aussi par 5 or ce n'est pas le cas. -
eval() sert à faire de a un nombre entier, sans eval() a serait une chaine de caractères, accessoirement si un utilisateur tordu répond supérieur=16+16 b vaudra l'entier 32, sans eval() b vaudrait la chaine "16+16"
c'est nécessaire de le savoir, mais pas principal pour l’exercice proprement dit.
Je ne comprend pas le sens de ton questionnement dans ta dernière phrase. C'est le programme qui justement détermine, pour chaque nombre, entre les bornes si il répond à la question.
Que proposes tu pour la 2ème version du programme "multiple de 3 ou de 5" ? -
A d'accord merci, Pour la deuxième partit il suffit de remplacer le if n%3==0 and n%5==0: par if n%3==0 or n%5==0:
Ce que je comprend pas c'est en fin de compte quelle et la procédure du calcul je n'arrive pas a comprendre comment l'on arrive a ce résultat, la procédure je ne la comprend pas. Du coup la en ayant regarder la correction je ne comprend toujours pas -
on fait une boucle on traite 0, 1, 2 , 3 ... 32 si le nombre traité est divisible par 3 et 5 on additionne ce nombre dans l'accumulateur s
pour mieux visualiser où passe le programme tu devrais executer
print("entrer l'inferieur :",end=" ") a=eval(input()) print("superieur :",end=" ") b=eval(input()) s=0 n=a while n<=b: print("Traitement de ", n) if n%3==0 and n%5==0: print("valeur OK ", n) s=s+n print("Nouveau cumul ", s) n=n+1 print("La somme recherchee vaut",s)
-