intervalles |
Auteur |
Message |
Calipso
Invité
|
Posté le : Jeu 20 Oct 2011, 17:14
|
|
|
Bonjour, j'aimerais faire un programme sur les intervalles ! et c'est plus compliqué que ça en a l'air !
Avec les association de 2 ou 3 intervalles, les "Union" les "inter" etc...
genre d'abord choisir si on veut 2 ou 3 interval
Puis on entre les valeur si ya par exemple 2 interval:
5/4 < x <= -5/3
ou
1/2 < x <= 7/2
et comme c'est "ou", "union" ça dois donner l'interval: [-5/3 ; 5/4[
et si possible un ptit dessin avec les 4 nombres dans l'ordre et tout
mais le problème c'est que, je ne sais pas comment faire les condition avec les signe ">" ou "=>". surtout que ce n'est pas toujours du genre: a<x<b ; ya aussi x<a pour un interval avec + ou - infini...
|
|
|
|
Calipso
Invité
|
Posté le : Jeu 20 Oct 2011, 17:18
|
|
|
A oui, il faut aussi que le programme dis si c'est un ensemble vide et tout...
et si ya 3 intervalles, qu'il fasse d'abord les 2 premiers, puis l'autre
par exemple: a<x<b ou c<x<d et x>e
ça fasse dabord a<x<b ou c<x<d; puis le résultat inter x>e
voila je sais pas si c'est faisable !
|
|
|
|
Calipso
Invité
|
Posté le : Jeu 20 Oct 2011, 18:03
|
|
|
Et... encore moi, commetn on fais si on a des nombre, que le programme les mettre dans l'ordre croissant ??
|
|
|
|
sandro
Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Jeu 20 Oct 2011, 18:17
|
|
|
Tu peut les mettre dans une liste et utiliser lafonction TriCroi( (dans stats) avc pour argument : soit une liste à trier, soit plusieurs listes de même longueur dont les termes seront clasés par odre croisaant de la liste placée en première.
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
|
|
|
Calipso
Invité
|
Posté le : Jeu 20 Oct 2011, 18:27
|
|
|
Merci de répondre
mais je ne comprend pas trop !
Si j'ai par exemple 6 variable A,B,C,D,E,F :
je fais: L1={A,B,C,D,E,F}
et après ?
|
|
|
|
Google_AdSense
|
Publicité
|
|
|
|
|
sandro
Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Jeu 20 Oct 2011, 18:32
|
|
|
Je te conseille :
Code | Prompt A,B,C,D,E,F
{A,B,C,D,E,F -> L1
TriCroi(L1
L1(1 -> G
L1(2 -> H
L1(3 -> I
L1(4 -> J
L1(5 -> K
L1(6 -> L |
Tu aura donc G<H<I<J<K<L.
Si l'ordre importe, prévient moi en expliquant clairement comment tu compte untiliser les résultats une fois triés.
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
|
|
|
Calipso
Invité
|
Posté le : Jeu 20 Oct 2011, 18:37
|
|
|
Merci !!
Si j'ai 6 variables, dans le désordre je veux les mettres dans l'ordre croissant pour pouvoir les mettre ensuite sur un axe des Réel.
Je pense que tu as répondu a ma question merci
|
|
|
|
sandro
Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Jeu 20 Oct 2011, 18:54
|
|
|
Derien, si c'es ça qu'il te faut, ça va; si par contre il t'aurrait fallut garder les intervales, ça aurrait été plus compliqué.
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
|
|
|
Calipso
Invité
|
Posté le : Jeu 20 Oct 2011, 19:02
|
|
|
J'ai fais comme cela:
-je choisi la forme du premier interval
-je choisi si c'est une union ou intersection
-je choisi la forme du second interval
forme:
a < x < b
a <= x <= b
a <= x < b
a < x <= b
a < x
a <= x
a > x
a >= x
Puis j'entre la (ou les) valeur(s)
Puis je les met dasn l'ordre sur un axe, avec les beau interval
puis, après quelque condition je vois le résultat si c'est ensemble vide ou autre chose.
|
|
|
|
sandro
Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Jeu 20 Oct 2011, 19:16
|
|
|
Bonne chance.
Par contre un petit rappel : ne fait jamais If 9<X<20 sur la TI, elle le comprendrait comme : si 9<X : If 1<20 et sinon 0<20
Il te faut doncécrire If 9<X and X<20
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
|
|
|
Calipso
Invité
|
Posté le : Jeu 20 Oct 2011, 19:20
|
|
|
Dac, merci !!
je montrerais le programme quand je finirais
|
|
|
|
Calipso
Invité
|
Posté le : Jeu 20 Oct 2011, 20:15
|
|
|
Une ptit chose qui me pose problème ^^
Si dans les valeur je met: 5/3 ; ou racine de 2
je voudrai que elle reste comme elle sont, en fraction ou en racine sans être calculé... ou, au pire je voudrai qu'elle soit arrondi a un seul chiffre après la virgule
|
|
|
|
sandro
Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Jeu 20 Oct 2011, 20:20
|
|
|
Pour garder tel quel, il faut que tu remplace Prompt A par
Code | Imput"A",Chaîne1 //Chaîne1 se trouve dans Var/7
expr(Chaîne1 -> A //expr( n'est que dans le catalogue |
Ensuite, pour afficher A exactement comme rentré, tu remplace A par Chaîne 1
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
|
|
|
Calipso
Invité
|
Posté le : Jeu 20 Oct 2011, 20:33
|
|
|
C'est cool ça
si par exemple dans la chaine on ne met pas un nombre mais des lettre le expr ne marche pas ? ^^ je ne veux pas le faire mais c'est juste pour savoir
merci ! et bien on a tout prévu en programmation
|
|
|
|
Calipso
Invité
|
Posté le : Jeu 20 Oct 2011, 20:38
|
|
|
Aaaah ça me pose un autre problème !
par exemple:
Code |
Imput"A",Chaîne1
expr(Chaîne1 -> A
Imput"B",Chaîne2
expr(Chaîne2 -> B
{A,B-> L1
SorA(L1
L1(1 -> C // ma chaine 1 et ma chaine 2 elle sont ou ???
L1(2 -> D // je ne peut plus savoir ??
|
|
|
|
|
sandro
Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Jeu 20 Oct 2011, 20:41
|
|
|
Dans tous les cas tu poura afficher le contenue en tant que texte, par contre si tu met expr(Chaîne1 et que le contenu de Chaîne 1 ne peut pas être calculé, la Ti t'affiche une erreure.
Par example:
2+6(2) est valable
2+()2 est invalide
2+3A+C est valide
7*L1(1 est valide (L1 est une chaîne
7*L1 est valide si au lieux d'enregistrer le résulat dans une variable nombre, tu l'enregistre dans une liste
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
|
|
|
Calipso
Invité
|
Posté le : Jeu 20 Oct 2011, 20:45
|
|
|
Ok ! et pour mon dernier problème ? ^^
je peux mettre dans l'ordre des nombres mais mettre dans l'ordre des chaines calculable je sais pas...
|
|
|
|
sandro
Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Jeu 20 Oct 2011, 20:52
|
|
|
Pas directement : tu peut mettre dans l'ordre les nombres et ensuite tester chaîne par chaîne si la valeur corespond : si oi : afficher la chaîne, sinon, tenter la chaîne suivante.
Ou alors, chercher dans la liste où ce situe le nombre corespondant à telle chaîne et afficher en conséquence.
sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
|
|
|
Calipso
Invité
|
Posté le : Jeu 20 Oct 2011, 20:56
|
|
|
Code |
Imput"A",Chaîne1
expr(Chaîne1 -> A
Imput"B",Chaîne2
expr(Chaîne2 -> B
{A,B-> L1
SorA(L1
L1(1 -> str3
expr(str3 -> C
L1(2 -> str4
expr(str4 -> C
if str1 = str3 : str3 -> str1
|
comme ça ?
|
|
|
|
sandro
Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Jeu 20 Oct 2011, 21:06
|
|
|
Non, ça ne marchear pas, on ne peut pas mettre un nombre dans une chaîne directement.
Il te faudrait faire :
Code | Imput"A",Chaîne1
expr(Chaîne1 -> A
Imput"B",Chaîne2
expr(Chaîne2 -> B
Imput"C",Chaîne3
expr(Chaîne3 -> B
Imput"D",Chaîne4
expr(Chaîne4 -> B
{A,B,C,D-> L1
SorA(L1
{X1,X2,X3,X4 -> L2 //abscisse du premier, puis second, puis 3ème puis 4ème texte
{Y1,Y2,Y3,Y4 -> L3 //ordonnée du premier, puis second, puis 3ème puis 4ème texte
For(X,1,dim(L1
L1(X -> Z
If Z=A
Output(L3(X),L2(X),Chaîne1
If Z=B
Output(L3(X),L2(X),Chaîne2
If Z=C
Output(L3(X),L2(X),Chaîne3
If Z=D
Output(L3(X),L2(X),Chaîne4
End |
Sandro
PS : si tu est sur écran graphique, remplace Output par Texte en adaptant les valeures des coordonnées.
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
|
|
|