Bonjour !
J'ai un DM de math a terminer et il ne me reste plus qu'un exercice sur lequel je bloque, car les suites et moi ca fait ... beaucoup ^^
Donc voile l'énoncé :
Ecrivez un algorithme permettant de calculer la somme des n premiers termes de la suite arithmétique de premier terme 2 et de raison 1/2 ( le nombre n étant choisi par l'utilisateur).
Donc pour l'instant Mon programme qui ne ressemble pas à un programme est celui ci :
Variables
u est du type nombre
r est du type nombre
n est du type nombre
Debut Algorithme
Lire n
u prend la valeur 2
r prend la valeur 1/2
Fin Algorithme
Oui je sais, je n'ai pas fais grand chose, mais j'ai vraiment du mal a comprendre les suites.
Merci d'avance à ceux qui m'aideront.
Bonsoir,
il faut que ajoute une variable ( par exemple a) tu fasses une boucle du type
tant que a < n ,
u = ... ( définition d'une suite arithmétique)
a = a + 1
fin tant que
(a est l'incrémentation qui se fera au fur et à mesure que l'on ajoute la raison de la suite)
Merci de ta réponse,
Mais ca ne serais pas plutot a = u + 1 ?
Car vu que a n'est pas defini avant il me semblerait bizarre de le définir par lui même en ajoutant 1
Donc j'ai essayé un autre algorithme après tes explications :
Variable :
n est du type nombre
r est du type nombre
u est du type nombre
a est du type nombre
Debut Algorithme
Lire n
u prend la valeur 2
r prend la valeur 1/2
a prend la valeur a+1
Tant que (a < 20) faire
Debut tant que
u prend la valeur u+r
n prend la valeur n+u
Fin tant que
Afficher n
Mais le probleme c'ets que la ca me met "Dépassement de la capacité autorisée pour les boucles "
( Désolé du double post, mais vu que je peux pas éditer ... )
Salut
au début, il faut que a prenne la valeur 1 et pas a+1.
u prend la valeur u+r c'est bien
et après il faut que tu mettes a prend la valeur a+1 dans la boucle tant que (a<n)
à la fin il faut afficher u pas n.
Bonjour, j'ai un DM à faire pour vendredi, je suis en terminale S.
Voila, on me demande de simplifier cet algorithme avec le logiciel algobox permettant la même finalité :
VARIABLES
u0 EST DU TYPE NOMBRE
r EST DU TYPE NOMBRE
n EST DU TYPE NOMBRE
S EST DU TYPE NOMBRE
i EST DU TYPE NOMBRE
u EST DU TYPE NOMBRE
DEBUT ALGORITHME
LIRE u0
LIRE r
LIRE n
S PREND LA VALEUR 0
u PREND LA VALEUR u0
POUR i ALLANT DE 0 A n
DEBUT POUR
S PREND LA VALEUR S+u
u PREND LA VALEUR u+r
FIN POUR
AFFICHER S
FIN ALGORTIHME
J'ai essayé plusieurs fois de le simplifier en utilisant la formule de la somme d'une suite arithmétique :
S=(n+1)(u0+uN)/2
Mais je n'arrive pas à le convertir en algorithme...
Merci d'avance.
Oui, bonne idée d'utiliser la formule qui donne directement la somme, la transcrire ne pose pas grand problème, il n'y a même plus de boucle :
VARIABLES
u0 EST_DU_TYPE NOMBRE
r EST_DU_TYPE NOMBRE
n EST_DU_TYPE NOMBRE
S EST_DU_TYPE NOMBRE
u EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE u0
LIRE r
LIRE n
u PREND_LA_VALEUR u0 + n*r
S PREND_LA_VALEUR (n+1)*(u0+u)/2
AFFICHER S
FIN_ALGORITHME
Je ne savais pas qu'elle valeur il fallait affecter à u.. Ce n'étais pas très clair dans mon esprit mais maintenant sa fonctionne très bien.
Merci beaucoup de votre aide.
ha oui il faut savoir que pour une suite arithmétique de raison r alors un =u0+nr
(il y a une fiche bien faite sur le site pour retenir ces formules :
fiche méthode : conseils sur les suites)
J'ai un dernier problème, je voudrais utiliser ce même algorithme mais pour une suite géométrique. Et quand je veux l'exécuter sa ne me donne pas le même résultat...
Voici mon algorithme :
VARIABLES
u0 EST_DU_TYPE NOMBRE
r EST_DU_TYPE NOMBRE
n EST_DU_TYPE NOMBRE
S EST_DU_TYPE NOMBRE
u EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE u0
LIRE r
LIRE n
u PREND_LA_VALEUR u0*pow(r,n)
S PREND_LA_VALEUR u0*(1-pow(r,n+1)/1-r
AFFICHER S
FIN_ALGORITHME
Merci de votre aide.
tu as des fautes de parenthèses dans
S PREND_LA_VALEUR u0*(1-pow(r,n+1))/(1-r)
mais sinon ça devrait marcher.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :