Forum

Catégorie : Support
Forum : TI-82 STATS.fr
Vues : 1275
Réponses : 11
Type : discussion
Etat : réponses autorisées

Utiliser 2X Goto

DragonLaBelette le 03/12/2014 à 17:00
Bonjour ,
Pour être concret :
Code

Effecr
lbl0
Menu("VOUS VOULEZ...:","P(B)",1,"PA(B)",2,"INDEPEPANDANCE",3)
lbl1
blablabla
Stop
lbl2
blablablabla
Stop
lbl3
Goto1
Goto2



Je m'explique :
J'aimerais utiliser les résultats de P(B) et de PA(B) (se lisant P(B) sachant A)
pour vérifier l'égalité de ces nombres pour conclure sur l'indépendance ou pas .
Peut on compiler les résultats que j'ai eu à lbl1 et à lbl2
est ce possible avec 2 Goto ?

car on pourrais bien mettre une condition style Décision qui interconnecte lbl1 avec lbl3 et lbl2 avec lbl3 mais ça serais un peu compliqué je trouve (dès lors on aura 3 Goto.)


Merci d'avance .
linkakro le 04/12/2014 à 00:05
Tu sembles confondre l’événement B et l'événement BinterA. Cela a une importance pour définir l'indépendance. Je crois que tout le monde a confondu un jour.

Citation
car on pourrais bien mettre une condition style Décision qui interconnecte lbl1 avec lbl3 et lbl2 avec lbl3 mais ça serais un peu compliqué je trouve (dès lors on aura 3 Goto.)
Je ne vois pas bien ce que tu veux dire.
Si tu tiens à ne pas répéter des saisies ou calcul dans plusieurs cas, alors je pense que tu devrais affecter une variable selon le menu et utiliser des conditions sur cette variable.

Code
1
Menu("","P(A INTER B)",1,"PA(B)",2,"INDEPENDANCE",3
Lbl 1
Rép+1
Lbl 2
Rép+1
Lbl 3
Rép->K
  // ce menu est une méthode pour compacter l'affectation de K sans goto

If K-2  // K différent 2 // donc choix 1 et 3
Then
Input "P(A)=",A
Input "PA(B)=",C
AC->B
Disp "P(B INTER A)=",B
End
If K-1  // K différent 1 // donc choix 2 et 3
Then
Input "P(A)=",A
Input "P(B INTER A)=",B
B/A->C
Disp "PA(B)=",C
End
If K=3  // choix 3
Then
Input "P(B)=",D
If D=C        // If AD=B
Disp "INDEPENDANT
End
DragonLaBelette le 04/12/2014 à 10:17
L'indépendance est vérifié quand PA(B) = P(A INTER B)/P(A)=P(B)
je refais la démonstration de la propriété P(A INTER B) = P(A) * P(B) pour pas avoir de confusion
Si A et B sont indépendant

PA(B)= P(A INTER B)/P(A)
<=> PA(B) = ( P(A) * P(B) )/ P(A)
<=> PA(B) = P(B)


Ainsi on peut soit prouver l'indépendance en montrant que
P(A INTER B) = P(B) * P(A) (c'est la propriété de l'indépendance)
OU
PA(B) = P(B)

C'est compliqué en effet car il y a
Incompatible => Dépendance Et Incompatible => Pas indépendance et Incompatible => P(A INTER B)=0

exemple concret :
événement A : "Je suis au lycée"
événement B : "Je suis chez moi"
Sachant que le lycée n'est pas chez moi .... laugh.gif
P(A INTER B) soit A ET B ne peuvent donc pas avoir lieu en même temps ainsi
P(A INTER B)=0


Compatible => Pas Incompatible (je pense puisque P(A INTER B)= L (valeur non nul)

Ex :
événement A :"La personne convoqué est intelligent"
événement B :"La personne convoqué sais jouer du piano"
Ainsi une personne PEUT être intelligente ET sais jouer du piano

La compatibilité est je pense un terme global qui recouvre aussi la notion d'indépendance ; mais l'indépendance est spécifique par rapport à la compatibilité

Indépendance => Pas incompatible puisque P(A INTER B) =/0
Dépendance entraîne les proba conditionnelle

exemple :
événement A "La personne est intelligente"
événement B "La personne sais jouer du piano"

L'indépendance est important car on remarque que par exemple dans un échantillon
d'élève de classe prépa de bordeaux par exemple il n'y a pas de liaison ( c'est pas parce qu'il y a des élèves en classe prépa de bordeaux qu'il y en a 30 sur 100 qui font du piano si on admet que ces 100 élèves sont intelligents ( ce n'est pas dépendant )


Je fais un rappel puisque je suis sur ce chapitre et j'essaye d'y voire quelque chose

Souvent ce que dise les prof portent à confusion car il faut être extremement rigoureux ( et même eux s'ils le sont , nous le sommes pas tout le temps eyeonly.gif )

Je t'en voudrais pas si tu me semble me contredire sur une chose vraie car peut être que ça fait un peu loin ... ( oui moi aussi ça me tarde de l'oublier ^^ )



ATTENTION La Dépendance n'entraîne pas forcement que c'est INDEPENDANT OU SOIT INCOMPATIBLE

C'est le point ou on ne comprend souvent rien et c'est à cause de ça aussi que ça créer un gros brouillon de notre tête crazy.gif


PS :

Je ne comprends pas ta méthode puisqu'elle utilise le précédent résultat , ne vaudrait pas être plus malin et mettre dans une liste ? (on n'a même pas besoins utiliser Goto et Rep on a juste à bien les placer )

Juste une question qui est toujours brouillon :

dim sert à faire exister de cases d'une liste sans mettre de valeur?
Si c'est le cas comment en s'en sert ?
si on efface constamment les listes et qu'on attribut une valeur à L1(C) (C+1->C) e programme affichera " Dimension Invalide" ?
linkakro le 04/12/2014 à 12:10
Dis moi si quelque chose ne convient pas dans ma proposition de programme. Je n'ai pas compris ce que tu favoriserais à ma méthode.

Je n'ai pas de revendication sur la théorie.
Quoique la grammaire de ta phrase importante est ambiguë. ("indépendant ou soit incompatible"). la dépendance et l'incompatibilité sont des concepts différents. On est d'accord pour dire qu'il ne faut pas les confondre.

Tu devrais lire le manuel ou un tutoriel tel que celui de Mdr1 sur OpenClassrooms.
La fonction dim permet de lire le nombre de cellules ou de le modifier.
Affecter la dimension supprime des cellules ou ajoute des cellules nulles.
La 82plus supporte les dimensions nulles contrairement aux autres.
Une liste qui n'existe pas est crée au moment du dimensionnement
Code
{1,2}->L1  // l'affectation crée la liste si elle n'existait pas.
Pause dim(L1  // 2
4->dim(L1
Pause L1  // {1,2,0,0
EffListe L1  // la liste existe mais est vide
Pause L1  // DIM INVALID
Pause dim(L1)  // sur une TI82plus, affiche zéro, sinon DIM INVALID
EffVar L1  // supprime la liste // et perturbe l'éditeur de liste menu stats
Pause L1  // INDEFINI
Pause dim(L1) // INDEFINI
2->dim(L1  // crée la liste et la dimensionne
Pause L1  // {0,0}
L'affectation du prochain terme admet le racourcis de redimensionner la liste automatiquement.
Code
{1,2}->L1
3->L1(3
Pause L1  // {1,2,3}  // la liste a été allongée d'UNE cellule
5->L1(5   // DIM INVALID car cela dépasse 1 cellule
DragonLaBelette le 04/12/2014 à 13:02
Quand la probabilité est dépendant ; ainsi elle peut être soit incompatible , soit indépendant ou soi compatible ( puisque si elle n'est pas incompatible et pas indépendant elle est forcement compatible je pense ) .
Perso je voyais plus simple ( si c'est plus simple ....)

Code

EfftoutesListes  // je suis un maniaque ^^
lbl0
Menu(blablabla)
lbl 1
calcule de PA(B) -> Y
Imput"POUR LBL3 ? ",D
IF D=OUI
2->dim(L1
Y->L1(1)
Goto2
Else
Stop
lbl2
calcule de P(B) -> Z
Imput"POUR LBL3 ? ",D
IF D=OUI
2->dim(L1
Z->L1(2
Goto3
Else
Stop
lbl3
Imput"Do you make1-2 ?",D
If D=NON
Goto1
Else
If L(1)=L(2)
"INDEPENDANT"
Else
"DEPENDANT"
Else
End
End
Stop



La faiblesse du programme ; c'est les if et les ends à la fin quand j'aurais finit je vais voire quoi ça m'affiche car là abstraitement je ne sais pas trop comment va se passer le programme .

Ps':
J'ai une question je trouve ça dommage de dire dans lbl 1 qu'on veut justement souhaite les résultats de lbl 1 et de lbl 2 .

Comment utiliser le fait de répondre oui à lbl 1 et d'avoir les conséquence sur lbl 2 (c'est à dire que Z->L1(2) ) sans utiliser plus ?
Ou le mieux ( the best of the best ) c'est de mettre Y et Z dans L1 sans les conditions de Décision (D=OUI) ?(et même en sélectionnant lbl 3 on a déjà les 2 autres décisions)

Est ce qu'on à besoin de mettre dans une liste ou la valeur stocké dans Z , reste dans Z après le calcule ? ( on pourrait aussi se passer de la liste )

Ps'': Tu as au moins 2 X moins de codes que moi mais je pense c'est que les décisions me bouffe les majorité des lignes pareil pour cette maudite liste qui me rajoute au moins 6 lignes
linkakro le 04/12/2014 à 23:26
Je suis sceptique. Je pense que c'est une usine à gaz inutilement compliquée.

Citation
Ps':
J'ai une question je trouve ça dommage de dire dans lbl 1 qu'on veut justement souhaite les résultats de lbl 1 et de lbl 2 .

Comment utiliser le fait de répondre oui à lbl 1 et d'avoir les conséquence sur lbl 2 (c'est à dire que Z->L1(2) ) sans utiliser plus ?
Ou le mieux ( the best of the best ) c'est de mettre Y et Z dans L1 sans les conditions de Décision (D=OUI) ?(et même en sélectionnant lbl 3 on a déjà les 2 autres décisions)

Est ce qu'on à besoin de mettre dans une liste ou la valeur stocké dans Z , reste dans Z après le calcule ? ( on pourrait aussi se passer de la liste )
Cela m'embrouille et je n'ai pas vraiment envie de chercher.

Je pense que le meilleur moyen d'exécuter des choses communes et d'autres pas communes, est d'affecter des variables de choix et les utiliser dans la suite.

Je préfère un menu qui pose une question dans son titre et un choix oui ou non que les conditions de produit de lettres supposées représenter des mots. Avec le produit il y a commutativité et conflit avec les variables numériques qui peuvent servir à autre chose.
DragonLaBelette le 05/12/2014 à 09:52
Code

EfftoutesListes
D->13        // Histoire de pas avoir de problème dans lbl 1 et lbl 2   
lbl0
Menu(blablabla)
lbl 1
calcule de PA(B) -> Y
If D=OUI               // D à conserver sa valeur (enfin j'espère)
Goto2
Else
Stop
lbl2
calcule de P(B) -> Z
IF D=OUI            // De même
Goto3
Else
Stop
lbl3
Imput"Dont you make1-?",D   //Forme négative qui remplace le "NON" par "OUI"
If D=OUI
Goto1               // on va lbl 1 pour voire la suite des événements
Else
If Y=Z
"INDEPENDANT"
Else
"DEPENDANT"
Else
Stop
End
End
Stop



Concrètement :

Si et seulement si on sélectionne lbl3 que j'ai nommé "INDEPENDANCE"
--On a sélectionné "Oui" pour dire qu'on n'a pas fait 1 et 2
------Alors on va calculé Y et on va calculer Z
------Pour vérifier l'égalité
----------Si l'égalité est vérifié
------------Alors A et B sont indépendant
----------Si l'égalité n'est pas vérifié (Else)
------------Alors A et B ne sont pas indépendant
----------End
--End


Je pense avoir encore vers les 1.7 fois de lignes de plus que ton programmes .
linkakro le 07/12/2014 à 00:03
Les Else n'ont aucun sens sans ouvertur des alternatives avec Then. Et si tu ouvrais de alternatives tu aurais une fuite mémoire à cause de[...]à l'intérieur.
DragonLaBelette le 10/12/2014 à 20:17
Donc ta solution sans les menus semble plus complets (mais le truc que je ne comprends pas trop sont les Rep+1 mais quand je coderais peut être que je comprendrais pourquoi .)

J'éditerais si j'ai justement compris .
linkakro le 10/12/2014 à 21:32
Rép contient le résultat du dernier calcul. Donc chaque Rép+1 exécuté incrémente Rép. Donc le nombre de lignes Rép+1 exécutées détermine la valeur de Rép après le menu. Les choix dont l'étiquette vient en premier causent l'exécution de tout ce qui suit alors que ceux dont l'étiquette vient en dernier ne causent l'exécution que de quelques-uns, donc cela affecte un nombre qui dépend du choix. Le nombre avant le menu initialise Rép.

(remarque: je n'ai pas trouvé ça tout seul)
DragonLaBelette le 13/12/2014 à 11:15
Est ce que rép ne contient pas les valeurs calculés avec un programme ?



( la même question pour un menu de programme qui rédigerais vers un programme )
Car justement j'ai remarquer que ce n'étais pas possible avec une redirection , de prendre une valeur d'un "sous programme" avec Rep ...

Et de plus le programme nécessite qu'on passe obligatoirement par lbl 1 et 2 avant de faire lbl 3 (je pense) ; ça m'embêtais car de retenir de faire lbl1 et lbl 2 spécifiquement à ce menu me coûterais non seulement à ma mémoire ( car je fais en sorte que je comprenne de sorte avoir l'esprit tranquille ) ...

Je vais bidouiller ce programme et je dirais des nouvelles (oui je sais je suis têtu happy.gif ).
linkakro le 13/12/2014 à 14:46
Tout calcul et la fonction Pause affectent Rép. Toutes les variables du TI-Basic sont globales.
Donc un calcul effectué dans un programme parent sera stocké dans Rép comme n'importe quelle variable puis pourra être utilisé dans un programme enfant (sous-programme) appelé. De même au retour d'un programme enfant : les variables affectées dans le programme enfant demeurent dans le programme parent, y compris Rép.
Lorsque l'exécution d'un programme se fait à partir de l'écran graphique, c'est toujours pareil : les variables affectés dans l'écran principal sont disponibles dans le programme et réciproquement.

Si tu places un calcul sur la dernière ligne d'un programme lancé depuis l'écran principal, non-seulement le résultat est stocké dans Rép mais en plus il est automatiquement affiché dans l'écran principal.

Voici un exemple.
Code
//écran principal
0       // le résultat 0 est stocké dans Rép
prgmA   // le programme est lancé
Rép     // Rép contient 2 à cause des programmes
prgmC   // pour montrer l'affichage automatique, 10+2=12
Code
//prgmA
Pause Rép    // 0     // la valeur de Rép initiée dans l'écran principal
Disp Rép+1   // 0+1=1 // Disp ne stocke pas
Pause Rép+1  // 0+1=1 // stocke
Pause Rép    // 1     // preuve que cela stocke
prgmB
Pause Rép    // le programme B a incrémenté : cela affiche 2
Code
//prgmB
Disp "PROG B
Pause Rép+1  // 1+1=2 // stocke
Return       // Return facultatif en fin de programme
Code
//prgmC
Disp "AFF AUTO
Rép+10  // sur la dernière ligne du programm, montre l'affichage auto