Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Algorithme

Posté par
0v3rdoZe
31-12-10 à 15:23

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.

Posté par
barbaros
re : Algorithme 31-12-10 à 18:28

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

Posté par
0v3rdoZe
re : Algorithme 31-12-10 à 20:09

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.

Posté par
sebil
re : Algorithme 31-12-10 à 20:14

pour i allant de 0 à n

et non i2 à n2

Posté par
barbaros
re : Algorithme 31-12-10 à 20:31

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"

Posté par
sebil
re : Algorithme 31-12-10 à 20:36

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é..

Posté par
barbaros
re : Algorithme 31-12-10 à 20:55

Comme tu dis ca dépend si le langage le gère automatiquement ou non, mais ici en algorithmique il faut le préciser

Posté par
0v3rdoZe
re : Algorithme 31-12-10 à 22:21

Merci de vos réponses mais comment j'incrémente i ?

Posté par
sebil
re : Algorithme 31-12-10 à 22:22

dans ta boucle: i<-- i+1

Posté par
0v3rdoZe
re : Algorithme 31-12-10 à 22:24

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

Posté par
sebil
re : Algorithme 31-12-10 à 22:25

i prend la valeur i+1

Posté par
sebil
re : Algorithme 31-12-10 à 22:27

     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

Posté par
0v3rdoZe
re : Algorithme 31-12-10 à 22:28

Si je ne m'abuse sa ne serait pas dans l'autre sens la fleche ?

Posté par
barbaros
re : Algorithme 31-12-10 à 22:52

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

Posté par
0v3rdoZe
re : Algorithme 31-12-10 à 23:06

Merci a vous 2



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !