Algorithme .

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
FreeNow
Messages: 3
Enregistré le: 18 Mar 2015, 17:43

Algorithme .

par FreeNow » 18 Mar 2015, 17:48

Bonjour . Je suis en première S et j'ai un professeur de mathématiques qui est "fana" des algorithmes .

Il nous a demandé d'écrire un algorithme, voici l'énoncé ci-dessous :

[CENTER] - Ecrire un algorithme qui, lorsqu'on entre un entier naturel n ,affiche le nombre Sn. [/CENTER]

Je me trouve bloqué, je ne m'en sors pas après 10 heures de lecture sur plusieurs sites "tuto" avec algobox .

Je vous remercie d'avance d'avoir lu mon message, et merci aussi à ceux qui répondront .

[RIGHT]Cordialement, FreeNow .[/RIGHT]



takezo
Membre Relatif
Messages: 107
Enregistré le: 26 Fév 2015, 16:05

par takezo » 18 Mar 2015, 19:28

Bonsoir,

- Ecrire un algorithme qui, lorsqu'on entre un entier naturel n ,affiche le nombre Sn.

Euh...
Je ne demande qu'à t'aider, mais qu'est-ce que Sn ? Une somme ? La somme des n premiers entiers naturels : 1+2+3+4+...+n ?

Bye

FreeNow
Messages: 3
Enregistré le: 18 Mar 2015, 17:43

par FreeNow » 18 Mar 2015, 19:54

takezo a écrit:Bonsoir,


Euh...
Je ne demande qu'à t'aider, mais qu'est-ce que Sn ? Une somme ? La somme des n premiers entiers naturels : 1+2+3+4+...+n ?

Bye


Alors, Sn= u0+u1+u2+u3...+un .

Un = 2750+250+(0.96)^n .

Merci de ton aide d'avance .

takezo
Membre Relatif
Messages: 107
Enregistré le: 26 Fév 2015, 16:05

par takezo » 18 Mar 2015, 20:51


Ton 250 +... me paraît bizarre... Dans ce cas pourquoi ne pas écrire ?
Ce n'est pas plutôt ?

Bon ça ne change rien pour la structure de l'algo, il y aurait juste à substituer un x au +...

Donc dans AlgoBox
- Tu commences par la déclaration des variables n, S et u comme des nombres
- Tu passes à la rédaction de l'algo.
Tu choisis AFFICHER un message : Entrer le nombre n (et tu ne coches pas la case Ajouter un retour à la ligne)
Puis LIRE n
Puis Tu affectes la valeur 0 au nombre S
Puisque tu as un nombre d'itérations connu, il est préférable d'utiliser une boucle POUR plutôt que TANT_QUE :
POUR i ALLANT DE 0 A n...
A chaque tout tu vas ajouter à S la valeur
Soit avec AlgoBox AFFECTER à la variable S la valeur : S = S+2750+250+pow(0.96,i)
Tu sors de la boucle POUR
Et de nouveau tu prends AFFICHER message S =
puis AFFICHER variable S

Bye
Y a plus qu'à essayer (moi, je viens de l'écrire et de le tester)

FreeNow
Messages: 3
Enregistré le: 18 Mar 2015, 17:43

par FreeNow » 18 Mar 2015, 21:18

takezo a écrit:
Ton 250 +... me paraît bizarre... Dans ce cas pourquoi ne pas écrire ?
Ce n'est pas plutôt ?

Bon ça ne change rien pour la structure de l'algo, il y aurait juste à substituer un x au +...

Donc dans AlgoBox
- Tu commences par la déclaration des variables n, S et u comme des nombres
- Tu passes à la rédaction de l'algo.
Tu choisis AFFICHER un message : Entrer le nombre n (et tu ne coches pas la case Ajouter un retour à la ligne)
Puis LIRE n
Puis Tu affectes la valeur 0 au nombre S
Puisque tu as un nombre d'itérations connu, il est préférable d'utiliser une boucle POUR plutôt que TANT_QUE :
POUR i ALLANT DE 0 A n...
A chaque tout tu vas ajouter à S la valeur
Soit avec AlgoBox AFFECTER à la variable S la valeur : S = S+2750+250+pow(0.96,i)
Tu sors de la boucle POUR
Et de nouveau tu prends AFFICHER message S =
puis AFFICHER variable S

Bye
Y a plus qu'à essayer (moi, je viens de l'écrire et de le tester)



Je ne me suis même pas rendu compte de ma faute de frappe, c'est Un = 2750+2250*0.96^n et non ce que j'ai dit auparavant .

Du coup, il faut changer l'algorithme ou bien ?... Je parle du squelette de celui-ci hein .

takezo
Membre Relatif
Messages: 107
Enregistré le: 26 Fév 2015, 16:05

par takezo » 18 Mar 2015, 21:37

Non, non juste changer la valeur affectée à la variable S
soit S +2750+2250*pow(0.96,i)
J'ai corrigé ma formule.
Voilà un test :
***Algorithme lancé***
Entrer le nombre n :
Entrer n : 10
S = 50599.038
***Algorithme terminé***


Ce qui me montre que "AFFICHER message Entrer le nombre n" est inutile...
Je le vire et 2e test :
***Algorithme lancé***
Entrer n : 5
S = 28719.874
***Algorithme terminé***

Avatar de l’utilisateur
chombier
Membre Irrationnel
Messages: 1324
Enregistré le: 19 Juil 2012, 18:35

par chombier » 18 Mar 2015, 23:46

Mon pêché mignon, Scheme...

Code: Tout sélectionner
(define (u n) (+ 2750 (* 2250 (expt 0.96 n))))

(define (S n)
  (if ( (S 5)
28719.8743296

takezo
Membre Relatif
Messages: 107
Enregistré le: 26 Fév 2015, 16:05

par takezo » 19 Mar 2015, 09:40

@FreeNow
Petite explication de texte si tu n'es pas familier des procésé itératifs informatiques.
On te donne :

Donc




......................................................

On voit qu'à chaque tour


Informatiquement avec Algobox ou autre, on prend une somme S initialisée à 0, puis de 0 à n on fait n+1 boucles...
Pour i = 0 on a donc c'est
Pour i = 1 on calcule donc
Mais il serait très gourmand en mémoire de gérer n+1 variables .
Donc en conséquence on ne fait pas comme en Maths :
pour i =1, S contient on lui ajoute et cette somme on la range de nouveau dans S.
i variant de 0 à n, à chaque tour on a :

Voilà ce que ça donne en Python :
Code: Tout sélectionner
#!/usr/bin/python
# -*- coding: UTF-8 -*-

n =int(input("Entrer le nombre n : "))
S=0
for i in range(n+1):
    S+=2750+2250*0.96**i
print ("\nS"+str(n)+" =",S)

Exemple de sortie :
Entrer le nombre n : 10

S10 = 50599.037656458946

 

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 45 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite