écrire un algorithme permettant de calculer la somme suivant S=2n+3n+4n+5n+6n+7n+8n+9n+10n avec n entier donne (utiliser seulement la boucle tant que)
j'ai trouvé une solution mais le prof m'as dit que ç'est faux
écrire un algorithme permettant de calculer la somme suivant S=2n+3n+4n+5n+6n+7n+8n+9n+10n avec n entier donne (utiliser seulement la boucle tant que)
j'ai trouvé une solution mais le prof m'as dit que ç'est faux
Bonjour,
Sur ce forum, tu ne trouveras pas des gens pour faire tes exercices à ta place.
Au revoir.
N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 S=0 TANT QUE (S < 2<sup>n</sup>+3<sup>n</sup>+4<sup>n</sup>+5<sup>n</sup>+6<sup>n</sup>+7<sup>n</sup>+8<sup>n</sup>+9<sup>n</sup>+10<sup>n</sup>) INCREMENTER S FIN TANT QUE
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
salut
il y a plusieurs solution a ton problème
le truc c'est de se poser quelques questions ... nous ne somme pas là pour résoudre tes problèmes
mais t'indiquer la direction à suivre.
pour ce faire on a besoin de savoir que la personne à mis un peu de bonne volonté à cherche au moins une solution
dans ton cas par exemple tu aurais pu nous dire :
1°) qu'est ce qu'une puissance
le solution qui vient naturelement c'est de faire une boucle de nfois-1S^n= S*S*S*S ... nfois-1
tu pourrais donc prendre S2,S3,S4,S5,.. S10
est calculer pour chaque variable le carré correspondant à son indice
2°) Qu'est ce qu'une somme ?
3°) y'a t'il un moyen de factoriser ce problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 i:=2 Tans que i<= 10 Faire S := S+Puissance(I,n) i := I=1; Fin TansQue
....
tu vois pour nous ton problème est simple et on vois beaucoup d'étudiant ne se donnant pas la peine de chercher au moins une solution même absurde
que l'on commence à être désabusé et qu'au final on ne répond presque plus à ce genre de demande
Blaise PascalNous souhaitons la vérité et nous trouvons qu'incertitude. [...]
Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
PS : n'oubliez pas le tag
Je ne suis pas vexé du tout.
Ce forum est régi par quelques règles : http://club.developpez.com/regles/
Ce sont simplement des règles de bon sens, mais il se trouve qu'en plus, elles sont écrites noir sur blanc.
Je voulais juste te rappeler ces règles de bon sens. En particulier les règles IV.A et IV.N
N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.
Bonjour
Bon j'ai oublié un peu les syntaxes mais la solution c'est presque ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 début Variable i,n,S: entier lire(n) S=0 i=2 tant que (i<=10) faire S=S+i^n fin tant que écrire (S) Fin
A+
While the grass grows, the steer starves
Bonjour,
Je crois que le but de l'exercice, c'était tout simplement de remplacer par WHILE les deux boucles imbriquées FOR que devait manifestement comporter le programme, une pour l'exécution de la somme, et une autre pour celle du produit.
Le code s'écrit spontanément:
Tu as effectivement proposé une solution, mais sa présentation a braqué quelques intervenants pour les raisons suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 VAR i, j, N: Byte; p, q, S: LongInt; BEGIN Read(N); S:= 0; FOR i:= 2 TO 10 DO BEGIN p:= i; FOR j:= 1 TO (N-1) DO BEGIN q:= i * p; p:= q // p:= i * p répété (N-1) fois, d'où p = i^N END; Inc(S, p) // S:= S + p répété 9 fois, de p = 2^N à 10^N END; END.
a) tu as donné une capture d'écran qui, ne relevant pas d'un traitement de texte, contraint le lecteur de bonne volonté à recopier manuellement le programme (là, c'est de l'apostolat ! ); et ses dimensions énormes n'arrangent rien ...
b) le texte est illisible en raison d'un indentation défectueuse, les variables trop nombreuses, et leur nom ne facilite pas leur mémorisation: pour une somme, le symbole à prendre est "s" ou "S", "Somme" etc ...
L'esprit du programmeur ne saurait rivaliser en performances avec le système d'exploitation qu'il contrôle; il reçoit en permanence des signaux extérieurs, et effectue en parallèle de multiples tâches; il faut donc impérativement ménager sa mémoire, pour lui éviter des erreurs lors de la rédaction du code ... d'où l'économie nécessaire pour le nombre de variables, et la nécessité de choisir les identificateurs appropriés.
Ce qui est en cause, c'est l'équivalence logique de l'énumération simple:
avec celle de l'énumération conditionnelle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 FOR k:= Kmin TO Kmax DO <Instructions>
À toi de reprendre le programme, à partir des éléments fournis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 k:= Kmin - 1; WHILE (k<Kmax) DO BEGIN Inc(k); <Instructions> END; // ou encore: k:= Kmin; WHILE (k<Kmax) DO BEGIN <Instructions>; Inc(k) END;
j'ai trouvé la solution
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 var puis , cpt , p , s , n :integer; begin read(n); cpt := 2; s := 0; while cpt <= 10 do begin p := 1*; puis := 1*; while puis ≤ n do begin p := p * cpt*; puis := puis + 1*; end*; cpt := cpt + 1*; s := s + p*; end*; writeln (s)*; end.
Ravi de ta réaction ! Voilà un document sur lequel on peut travailler.
De quel langage s'agit-il ? Ce n'est plus du Pascal, comme dans la version initiale; mon compilateur (Virtual P.) refuse les astérisques suivant des affectations ( ...*; ), aussi les ai-je supprimés pour obtenir une pré-version du programme:
À ce stade, la compilation s'effectue mais rien ne se voit sur l'écran, en raison de consignes d'affichage inappropriées en début et fin de texte, d'où une nouvelle version:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 program Somme_Puissance_N_00; var puis , cpt , p , s , n :integer; begin read(n); cpt := 2; s := 0; while cpt <= 10 do begin p := 1; puis := 1; while puis = n do begin p := p * cpt; puis := puis + 1; end; cpt := cpt + 1; s := s + p; end; writeln (s); end.
Cette fois le lancement réussit, mais conduit toujours au même résultat (9), quelle que soit la valeur de l'exposant (n). Où est l'erreur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 program Somme_Puissance_N_01; var puis , cpt , p , s , n :integer; begin readln(n); cpt := 2; s := 0; while cpt <= 10 do begin p := 1; puis := 1; while puis = n do begin p := p * cpt; puis := puis + 1; end; cpt := cpt + 1; s := s + p; end; write(s); readln end.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager