dns sur calculatrice


  • A

    Bonjour, j'ai de nouveau un exercice sur calculatrice TI-83 plus. Voici l'énoncé : "Avec un dé cubique équilibré numéroté de 1 à 6, pour N lancers afficher le pourcentage d'obtention du 6". Pourriez vous me dire si le raisonnement suivant est bon : For (I, 1, N)
    X prend la valeur ent (6aleatoire+1)
    C prend la valeur 0
    If X=6
    Then C prend la valeur C+1
    Disp "pour"
    Disp "N"
    Disp "lancers, le pourcentage de tomber sur 6 est de"
    Disp "C/N
    100"
    Disp "%"
    End
    je pense qu'il y a une erreur car je n'arrive pas au programme
    merci de m'aider


  • A

    mon raisonnement est-il bon
    pour i variant de 1 à N
    X prend la valeur aléatoire de 1 à 6
    C prend la valeur de 0
    si X=6 alors C prend la valeur de C+1
    afficher "pour"
    afficher "N"
    afficher "lancers, le pourcentage de tomber sur un 6 est de "
    afficher "C/N*100"
    afficher "%"
    merci de m'aider après je dois le transcrire sur la calculatrice


  • Thierry
    Modérateurs

    Salut,

    L'algorithme a l'air d'être ok mais on ne voit pas la fin de ta boucle "pour i variant de 1 à N".

    C'est peut-être cela qui pose problème lors de la programmation. Je ne vois pas la fin de ta boucle "for".


  • A

    Comment puis-je faire pour terminer la boucle ? J'ai essayé de mettre "End" après C prend la valeur C+1 mais ca ne marche pas. Ai-je lancé le dé au début de l'algorithme ? Si non, comment dois-je faire ? Merci pour ton aide


  • A

    j'ai essayé en mettant end après c prend la valeur de 0 le programme me dit " fait" mais rien ne s'affiche


  • Thierry
    Modérateurs

    D'après ce que je vois ici programme sur TI83 c'est bien le mot "end" qui doit marquer la fin de la boucle. As-tu pensé à mettre un end aussi pour la fin du "if" ?
    Sinon tu peux essayer aussi une boucle "while" ...


  • A

    merci je vais reessayer


  • Thierry
    Modérateurs

    Un moyen de vérifier qu'il exécute correctement les boucles est d'insérer des commandes du type
    Disp "test de la boucle"
    aux endroits stratégiques ...


  • A

    bonjour pour la boucle je ne sais pas ou la mettre
    mais j'ai essayé une autre formule mais il me met erreur pour c

    saisir N
    c prend la valeur 0
    pour I allant de 1 à N
    X prend la valeur d'un entier aléatoire entre 1 et 6
    Si X=6
    Alors
    C prend la valeur C+1
    Fin
    Fin
    Calculer C/N100 (sur calculatrice je pense que ça donne partEnt(C/N100) prend la valeur P
    Afficher P=
    Fin
    Quand je lance le programme, il revient sur "C prend la valeur de 0"
    Merci de m'aider


  • Thierry
    Modérateurs

    L'algorithme est bon. Il s'agit donc probablement d'une erreur de syntaxe.
    Poste plutôt ton script que l'algorithme. Mais je ne te promets rien quant à l'aide que je peux t'apporter, ne connaissant pas spécifiquement ce langage de programmation.

    Encore une nouvelle piste : essaye d'enlever le end final. Je n'en vois pas dans les programmes de la page Xmaths.


  • A

    merci de m'aider
    voici la programmation que je fais
    IMPUT"N=",N
    C->0
    FOR (I,1N)
    X->ENT(6ALEATOIRE +1)
    IF X=6
    THEN C->C+1
    END
    END
    PARTENT(C/N
    100)->POURCENTAGE
    DISP "POURCENTAGE="
    je ne sais pas si le reste est bien mais déjà le c bloque
    merci d'avance


  • Thierry
    Modérateurs

    Essaye de taper plutôt :
    0->C et C+1->C (d'après le lien que je t'ai donné ça s'écrit dans cet ordre)
    de même :
    ENT(6*ALEATOIRE +1)->X

    La syntaxe pour la boucle semble être plutôt : FOR(I,1,N,1)


  • A

    merci effectivement ça marche
    j'aurai dû le deviner car pour l'opération on le met à l'envers
    mais j'ai encore un problème il ne m'affiche pas le résultat
    je mets DISP"POURCENTAGE="
    DISP "P"
    mais il n'affiche pas de chiffre
    j'ai essayé en mettant après PARTENT....
    POURCENTAGE->P
    et ensuite DISP "POURCENTAGE="
    DISP "P"
    mais c'est pareil
    je vais essayer d'autres trucs
    merci pour ton aide


  • A

    le site donné est très bien je vais certainement trouver


  • A

    je ne trouve pas le bon code pour afficher le résultat
    merci d'avance


  • A

    bonjour
    je pense mettre trompé sur un point de mon raisonnement
    sur la calculatrice après les 2 end j'ai mis partent(c/n100)
    mais la je ne prends que la partie entière du calcul ce qui est faux
    je dois mettre c/n
    100->pourcentage
    mais je n'arrive toujours pas à faire afficher le résultat


  • Thierry
    Modérateurs

    Pour afficher ton pourcentage, j'ai trouvé (toujours sur la même page) la syntaxe : disp "face",F

    Donc pour toi :

    Disp "Le pourcentage est ", POURCENTAGE

    (entre les guillemets on demande seulement l'affichage de texte, après la virgule l'affichage de la valeur de la variable qui s'appelle POURCENTAGE).


  • A

    merci pour les renseignements
    mais le resultat qui s'affiche est toujours 0
    j'ai essayé en mettant la ligne c/n*100->pourcentage avant les 2 fins mais rien ne va
    j'ai contacté ma prof de math pour avoir un coup de pouce par msn
    elle m'a répondu en me demandant l'utilité de cette ligne mais si on ne la met pas on ne peut pas connaitre le pourcentage
    je suis complétement perdu déjà que les maths c'est pas mon point fort
    merci encore pour ton aide


  • Thierry
    Modérateurs

    Essayons d'isoler le problème.
    Enlève PARTENT pour voir.

    Reposte le script que tu as maintenant que je m'y retrouves ...


  • A

    input "N=",N
    C->0
    FOR (I,1,N,1)
    ENT(6ALEATOIRE+1)->X
    IF X=6
    THEN C+1->C
    END
    END
    C/N
    100->POURCENTAGE
    DISP"POURCENTAGE=",POURCENTAGE

    j'ai essayé avec C/N*100 entre les 2 END mais c'est pareil
    merci pour ta patience


  • Thierry
    Modérateurs

    Remplace C->0 par 0->C (je t'ai expliqué ça plus haut)

    Rajoute une ligne de debuggage sous ENT(6*ALEATOIRE+1)->X :
    disp "-",X

    Cette ligne va nous permettre de savoir quels nombres sont générés. Peut-être que le 6 n'est jamais créé ...


  • A

    bonjour
    pour le 0->C je l'avais bien tapé sur la calculatrice mais mal retranscrit
    j'ai essayé mais j'obtiens des 1 et le programme revient sur c/n100-> pourcentage au niveau du o
    alors maintenant mon programme donne ça
    INPUT "N=",N
    0->C
    FOR(I,1,N,1)
    ENT(6
    ALEATOIRE+1)->X
    DISP "-",X mais j'ai également essayé " ",X
    IF X=6
    THEN
    C+1->C
    END
    END
    C/N100->P
    DISP"POURCENTAGE =",P
    le programme affiche que des 1
    si je mets pourcentage en entier il revient toujours sur le o j'ai donc opté pour C/N
    100->P
    je ne sais plus comment faire
    merci


  • Thierry
    Modérateurs

    Mon interprétation : si la machine ne t'affiche que des 1, c'est normal que tu obtiennes une fréquence des 6 qui vaut 0 à la fin.

    L'erreur viendrait donc de cette ligne : ENT(6*ALEATOIRE+1)->X puisque X vaut apparemment toujours 1.

    Il faudrait donc chercher dans la notice d'utilisation (que je n'ai pas) comment on utilise ces fonctions ...

    Sinon sur la page de Xmaths, j'ai trouvé dans le dernier programme (pour simuler un lancé de dé !) cette ligne :
    int(rand6)+1
    ce qui se traduirait dans TI83 "française" par
    ent(aleatoire
    6)+1->X
    ou bien
    partent(aleatoire*6)+1->X

    Alors ent ou partent ?


  • A

    J'ai essayé de mettre ent(aleatoire*6)+1 mais je me retrouve toujours avec 0 en résultat
    je dois partir je verrais avec les copains s'ils ont trouvé
    merci pour ton aide et je continue à chercher


  • Thierry
    Modérateurs

    essaye avec "partent" plutôt que "ent"


  • Thierry
    Modérateurs

    Je confirme : la notice indique que la traduction de "int" est "partEnt" et non "Ent".
    Le problème est sûrement là.


  • A

    merci pour tes indications mais le résultat reste à 0
    même les copains n'y arrivent pas


  • Thierry
    Modérateurs

    et les X restent toujours à 1 ?

    Rajoute Disp ALEATOIRE juste avant ENT(6*ALEATOIRE+1)->X
    Je pense que le problème est dans la génération du nombre aléatoire.

    (Si tu en as marre, on peut laisse tomber là. Pour moi le fait que les copains n'y arrivent pas n'a jamais été un argument pour abandonner !)


  • A

    c'est vrai je continue
    je vois le truc et je te dis mais je dois rendre mon dns demain
    les autres exo m'ont posé moins de problème
    merci


  • A

    j'ai essayé mais là le curseur revient sur la flèche de x
    Dips ALEATOIREent(6*ALEATOIRE+1)->X

    je me suis demandé s'il ne calcule pas C/N*100 avec le 0->C

    comme programme maintenant j'ai
    INPUT"X=",N
    0->C
    FOR (I,1,N,1)
    Disp ALEATOIRE ENT(6ALEATOIRE+1)->X
    IF X=6
    THEN
    C+1->C
    END
    END
    DISP "POURCENTAGE="
    DISP C/N
    100
    mais le fait qu'il reveint sur ->X je n'ai pas de résultat
    j'ai essayé de mettre la valeur de X en dehors de la boucle juste après la valeur de c mais ça ne donne rien


  • Thierry
    Modérateurs

    Je voulais que tu rajoutes le code sur une ligne à part ^^
    Ce sont des lignes pour débogger qu'on pourra enlever quand on aura compris le problème.

    Cela donne donc :

    INPUT"X=",N
    0->C
    FOR (I,1,N,1)
    Disp ALEATOIRE
    ENT(6ALEATOIRE+1)->X
    IF X=6
    THEN
    C+1->C
    END
    END
    DISP "POURCENTAGE="
    DISP C/N
    100

    Je suis donc en train de tester la fonction "ALEATOIRE". Dis-moi ce qui s'affiche. Des nombres aléatoires s'affichent correctement ?


  • A

    lorsque je teste le programme il me met "erreur syntaxe" au niveau du "->X donc aucun nombre aléatoire ne s'affiche.


  • Thierry
    Modérateurs

    Remplace ENT par PARTENT dans la ligne qui plante.
    Et rajoute aussi disp " X=",X

    Ce qui nous donne :

    INPUT"X=",N
    0->C
    FOR (I,1,N,1)
    Disp ALEATOIRE
    PARTENT(6ALEATOIRE+1)->X
    DISP " X=",X
    IF X=6
    THEN
    C+1->C
    END
    END
    DISP "POURCENTAGE="
    DISP C/N
    100


  • A

    Saisir N
    C prend la valeur 0
    Pour I allant de 1 à N
    X prend la valeur d'un entier aléatoire entre 1 et 6
    Si X=6
    Alors
    C prend la valeur C+1
    Fin du Si
    Fin du Pour
    Pourcentage prend la valeur C/N100 Utilité de cette ligne ?
    Afficher "Pourcentage = "
    Afficher C/N
    100

    Sur la calculatrice cela donne :
    Input "N=", N
    0->c
    For (I,1,N,1)
    ent(6aléatoire+1)
    à mettre dans X
    If X=6
    Then
    C+1->C
    End
    End
    Part ent(C/N
    100)->Pourcentage
    A quoi sert cette ligne ?
    Disp "POURCENTAGE="
    Disp "C/N*100"

    Voici ce que ma prof m'a retourné après avoir corrigé mon exercice


  • A

    J'ai essayé ta formule mais pour le X j'obtiens plein de 0 et de 1 et à la fin j'obtiens pourcentage= 0


  • Thierry
    Modérateurs

    Bon on arrête là arno59 puisque ce fil est devenu un dialogue de sourds.

    Si tu as une question précise, je peux par contre y répondre.


  • A

    je comprends
    merci de ta patience
    et à une autre fois peut-être


Se connecter pour répondre