Bonsoir à tous, et merci d'avance à ceux qui m'aideront pour cet exo que je n'arrive pas à résoudre :
1) a ) Trouver un programme (2 possibles) pour calculer la somme :
S = 1+2+3+...+500
b) Modifier votre programme pour calculer, en rentrant N, la somme :
S= 1+2+3...+N
#Remettre sur votre copie l'algorithme papier & tester sur Algobox.
c) Remplir le tableau suivant :
N 100 1000 200
S
#Montrer les résultats obtenus à partir d'Algobox.
2)a ) Trouver un programme (2 Possibles) pour calculer la somme:
S= 1+3+5...+2009
b) Modifier votre programme pour calculer N, la somme:
S= 1+3+5+...+(2K+1) #Remettre sur votre copie l'algorithme papier & Algobox
c) Remplir le tableau suivant :
K 5 9 19
S #Faire le programme sur Algobox
d) Que peut-on faire comme conjecture ?
Bonsoir,
1) L'algorithme peut se faire avec une simple boucle POUR.
Variables : I et S de type nombre
Début algo
S prend la valeur 0
Pour I allant de 1 A 500
Début Pour
S prend la valeur S+I
Fin Pour
Afficher "La somme vaut :"
Afficher S
Fin algo
2) Même chose en rajoutant une variable N supplémentaire.
Je vais te filer les 1b) et 2b), ils sont plus durs que le 1a) et 2a) ça devrait t'aider à les faire !
Dans le 1b, il y a un SI (en violet), ce qu'il y a entre parenthèses (I%2 == 1) veut dire, "si I est impair"
On utilise I pour parcourir les valeurs de 1 à N
@eldoir :
2b) On peut tout à fait le faire sans la condition SI. Avec uniquement la boucle POUR :
Entrer N
S prend la valeur 0
Pour I allant de 1 à N
S prend la valeur S+2I-1
Fin Pour
Afficher "La somme est :"
Afficher S
J'en suis bien conscient,
Seulement je doute que l'optimisation soit notée, je voulais faire au plus intuitif
Ah je crois avoir compris mais pour les autres questions je sais pas comment m'y prendre vu que c'est "1+2+3+5.."
1) b)
Variables : I,S et N de type nombre
Début algo
S prend la valeur 0
Saisir N
Pour I allant de 1 A 500
Début Pour
S prend la valeur S+I
Fin Pour
Afficher "La somme vaut :"
Afficher S
Fin algo
1)c) le tableau ( résultat obtenus à partir d'Algobox) :
N 100 1000 200
S 5050 500500 20100
Les résultats que tu as obtenus sont corrects
Enfin, pour calculer une somme de nombres allant de 1 à N, c'est presque dommage d'utiliser un algo aussi simple alors qu'utiliser une simple formule suffit :
Somme de 1 à N =
Par exemple, pour N = 100 ça fait
Mais bon ça c'est pour la culture.
Qu'est-ce que tu ne comprends pas ? Mon algo pour le 2b ?
Je suis désolé, je ne connais pas les algo papier, qu'est-ce qui change avec algobox ? ^^
Ah merci, je suis en train de me demandé es ce qu'on peut écrire Si " I impair " en algo papier ou on doit l'écrire autrement, mais bon ça je vais me renseigné, et aussi qu'est ce que l'on doit changer pour S= 1+3+5+...+(2K+1)
Ben, "Si I impair" en algobox je te l'ai expliqué en tous cas,
Sur papier je connais pas du coup ,
Si ça te gêne tu as toujours la solution de fenamat84 comme ça tu n'as pas à te poser la question de savoir si I est impair ou pas,
Et qu'est-ce que tu entends par "qu'est-ce que l'on doit changer pour S = 1 + 3 + 5 + ... + (2k+1)" ?
Ahhh en faite c'est le 2)b que vous m'avez fait, désoler! Moi j'étais toujours au 2)a
Ok,ok merci! Je vais tester le programme tout de suite pour remplir le tableau, par contre le 2)a) je ne l'ai pas, donc voilà :
Variables : I,S et N de type nombre
Début algo
S prend la valeur 0
Saisir N
Pour I allant de 1 A 2009
Début Pour
S prend la valeur S+I
Fin Pour
Afficher "La somme vaut :"
Afficher S
Fin algo
Très bien ton 2a)
Il manque juste une petite chose, tu dois vérifier que I est impair avant de faire "S prend la valeur S+ I" !
Tu dois Ajouter un SI... Alors, tu as un bouton pour ça
Pour vérifier qu'une variable est paire ou impaire, on utilise le pourcent : %
Si I % 2 == 0, I est pair
Si I % 2 == 1, I est impair
Pour S = 1 + 3 + 5 + ... + (2k+1) , pour pouvoir remplir le tableau il faudrait pas une variable K ?
Ben, pour remplir le tableau, il suffit d'exécuter l'algo 2b en rentrant 5, 9 et 19 donc il faut exécuter l'algo 3 fois
Dans l'algo 2b que j'ai fait, ma variable K je l'ai appelée I donc oui, on a bien besoin d'une variable pour parcourir tous les nombres je suis d'accord !
C'est le mot conjecture qui te gêne ou alors tu ne vois pas ce qu'il y a de commun entre tous ces nombres ?
Ben, je ne sais pas si c'est ça que veut nous faire voir l'exercice, mais en reprenant ton dernier tableau et en rajoutant quelques valeurs pour que tu voues lieux le lien :
K 5 7 9 11 13 15 17 19
S 9 16 25 36 49 64 81 100
Toujours rien... ?
bjr je suis dans le même cas et ne comprend pas très bien les algorithmes
ma question est Comment trouver à partir de quel indice L la somme k = 1 + 2+ 3 + . . . + L dépasse t'elle un million ?
Merci bien
Pour calculer une somme de 1 à N , il ya une formule simple.
N*(N+1)/2 en français cela donne la somme équivaut au nombre de termes multipliés par la moyenne des termes extremes.
Bonjour,
surtout que cette discussion fait un regrettable mélange des genres néfaste
entre mathématiques et informatique
entre exercice (ici s'exercer à construire des boucles) et question à résoudre (calculer la somme par n'importe quel moyen)
entre algorithme et programme
un algorithme est la rédaction en français (plus ou moins codifié) de l'enchainement des opérations à effectuer
un programme est la traduction d'un algorithme dans un langage donné pour une machine donnée (par exemple pour Algobox)
ainsi par exemple,
"si N est impair" s'écrit très exactement comme ça dans un algorithme, point barre.
et se traduira par exemple en Algobox par :
SI (N%2==1) ALORS ... (si le reste de la division par 2 est 1)
ou bien par
SI (N/2==floor(N/2) ALORS ... (si la partie entière du quotient de la division par 2 est égale à ce quotient)
et puis au passage ne pas oublier la boucle "tant que" fondamentale lorsque des éléments ne progressent pas de 1 en 1 (voire ne sont même pas des nombres entiers)
ici avec les nombres impairs qui progressent de 2 en 2, on peut écrire (algorithme, pas programme en Algobox),
entrée : N
initialiser S à 0
initialiser I à 1
tant que I est ≤ N
ajouter I à S
augmenter I de 2
fin tantque
sortie : S
la formulation de l'énoncé est d'ailleurs farfelue
2b) Modifier votre programme pour calculer N, la somme:
S= 1+3+5+...+(2K+1) #Remettre sur votre copie l'algorithme papier & Algobox
c) Remplir le tableau suivant :
K 5 9 19
veut bien dire de calculer la somme 1+3+5+7+9+11 (K = 5, 11 = 2*5+1) etc et pas la somme 1+3+5
et puis "calculer N" qui n'est écrit nulle part dans cette partie 2 de l'exo, c'est loufoque.
oups
SI (N/2!=floor(N/2) ALORS ... (si la partie entière du quotient de la division par 2 n'est pas égale à ce quotient)
(ce que j'avais écrit était la traduction de "si N est pair")
On suppose qu'au Prompt K , l'utilisateur répond 100
Donc K * (3 + 2k + 1) vaut 100 * 204 = 20 400
et K * (3 + 2k + 1)/2 vaut 20 400/2 et bien sûr cela donne 5 050 ! Sur quelle planète ?
programmes qui ne sont pas les réponses attendues du tout ...
mais bon, on peut croire que l'exo consiste non pas à écrire un programme, mais à étudier la théorie des sommes de suites arithmétiques et calculer directement n(n+1)/2 et compagnie et basta hein ...
ce qui est attendu est une boucle "pour" ou une boucle "tant que" (2 façons = boucle pour et boucle tant que)
sans la théorie des suites arithmétiques
c'est ça l'intérêt de la chose (de faire un algorithme, donc de s'exercer à en faire) : l'analyse théorique de la suite est inutile pour en calculer numériquement la somme.
Rectification , Desolé, une petite imprécision pour la seconde partie.
Pour la 2)a) Il faut prendre k = 1004 car 2*1004+1=2009.
K | 5 | 9 | 19 |
S | 36 | 100 | 400 |
NupRow, je vois que tu es nouveau(velle) sur notre site...bienvenue, mais, lis en le mode d'emploi et les finalités....notre but n'est pas de"faire" les exercices et de donner des réponses toutes faites (ici non adaptées à la demande d'ailleurs), merci à toi de le comprendre pour l'avenir...
(modérateur)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :