Défaire une chaîne de caractères en JavaScript
Répondre à la discussion
Affichage des résultats 1 à 25 sur 25

Défaire une chaîne de caractères en JavaScript



  1. #1
    invite63882668

    Défaire une chaîne de caractères en JavaScript


    ------

    Bonjour.

    Je suis en train de programmer ceci, mais malheureusement, je n'arrive pas à faire ce que je veux. Je voudrais en effet que result1 retourne le résultat de l'opération, et pas l'énoncé comme le fait calc1. Je crois que c'est parce que operators ne contient que des chaînes de caractères ; si c'est le cas, comment faire pour la "casser" ?

    Merci d'avance.

    -----

  2. #2
    invitef35ebd48

    Re : Défaire une chaîne de caractères en JavaScript

    Bonjour,


    C'est un peu obscur (enfin si on fait le parallèle avec ton précédent post ça l'est un peu moins), tu peux mettre ton code ?

  3. #3
    invite63882668

    Re : Défaire une chaîne de caractères en JavaScript

    Il est dans le lien que j'ai donné tantôt.

  4. #4
    invitef35ebd48

    Re : Défaire une chaîne de caractères en JavaScript

    Dsl j'avais pas vu le lien...

    Suivant la valeur de operator tu fais une addition/soustraction/multiplication/division....tu vas t'en sortir avec des "if" ( ou un switch).

  5. A voir en vidéo sur Futura
  6. #5
    invite63882668

    Re : Défaire une chaîne de caractères en JavaScript

    Avec des if ? Comment ?!

    Je ne connais pas encore le switch...

  7. #6
    invitef35ebd48

    Re : Défaire une chaîne de caractères en JavaScript

    oublie le switch alors c'est pas nécessaire non plus


    Avec des if ? Comment ?!
    Tu vois ce que c'est un "if" ?? http://fr.openclassrooms.com/informa...tion-if-else-1


    Tu peux faire :

    Si operator vaut +

    alors result1 = a1+a2

  8. #7
    invite63882668

    Re : Défaire une chaîne de caractères en JavaScript

    Et ceci, forcément autant de fois qu'il y a de calculs, c'est-à-dire...dix fois. Avec les switch, ça donnerait quoi ?

  9. #8
    invitef35ebd48

    Re : Défaire une chaîne de caractères en JavaScript

    Et ceci, forcément autant de fois qu'il y a de calculs, c'est-à-dire...dix fois. Avec les switch, ça donnerait quoi ?
    Yessss et autant de fois que t'as d'opérateur aussi...


    Tu peux mettre tes nombres dans un tableau (ou deux) et boucler sur ton tableau...c'est plus propre et ca te fera écrire moins de code.


    laisse tomber le "switch" pour le moment....

  10. #9
    invitecba2e9e4

    Re : Défaire une chaîne de caractères en JavaScript

    hello,

    tu as une autre variante.
    Au lieu de stocker des opérateurs dans un tableau, tu peux stocker des fonctions...
    Code:
    var operators=[add,multiply,divise,subtract]; //add, multiply...sont des fonctions
    function add(a,b){
      return a+b;
    }
    //je te laisse écrire les autres
    var a1 = Math.floor((1000) * Math.random() + 2);
    var a2 = Math.floor((1000) * Math.random() + 2);
    var functionToApply = operators[Math.floor(Math.random() * 4)];//on recupere la fonction à appliquer...
    var result = functionToApply(a1,a2);//on a le resultat...
    tu as une dernière possibilité qui est d'utiliser eval, mais eval, c'est mal. Je la cite juste au cas où tu tombes dessus et tu croies que c'est bien. Ya toujours une alternative plus lisible...

  11. #10
    invitecba2e9e4

    Re : Défaire une chaîne de caractères en JavaScript

    J'ajouterais également (mais uniquement avec ES6 Harmony, et que sous ff, chrome semble y etre presque)

    on peut également écrire
    Code:
    var operators=[(a,b)=>a+b,(a,b)=>a*b];//etc qui est également valide :)
    qui fait usage de l'arrow function

  12. #11
    invitef35ebd48

    Re : Défaire une chaîne de caractères en JavaScript

    Citation Envoyé par galerien69 Voir le message
    Au lieu de stocker des opérateurs dans un tableau, tu peux stocker des fonctions...
    Du coup il faut un tableau à 2 dim (voir 2 tableaux ). Pour stocker le symbole (affichage) et la fonction ( calcul).

  13. #12
    invite63882668

    Re : Défaire une chaîne de caractères en JavaScript

    Le problème, c'est que les données aléatoires utilisées par calc1 et result1 sont différentes...Comment faire pour qu'une variable telle a1 fournisse le même nombre dans une même exécution du programme ?

    PS : je modifie sans cesse le programme, mais la dernière version est toujours celle-ci : http://jsfiddle.net/Orikrin1998/8j3hs/

  14. #13
    invitef35ebd48

    Re : Défaire une chaîne de caractères en JavaScript

    a1 ne changera pas de valeur tout seul si tu n'y touches pas.

    tu peux faire ça ( en prenant la solution de galerien69 ) :


    créer le tableau d'opérateur ( les fonctions)
    créer le tableau avec les symboles


    Pour i allant de 0 à 9 faire
    a = nombre aléatoire
    b = nombre aléatoire
    index = nombre aléatoire (entre 0 et 3);

    récupérer la fonction dans le tableau a la position "index"
    récupérer le symbole à la position index

    alerte( affichage) ....en utilisant le symbole, a et b
    alerte( resultat) .....en utilisant la fonction, a et b
    fin de pour


    EDIT : mince t'as pris la solution avec les "if"......c'est pas grave, à la place de récupérer la fonction, tu calcules juste le résultat de l'opération grâce au symbole.

    EDIT2 : ton programme à l'air de marcher....à gros coup de copier/coller tu peux enchainer pour les nombres suivants. C'est pas beau, mais bon, ça marche.

  15. #14
    invitef35ebd48

    Re : Défaire une chaîne de caractères en JavaScript

    Désolé pour le post en plus , j'ai passer la limite d'édition.


    En fait y'a une petite erreur dans ton programme...c'est pas bien méchant et "classique". Mais pour le coup il ne fait qu'additionner.

  16. #15
    invite63882668

    Re : Défaire une chaîne de caractères en JavaScript

    Oui désolé mais je n'avais pas besoin de ces dernières informations, j'ai pris les if.

    Comment je fais pour corriger cette erreur "pas bien méchante et classique" ?

  17. #16
    invitef35ebd48

    Re : Défaire une chaîne de caractères en JavaScript

    omment je fais pour corriger cette erreur "pas bien méchante et classique" ?
    Eh bhé faut la trouver !

    Tu peux t'aider avec ça :
    http://www.commentcamarche.net/conte...de-comparaison


    tu gagnerais à suivre le tuto en entier...histoire de connaitre les bases de JS

  18. #17
    invite63882668

    Re : Défaire une chaîne de caractères en JavaScript

    Le tuto entier ? Merci, j'ai déjà donné. Je ne suis pas si nul que tu sembles le penser, je suis l'auteur de ceci.

    Tu veux dire que j'ai confondu affectation et égalité ? Je ne trouve pas...un petit coup de pouce ? Pour apprendre en informatique, il faut pratiquer.

  19. #18
    invitef35ebd48

    Re : Défaire une chaîne de caractères en JavaScript

    Tu veux dire que j'ai confondu affectation et égalité ?
    a ton avis ?


    Je ne suis pas si nul que tu sembles le penser, je suis l'auteur de ceci.
    On va éviter de jouer au kikimètre. Je te donne des conseils soit tu les suis soit non. Si ma remarque t'as blessé, j'en suis désolé c'était pas le but.

  20. #19
    invitecba2e9e4

    Re : Défaire une chaîne de caractères en JavaScript

    Pas besoin de tableaux a double dimensions.
    Quant aux donnees superficielles, tu fais ce que tu veux, mais faire des ifs pour ca c est fatigant.

    Code:
    var a1 = Math.floor((1000) * Math.random() + 2)
    var a2 = Math.floor((1000) * Math.random() + 2)
    
    var operators = {
        '+':function(a,b){return a+b},
        '-':function(a,b){return a-b}
    };
    
    var operator = Object.keys(operators)[Math.floor(Math.random() * 4)]; //Object.keys recupere les cles ...[+,-]
    var calc1 = a1 + " " + operator + " " + a2 
    var result1=operators[operator](a1,a2); //operators[operator] recupere la bonne fonction
    alert(calc1)
    alert(result1)

  21. #20
    invite63882668

    Re : Défaire une chaîne de caractères en JavaScript

    OK, ça avance, merci à tous.

  22. #21
    invite63882668

    Re : Défaire une chaîne de caractères en JavaScript

    Voilà, ça donne ça : http://jsfiddle.net/Orikrin1998/8j3hs/

    Ca n'aurait pas pu voir le jour sans vous.

  23. #22
    invitecba2e9e4

    Re : Défaire une chaîne de caractères en JavaScript

    hello,

    juste à titre d'exemple
    http://jsfiddle.net/qtAy7/6/
    on peut faire un peu moins laborieux.

    ps: j'ai pas corrigé la division par zéro...

  24. #23
    invite63882668

    Re : Défaire une chaîne de caractères en JavaScript

    C'est beau, mais je ne comprends rien. Je n'aurais pas pu programmer un tel truc, ça me déçoit presque d'avoir fait ce que j'ai fait.
    Merci quand même.

  25. #24
    invitecba2e9e4

    Re : Défaire une chaîne de caractères en JavaScript

    nan le but c'est pas de te dégouter, c'est déjà bien ce que tu as fait. Surtout d'arriver jusqu'au bout du programme.
    Le but du code que je te propose c'est juste de montrer que tu peux mieux faire. Ptet un jour (ptet pas maintenant) tu te poseras la question est-ce que je peux faire plus court, ou j'en ai marre de copier des variables et de les numéroter, puis ptet tu te diras tiens ya un péon qui avait codé un truc du genre, ptet je peux faire pareil.

  26. #25
    invite63882668

    Re : Défaire une chaîne de caractères en JavaScript

    Merci alors. Mais comme tu le dis, je n'en suis pas encore là... ^^

Discussions similaires

  1. C18 et chaine de caracteres.
    Par invite6cb06424 dans le forum Électronique
    Réponses: 11
    Dernier message: 08/10/2015, 13h03
  2. Javascript, Premier caractere d'une chaine
    Par invitee13c535c dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 26/03/2013, 16h45
  3. chaîne de caractères
    Par invite11df21b5 dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 30/01/2013, 20h36
  4. Chaine de caractères en C
    Par invite953f8104 dans le forum Électronique
    Réponses: 8
    Dernier message: 03/03/2009, 21h28
  5. PIC : Chaine de caractères
    Par Toufinet dans le forum Électronique
    Réponses: 2
    Dernier message: 24/05/2006, 18h49