Page 1 of 2

[Prgm] Equations/Systèmes

PostPosted: 15 Jun 2015, 16:14
by GalacticPirate
Bonjour !
Je suis sur la communauté du site depuis déjà 3 semaines et j'ai déjà partagé mon expérience en postant un programme de mon niveau scolaire (2nde GT) sur les archives. Ce programme a plusieurs fonctions : il permet de :
-Résoudre des systèmes à deux équations et deux inconnues
-Donner l'équation réduite de la droite passant par deux points
-Convertir une équation réduite en équation cartésienne et vice-versa.

Vous pouvez télécharger mon programme, qui est écrit intégralement en TI-Basic z80 et est très simple à comprendre. Il suffit de le télécharger dans les archives : http://ti-pla.net/a234632

:warning: Le programme n'est malheureusement pas disponible sur toutes les calculatrices. La compatibilité z80 n'est valable qu'avec l'OS 2.53 MP ou 2.55 MP, ainsi qu'avec le 4.0 des 84+CSE et le 5.0 des 82A :mj: . Par contre, la compatibilité avec les eZ80 est assurée ! :#top#:

Voici dans un tableau toutes les calculettes compatibles :



Calculatrices z80 (2.53 MP -> 5.0.x)Calculatrices eZ80
-TI-83 Plus.fr*
-TI-84 Pocket.fr*
-TI-84 Plus*
-TI-84 Plus Silver Edition*
-TI-84 Plus C Silver Edition
-TI-83 Plus.fr USB
-TI-82 Advanced
-TI-84 Plus CE
-TI-84 Plus CE-T
-TI-83 Premium CE

* L'OS compatible n'est pas natif sur cette calculatrice, vérifiez avant d'installer

Bref, j'aimerais avoir un feedback. Le zip est composé de 5 programmes :
-EQDROITE.8xp qui donne l'équation d'une droite passant par 2 pts
-EQCARTES.8xp qui fait la conversion réduite -> cartésienne
-EQREDUIT.8xp qui fait la conversion cartésienne -> réduite
-SYSTEMES.8xp qui résout les systèmes (Sans blague :p )
-EQSYST.8xp qui est le programme général qui contient le menu qui renvoie au reste des progs ; c'est celui que vous devez ouvrir

Le code source est à votre disposition. Faites ce que vous voulez avec, et renvoyez moi votre impression. En théorie, le programme est conçu exprès pour les élèves de seconde.
Ce programme m'a permis d'avoir 20 à mon DS, si, si, sérieusement ! :troll:

Je ne sais pas si je réaliserai une version compatible TI-82 à 83+, puisque l'intérêt est limité sans les réponses en écriture fractionnaire.

PS : Tordez-le ds tous les sens, vous n'aurez pas un seul "DIV PAR ZERO". Ce programme est paré à toute éventualité...

A+,
Zack Voyager

Re: [Prgm] Equations/Systèmes

PostPosted: 15 Jun 2015, 16:24
by Adriweb
Compatibilité TI-82 Advanced aussi, du coup, non ? ;)

Je n'ai pas (encore?) testé, mais ça a l'air d'être du bon boulot en tout cas :)

Re: [Prgm] Equations/Systèmes

PostPosted: 15 Jun 2015, 16:25
by GalacticPirate
D'ac je vais éditer !
EDIT : C'est fait !

Re: [Prgm] Equations/Systèmes

PostPosted: 15 Jun 2015, 17:42
by PititZero
Tu t'es gavé ! Je vais le télécharger et je te dirai se qui faut changer ( ou pas ) ;)

Re: [Prgm] Equations/Systèmes

PostPosted: 15 Jun 2015, 20:19
by Mingerton
Des astuces de programmation Basic en vrac :
- Fermer une parenthèse, un guillemet, une accolade, un croche, en fin de ligne ou avant STO est inutile
- Fermer des conditions en fin de programme est inutile
- On peut fusionner les Disp. Par exemple : Disp A:Disp "B" équivaut à Disp A,"B"
- Précalculer un résultat qui ne sert qu'une fois est inutile. Tu peux -utiliser directement son expression
- Les labels peuvent avoir un seul caractère
- Il faut utiliser les booléens. Je te laisse chercher je vais pas faire un cours sur les booléens tout de suite (tiens je devrais sortir cet article bientôt :p)
- La multiplication implicite fonctionne
- Pour les systèmes, tu peux utiliser la commande rref() qui est très utile pour les résolutions, et pour tous les nombres d'inconnues qu'on peux te demander.

Concernant le portage sur 82(Stats,.fr), il est très simple : enlever les minuscules et les accents qui ne sont pas gérés (sauf quelques uns).

Re: [Prgm] Equations/Systèmes

PostPosted: 16 Jun 2015, 07:45
by GalacticPirate
@Mingerton:
- Fermer une parenthèse, un guillemet, une accolade, un croche, en fin de ligne ou avant STO est inutile
- Fermer des conditions en fin de programme est inutile


La sécurité avant tout, si c'est intuitif, je suis sûr qu'il n'y aura pas d'erreur, surtout avec 4 ou 5 If emboîtés !

- On peut fusionner les Disp. Par exemple : Disp A:Disp "B" équivaut à Disp A,"B"


On peut mettre une infinité de virgules ? Je n'en suis pas si sûr...

- Précalculer un résultat qui ne sert qu'une fois est inutile. Tu peux -utiliser directement son expression
- Les labels peuvent avoir un seul caractère
- La multiplication implicite fonctionne


Ce qui est inutile, c'est que tu me le dises ( :troll: ). Non, sérieusement, je le savais déjà, il y a une bonne raison pour que je l'aie fait, non ? :p

- Il faut utiliser les booléens. Je te laisse chercher je vais pas faire un cours sur les booléens tout de suite (tiens je devrais sortir cet article bientôt :p)
- Pour les systèmes, tu peux utiliser la commande rref() qui est très utile pour les résolutions, et pour tous les nombres d'inconnues qu'on peux te demander.


Ouais, Hum... Je me suis déjà cassé la tête à apprendre les "Menu", "Lbl" et autres "Goto". Je n'ai que des connaissances de 2de en algorithmique, alors les booléens ou ton "rref("... :quest: :snooze:

Concernant le portage sur 82(Stats,.fr), il est très simple : enlever les minuscules et les accents qui ne sont pas gérés (sauf quelques uns).


Comme je l'ai déjà dit, et je le répète, le portage sur une calculatrice sans MathPrint est pour moi dénuée d'intérêt. Tu vois un élève de 2de répondre à un DS "x=2.639463946394..." ?? :mj: En plus, sur certaines de ces calculatrices (les plus anciennes), il faudrait supprimer les menus préprogrammés. Tu imagines la galère ?

Je vais être moins critique, et te remercier tout de même d'avoir fait l'effort de répondre à un noob comme moi !

Zack Voyager

Re: [Prgm] Equations/Systèmes

PostPosted: 16 Jun 2015, 10:19
by Wistaro
le rref() donne la forme réduite de Jordan-Gauss d'une matrice, ce qui permet de trouver les solutions réelles d'un système d'équations.

En gros pour résoudre un système de 2 équations à 2 inconnues, tu crées une matrice de 2 par 3, puis dans la première colonne tu met les x, dans la seconde les y, et dans la dernière le résultat.
Par exemple:

2x + 5y = 12
x-8y = 2

Donne une matrice de la forme:
Code: Select all
2   5   12
1   -8   2

Tu stockes ça dans une matrice ([A] par exemple), puis tu fais:
Code: Select all
rref([A])  -> [B]


[B] sera de la forme
Code: Select all
1   0   bidule
0   1   truck

ce qui signifie que x = bidule et y = truck :)

Re: [Prgm] Equations/Systèmes

PostPosted: 16 Jun 2015, 10:22
by GalacticPirate
Après comment je fais pour stocker bidule dans x et truc dans y ?
(On dit truc et pas truck, sinon ça fait un monster-truck en anglais...)

Sinon, voici le code source de SYSTEMES.8xp pour ceux qui n'ont pas la bonne calto :

Code: Select all
:Disp "Entrez un syst."
:Disp "(1) ax+by=c"
:Input "a=",A
:Input "b=",B
:Input "c=",C
:Disp "(2) dx+ey=f"
:Input "d=",D
:Input "e=",E
:Input "f=",F
:If AE=BD et AF=CD
:Then
:Disp "Inf. de solut°"
:Else
:If AE=BD et AF≠CD
:Then
:Disp "Aucune solut°"
:Else
:((BF-CE)/(BD-AE))→X                   //Remplacer la barre de division par la barre de fraction accessible avec [alpha][f(x)][1]
:((CD-AF)/(BD-AE))→Y                   //Idem
:Disp "x=",X
:Disp "y=",Y
:End
:End

Re: [Prgm] Equations/Systèmes

PostPosted: 16 Jun 2015, 10:44
by Mingerton
Bon... Tu veux quoter le message, on va quoter le message :P. Parce que j'ai un peu pitié pour ceux sur mobile :
Show/Hide spoilerAfficher/Masquer le spoiler
La sécurité avant tout, si c'est intuitif, je suis sûr qu'il n'y aura pas d'erreur, surtout avec 4 ou 5 If emboîtés !

Ca va pas causer d'erreur, ça va t'économiser des octets.
On peut mettre une infinité de virgules ? Je n'en suis pas si sûr...

Essaie, tu verras que c'est le cas
Ce qui est inutile, c'est que tu me le dises ( :troll: ). Non, sérieusement, je le savais déjà, il y a une bonne raison pour que je l'aie fait, non ? :p

Ah ca je sais pas, j'ai pas regardé tous les branchements. C'est toujours bon à être dit ^^
Ouais, Hum... Je me suis déjà cassé la tête à apprendre les "Menu", "Lbl" et autres "Goto". Je n'ai que des connaissances de 2de en algorithmique, alors les booléens ou ton "rref("... :quest: :snooze:

On fait pas plus simple que les booléens franchement. Regarde sur Wikipedia ou TI-Basic Dev. Merci à Wistaro pour l'explication de rref() ;). Sache que tu pourras résoudre des systèmes à 10 inconnues avec cette commande, c'est quand même mieux qu'un système à deux inconnues (en plus tu en verras des plus gros par la suite).
Comme je l'ai déjà dit, et je le répète, le portage sur une calculatrice sans MathPrint est pour moi dénuée d'intérêt. Tu vois un élève de 2de répondre à un DS "x=2.639463946394..." ?? :mj: En plus, sur certaines de ces calculatrices (les plus anciennes), il faudrait supprimer les menus préprogrammés. Tu imagines la galère ?

Et la commande Frac>, t'en fais quoi ? Elle affiche les résultats sous forme fractionnaire. D'ailleurs, tu peux essayer, En mode Classique-Dec, ta 84+SE t'affichera des résultats à virgule.


Ce sont des conseils, si tu décides de ne rien en faire du tout c'est ton choix. Sache juste que c'est ce genre de détails qui fait passer qu'un code moyen à un code de qualité — sans porter de jugement de qualité sur ton code.

Re: [Prgm] Equations/Systèmes

PostPosted: 16 Jun 2015, 10:52
by GalacticPirate
Je ne cherche pas à avoir un code de qualité mais un programme de qualité. En plus, ce prog est fait pour les élèves de seconde, qu'est-ce qu'ils ont à faire avec un système à 5,7 ou 3600 inconnues ? :troll:
En plus, mon code est déjà court. J'ai utilisé la résolution par combinaison pour parvenir à ces formules, je ne vois pas ce qu'une notion largement au-dessus (prépa je suppose) de mon niveau scolaire peut m'apporter. Pour le rref(, je ne sais même pas ce qu'est une matrice, ni comment les utiliser, et je n'ai pas envie de le savoir. Je répète que je suis en 2de. Je parlais surtout de l'aspect, de l'esthétique, etc.