Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Algorithme

Posté par
Jeanner
25-02-18 à 19:03

Bonjour
j'ai un algorithme à faire pour jeudi et je ne comprend rien du tout
voici l'énoncé
Faire un programme sur algobox  qui permet d'abtenir la somme des n premiers carrés
1au carré + 2 au carré + 3 au carré + ... + n au carré
L'exécuter avec n=2018
Merci d'avance

Posté par
Glapion Moderateur
re : Algorithme 25-02-18 à 19:09

Bonsoir, tu as sûrement déjà fait des algorithmes ?
celui-ci n'est pas bien compliqué, une simple boucle Pour I allant de 1 à n
et à l'intérieur de la boucle tu ajoutes à chaque fois un nouveau terme
S prend la valeur S + i²
et en sortie de boucle tu affiches S
lance toi, les algorithmes, il faut se battre un peu avec sinon on progresse pas.

Posté par
Valentin28
re : Algorithme 25-02-18 à 19:12

Bonjour
Je pense qu'il faut que tu fasse un programme qui donne la somme des premiers carrés
Exemple:1 au carré=1
                     2 au carré=4...
Il faut que des que tu mets un nombre au carré, il te donne directement le résultat.
Ensuite tu le fais avec 2018 et il devrai donner le résultat

Posté par
Glapion Moderateur
re : Algorithme 25-02-18 à 19:18

Valentin28 c'est la somme des carrés qu'il veut calculer, pas 2018²

Posté par
Valentin28
re : Algorithme 25-02-18 à 20:38

Désolé

Posté par
Jeanner
re : Algorithme 27-02-18 à 13:18

Bonjour
merci pour l'aide neanmoins algobox me demande d'entrer une valeur précise pour i et s
et je ne sais pas quoi mettre

Posté par
Glapion Moderateur
re : Algorithme 27-02-18 à 13:22

non algobox ne te demande de rentrer des valeurs que si tu as mis des instruction LIRE i et LIRE n
LIRE n je comprends si tu veux faire varier n sans changer le programme (sinon mettre n PREND_LA_VALEUR 2018) mais pour i c'est incompréhensible, algobox se charge de mettre des valeur dans i si tu as mis une instruction POUR i ALLANT de 1 A n

Posté par
Jeanner
re : Algorithme 27-02-18 à 13:29

p.s : je ne comprend pas ce qu'est "i" et combien de fois faut il mettre "S prend la valeur S + i²" svp ?

Posté par
Glapion Moderateur
re : Algorithme 27-02-18 à 13:34

je vois que tu ne sais pas ce qu'est une boucle alors ?
une boucle c'est ça :

POUR i ALLANT_DE 1 A n
DEBUT_POUR

FIN_POUR

i prend la valeur 1 puis on exécute les instructions qui sont dans la boucle et au FIN_POUR on remontre à l'instruction POUR et on fait i=2, etc... jusqu'à ce que i prenne la valeur n, on exécute une dernière fois la boucle et on en sort.

donc l'instruction S prend la valeur S + i² on a besoin de la mettre qu'une seule fois dans la boucle et elle sera exécuté 2018 fois

(et pas de i² dans algobox évidemment tu peux mettre i*i ou pow(i,2))

Posté par
Jeanner
re : Algorithme 27-02-18 à 13:40

C'est ok j'ai reussi merci pour votre aide

Posté par
Jeanner
re : Algorithme 27-02-18 à 13:48

ok alors quand j'ecoute à la lettre vos instructions algobox me met 1  comme resultat à s

Posté par
mathafou Moderateur
re : Algorithme 27-02-18 à 14:00

Bonjour,

discuter dans le vide sur des généralités du genre "ça marche pas point final" ne fait pas beaucoup avancer les choses

recopie mot à mot et à la virgule près exactement et entièrement ce que tu as mis dans ton programme si tu veux qu'on t'aide à identifier où tu as fait une erreur

on peut copier-coller directement le texte du programme si Algobox est en mode Editeur
ou exporter en texte (dans un fichier) et copier coller ce texte
(une photo d'écran est très peu pratique car il faudrait tout retaper pour en citer des bouts ou y apporter des corrections)

Posté par
Jeanner
re : Algorithme 27-02-18 à 14:27

N est du type NOMBRE
I est du type NOMBRE
S est du type NOMBRE
DEBUT ALGORITHME
POUR I ALLANT DE 1 A N
DEBUT POUR
S PREND LA VALEUR S+pow(I,2)
FIN POUR
AFFICHER S

Posté par
mathafou Moderateur
re : Algorithme 27-02-18 à 14:36

N est du type NOMBRE
I est du type NOMBRE
S est du type NOMBRE
DEBUT ALGORITHME

LIRE N
ou bien
N PREND LA VALEUR 2018
sinon N n'a aucune valeur et il est impossible à l'instruction "pour" de savoir quand s'arrêter
(déja dit qu'il fallait mettre une instruction donnant une valeur à N au départ)

S PREND LA VALEUR 0
(déja dit aussi)
sinon S n'a aucune valeur et il est impossible de calculer S + pow(I,2) dans la suite
S est l'accumulation de tous les carrés successifs,
au départ cette somme est donc "vide" et doit contenir la valeur 0

POUR I ALLANT DE 1 A N
DEBUT POUR
S PREND LA VALEUR S+pow(I,2)
FIN POUR
AFFICHER S

Posté par
mathafou Moderateur
re : Algorithme 27-02-18 à 14:43

* (déja dit aussi) ah non, tiens, c'était dit pour n mais pas pour S
il n'empêche que à tout moment quand on utilise une variable pour un calcul ce calcul doit être possible, donc les variables de ce calcul doivent toutes avoir une valeur au moment de ce calcul ou de cette utilisation.

Posté par
Jeanner
re : Algorithme 27-02-18 à 15:16

D'accord
Alors en rajoutant
LIRE N
N PREND LA VALEUR 2018
S PREND LA VALEUR 0
et en testant l'algorithme j'obtient 4036

Posté par
mathafou Moderateur
re : Algorithme 27-02-18 à 16:41

tu comprends ce que veut dire "ou"

c'est l'un ou bien c'est l'autre mais pas les deux
ou bien tu choisis conformément à l'énoncé de faire un programme qui calcule la somme des n premiers carrés quel que soit n
et alors cette valeur de n est "lue" au clavier au moment de l'exécution du programme par l'instruction "LIRE N"

ou bien tu décides d'écrire un programme qui ne sait que calculer la somme des 2018 premiers carrés et aucune autre
et alors il n'y a rien à "LIRE" du tout et seule
"N PREND LA VALEUR 2018" est à mettre

mettre les deux comme tu l'as fait va faire que
LIRE N : en réponse lors de l'éxécution tu tapes par exemple 10 pour calculer la somme des 10 premiers carrés, N prendra alors à ce moment la valeur 10
ensuite le programme exécute
N PREND LA VALEUR 2018
ta valeur 10 est donc mise à la poubelle et remplacée par la valeur 2018 ... et le programme calcule la somme des 2018 premiers carrés !
quoi que tu tapes en réponse à "LIRE", il calculera toujours la somme des 2018 premiers carrés !

c'est l'un ou bien c'est l'autre, mais pas les deux, ça ne rime à rien de lire une valeur au clavier pour la mettre à la poubelle l'instruction d'après.

ton résultat :
comme 2018² tout seul est déja = 4072324, le résultat de la somme de tous ces carrés est forcément > ce nombre là !!
remet donc ton algorithme entier ici et pas seulement un petit bout.

le nombre est tellement grand que le résultat affiché est une approximation : 2.7413531e+9 voulant dire 2.7413531 multiplié par 109

on peut prouver que la somme des carrés de 1² à n² est n(n+1)(2n+1)/6
ce qui donne la valeur exacte attendue
2018*2019*4037/6 = 2741353109
mais ceci n'est pas demandé dans cet exo qui est juste écrire un algo.



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 1506 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 !