Bonjour , dans mon dm j'ai une question qui est :
Ecrire un algorithme qui demande un nombre entier n et qui calcule la somme S= 0²+1²+2²+..........n²
Je ne comprend pas du tout pouvez vous m'aider s'il vous plait.
Bonjour,
tu as deux possibilités:
->Soit tu fais une boucle de 0 à n
->Soit tu utilises la super formule: 0²+1²+2²+3²+4²+... = n(n+1)(2n+1)/6
Bonsoir merci d'avor répondu aussi vite , j'ai un peu chercher sur internet et j'ai fais sa comme algorithme :
Entrée
Saisir n
Initialisation
S prend la valeur 0
Traitement
Pour i de 0² jusqu'à n² faire
S prend la valeur S+i²
Fin pour
Sortie
Afficher S
Pourriez vous me dire si j'ai bon ?
Merci d'avance.
Sebil a effectivement raison
Mais il manque quelque chose dans ta boucle, c'est d'incrémenter i. En effet à chaque tour de boucle, si la valeur de i n'augmente pas la boucle ne s'arretera jamais...
Ensuite ce que tu pourrais améliorer serait la formule, en utilisant plutot celle que je t'ai donné. L'avantage est qu'un programme créé avec la boucle vera son temps d'éxécution varier en fonction du nombre entré (donc, si j'entre un très grand nombre, il pourra etre tres long), alors qu'en utilisant la formule le temps d'éxécution est constant. Mais ca n'est qu'une "optimisation"
dans la boucle tant que, il faut incrémenter mais dans la boucle pour, j'ai un doute. Il me semble que cela dépend du langage utilisé..
Comme tu dis ca dépend si le langage le gère automatiquement ou non, mais ici en algorithmique il faut le préciser
Entrée
Saisir n
Initialisation
S prend la valeur 0
Traitement
Pour i de 0² jusqu'à n² faire
S prend la valeur S+i²
i<-- i+1
Fin pour
Sortie
Afficher S
Comme ceci ? .
Ps : <-< sa equivaut a quoi ? :x
Entrée
Saisir n
Initialisation
S prend la valeur 0
Traitement
Pour i de 0² jusqu'à n² faire ( tu as oublié de corriger ici!)
S prend la valeur S+i²
i<-- i+1
Fin pour
Sortie
Afficher S
Le sens de la fleche est le bon car c'est i+1 qui devient i et non l'inverse (d'ailleurs si tu mettais l'inverse tu obtiendrais une erreur car je ne connais aucun langage qui gère l'inversion d'une equation)
Bon bah si tu changes bien en "Pour i de 0 jusqu'à n faire" en enlevant les carrés, le probleme est résolu il me semble
Bonnes fetes à tous les deux
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :