Poster un nouveau sujet Poster une réponse
Algorithme bac pondichery 2013
Auteur Message
Lap'titeetoile
Invité
Posté le : Jeu 13 Jui 2013, 10:49   Citer 

Bonjour, je suis nulle en algorithme ! cry.gif J'ai remarqué qu'il y avait de grande chance pour qu'au bac 2013 en math ils mettent un algorithme a faire. Je ne comprend pas celui de Pondichery :
ENTREE
Saisir un nombre S superieur a 3000
TRAITEMENT
Affecter a n la valeur 0
Affecter a U la valeur 3000
Tant que U ≤ S
n prend la valeur n+1
U prend la valeur U*1.025
Fin tant que
SORTIE
Afficher le nombre 2000+n

Il est ecrit en bas de cet algorithme, "pour la valeur S=3300 saisie"

Quelqu'un peut-il m'aider ? godgrace.gif

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Jeu 13 Jui 2013, 12:39   Citer 

Bonjour!

(EDIT: Corrigé d'après les remarques de Linka)

Il faut que tu donne juste la sortie c'est ça?
En gros, il y a plusieurs manières de faire:
_Tu le programme sur ta calto (mais il faut s'y connaitre un peu winkle.gif )
_Tu essayes de deviner son fonctionnement, puis tu le résous comme un exercice classique.

_Pour la programmation sur calto:
Ca donne:

Code
Prompt S //Permet de saisir une valeur pour S, mais il n'y a pas de test pour savoir s'il est > à 3000 ou pas, c'est à toi de faire attention en rentrant la valeur
0->N
3000->U //On stocke les valeurs demandées
While U<=S //Correspond à la boucle tant que
N+1->N //On incrémente (augmente de 1) N, comme demandé
U*1.025->U //On fait le calcul demandé
End //Fin de boucle
Disp 2000+N //Affichage du résultat


Tu le lances en saisissant la valeur 3300 pour S, et tu regardes le résultat

_Pour deviner le fonctionnement du prgm.

Observe bien ce qu'il fait:
Il demande une valeur, S.
Puis, il met N à 0, et U à 3000.
Ensuite, tant que U<=S, il fait les calculs suivant:
N augmente de 1
U est multiplié par 1.025

Si on réfléchi un peu, on constate (les variables choisies nous mettent d'ailleurs sur la voie), qu'on a affaire à une suite géométrique:
u(n)=1.025u(n-1)
avec pour premier terme u(0)=3000

En effet, à chaque tour de boucle, on multiplie le terme précédent de la suite par la raison (1.025), et on augmente le compteur, pour savoir à quel terme on est.

Pour trouver le résultat, il faut donc résoudre:
u(n)>3300 (la valeur demandée pour S)
Soit 3300<u(0)*q^n
3300<3000*1.025^n
Avec n le plus petit entier possible
Je ne sais pas trop si on peut faire ça par calcul (sûrement, mais je ne l'ai pas encore vu)
Sinon, il te suffit de rentrer la suite sur la calto (si tu ne sais pas le faire dis le je t'expliquerai), et de regarder pour quelle valeur de n u(n)>3300.

Tu ajoute 2000 au résultat (car l'algo affiche n+2000), et tu as la sortie winkle.gif

Voilà bigmouth.gif

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 13 Jui 2013, 16:09   Citer 

&#8804; = inférieur ou égal. Donc faisons attention au test d'infériorité même si nous écrivons "<" au lieu de "<=".

m@thieu41 : tu confonds la somme des termes d'une suite géométrique avec la suite géométrique.
u(n+1)=u(n)*q donne u(n)=u(0)*q^n

Si tu veux résoudre l'équation (condition de sortie) : 3000*(1.025)^n = u(n) > 3300
alors il faut écrire n > log(3300/3000)/log(1.025)
Puis il faut prendre l'entier strictement suppérieur à la solution réelle maximale pour connaitre le résultat de l'algorithme. (résultat=2000+solution_entière)

EDIT : j'ai corrigé en partant de la condition de sortie de la boucle, comme m@thieu41, cela cause un ">" au lieu de "<=")

On trouve la solution avec la propriété log(a^n)=n*log(a) et la conservation du sens des inéquations par application d'une fonction croissante, ici c'est log.
Et puisque les logarithmes de toutes bases a ont ces propriétés, on peut retenir : c=log_a(a^c)=log_b(a^c)/log_b(a) pour tous a et b réels strictement positifs.
EDIT : Cas particulier : log(X)=ln(X)/ln(10) puisque log() à conventionnellement la base 10.


Le reste des infos de m@thieu41 semble très bien.
Nous serons toujours là si d'autres questions sont posées.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Jeu 13 Jui 2013, 16:54   Citer 

Oups, autant pour moi, j'ai corrigé (les suites géométriques/arithmétiques on a fait ça rapidement en fin d'année, j'ai pas trop retenu moodforlove.gif )
Ah, je ne savais pas qu'on pouvait utiliser le logarithme pour ce genre d'opérations, pour moi c'est un truc obscur qui sert à connaitre le nombre de chiffre base 10 d'un nombre laugh.gif

&#8804; = inférieur ou égal : Je te crois, mais comment tu l'as trouvé? J'ai fait un peu au pif en fonction de l'énoncé en fait (1 chance sur 2 j'ai perdu winkle.gif )

Edit: comment on saisit log_A(B) sur la calto? (si c'est possible bigmouth.gif )

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 13 Jui 2013, 17:03   Citer 

http://www.fileformat.info/info/unicode/char/2264/index.htm trouvé par google en tapant l'html "&#8804".

Seulement à partir des systèmes MathPrint. (2.53MP des TI 84plus).
logBASE(X,Base)
On doit utiliser la relation générale.
J'en profite pour montrer le cas particulier entre log décimal et ln népérien, c'est plus facile à retenir :
log(X)=ln(X)/ln(10)
ln(X)=log(X)/log(e)

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Jeu 13 Jui 2013, 17:08   Citer 

Ha ok, autant pour moi winkle.gif
Par contre on cherche u(n)>3300, pas <= (puisqu'on tourne tant que c'est <=)

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 13 Jui 2013, 17:14   Citer 

Je suis parti de la condition de poursuite et ai adapté la réponse en désignant l'entier suppérieur.
Ta proposition est effectivement bien plus évidente.
u(final) > 3300
final > solutionréelle

Mais... tu as bien corrigé ton message. Propre.
Un peu flou si on relit historiquement le sujet.
(j'avais pas vu tout de suite ton changement)

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink