Poster un nouveau sujet Poster une réponse
Nombre Premier.
Auteur Message
Gurandill
Invité
Posté le : Mer 11 Sep 2013, 17:18   Citer 

Salut !
Je suis un programmeur novice sur TI ( j'ai comme tout le monde codé un + ou - 1 ou 2 joueurs et essayé de codé un Snake avant d'abandonné ( Mon serpent n'avancé pas tout seul et ne grossissait pas....)

Enfin Bref, de retour au lycée mon prof de math nous demande quel est le premier nombre non-premier solution de la fonction suivante :
f(crazy.gif = X² - X + 41
Bon j'ai déj)à trouvé le résultat c'est 41 ( je crois )
Mais j'ai voulu codé un programme rapidement pour trouver ce résultat et il ne fonctionne pas..
Il marque indéfiniment : .. Ne Fonctionne Pas.

Pourtant je ne vois pas trop ce qui ne marche pas !

Voici le code :

Code

1-> X
Lbl 1
X² - X + 41 -> A
A-2 -> B
Repeat B(inégal mais je sais pas comment le faire sur clavier )1
If A/B = partEnt(A/B)
Goto W
B-2 -> B
End
Disp X,"Ne marche pas"
X+1 -> X
Goto 1
Lbl W
Disp X, "FONCTIONNE"



Je ne vois pas d'où vient le probleme. .
Merci bien a celui qui la trouvera ou me donnera des conseils pour améliorer mon code happy.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 : Mer 11 Sep 2013, 20:12   Citer 

Bonjour,

Le différent de se note généralement != (comme en C/C++ etc, car on ne peut pas le faire sur tout 82)

Ton code manque de rigueur: Evites d'utiliser les Goto/Lbl, surtout dans des boucles, cf tuto de linka: http://tout82.free.fr/forum/sujet.php?sujet=2757

Tu dis vouloir un nombre le plus petit possible et solution de la fonction qui soit non-premier... 41 est un nombre premier...

La fonction atteint son minimum en X = 0.5, f(0.5) = 40.75 et ce n'est pas un nombre premier... Alors soit j'ai mal compris, soit tu as mal formulé winkle.gif

Si tu veux un tuto sur le ti basic, va voir ici: http://www.siteduzero.com/informatique/tutoriels/apprenez-a-programmer-en-ti-basic

----------------------
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 : Mer 11 Sep 2013, 22:26   Citer 

Je ne comprend ni l'énoncé ni ce que tu fais ni ce que tu veux faire.

Citer : "Gurandill"
demande quel est le premier nombre non-premier solution de la fonction suivante :
f(X) = X² - X + 41


Parler de solution d'une fonction ne signifie rien. On cherche la solution X d'une équation Y=f(X). Et si Y=0 alors on dit qu'on cherche un zéro (aussi appelé racine) de la fonction.

A moins que tu veuilles trouver la plus petite ordonnée de cette fonction qui soit un nombre premier, ou encore une abscisse nombre premier...

Puisque cette fonction est strictement positive, il n'existe pas de zéro.
Et nous n'avons pas de valeur d'ordonnée Y pour résoudre.
Le problème est autre ou incomplet.

La condition B=/=1 est stupide car vraie dès le début si A est différent de 5 (A=/=5). Et la boucle est alors quittée juste après la première execution.
Je remplace par B=1 pour être logique. Ainsi on donne le verdict "marche pas" lorsque B vaut 1.

Je pense qu'il faut essayer d'utiliser soit uniquement des boucles, soit uniquement des goto. Le mélange est souvent indésirable.

Voici ce que je modifie en utilisant uniquement des boucles et alternatives.

Code
1->X
Repeat Z
X^2-X+41->A
A-2->B
Repeat B=1 or not(Z // j'ai déjà changé B=/=1 en B=1
partDéc(A/B->Z // Représentera l'information contraire de "A/B = partEnt(A/B)".
If Z
B-2->B
End
If Z
Then
Disp X,"Ne marche pas"
X+1 -> X
End
End
Disp X,"FONCTIONNE

Si Z est nul, alors A est multiple de B. Dans ce cas le programme contourne les alternatives qui ne sont pas validées et les boucles sont quittées, jusqu'à la fin.
Si Z est non nul, l'algorithme est executé normalement.

Mais puisque je ne comprend pas le sujet, je ne peux rien faire d'autre.

EDIT Minuit ========

Il semble d'après le programme (rectifié en B=1) que tu cherches la plus petite abscisse entière positive dont l'image par la fonction n'est pas un nombre premier.
F(41)=1681=41^2
Au tableur je vois que les premières valeurs sont des nombres premiers... l'exercice semble alors logique.

Le critère de divisibilité peut être écourté dans le temps en arrêtant à B=entier(racinecarree(A))
Commencer avec B=A-2 nécessite que A soit suppérieur à 3 inclus. Heureusement c'est le cas.

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