IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

les fonctions javascript


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Par défaut les fonctions javascript
    bonjour a tous, je suis nouvel etudiant en programmation javascript,et j'ai quelques petits problèmes avec les fonctions javascript.j'ai deja lu plusieurs tutoriels à ce sujet,mais lorsqu'il s'agit de la partie exercice,c'est une autre chose. pour le moment, je dois créer une fonction qui fait la conversion des chiffres décimaux allant de 1 a 3999 en nombres romains.puis ,cette fonction doit avoir une autre fonction a créer, qui est la fonction répéter,qui pourra répéter un texte n fois.n, pouvant aller jusqu'a trois.la fonction a créer doit aussi exécuter des tests unitaires.puis, mon code ne doit pas avoir d'appel a print, prompt, ou alert.
    moi, j'ai comencé par créer la fonction répéter, je sais pas si c'est par là qu'il faut commencer,mais bon j'ai penser au trois premier chiffres romains, I,II etIII.sauf que ça va pas seulment repeter I.je voudrais aussi que rendu, comme au chiffre 100, que, en faisant un appel a cette fonction,quelle m'affiche C,CC,CCC, pour les 3 chiffres de 100 à 103.
    voici en quelque sorte je que j'ai fait.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var repeat = function(n,t){
    for(var n = 1;n<=3;n++){
    var t = " ";
    for(var a = n;a>=1;a--){
    t+="t";
            }
        }
    return t;
    };
    mais quand je l'exécute dans mon interprete, le return t, j'ai l'impression que ça n'a pas sa place.quand je mets un print(repeat(2,M)) a la fin de ma derniere boucle,ça ne m'affiche pas ce à quoi je m'attends,(MM).je suis un peu perdu la.Est ce que quelqu'un aurai des idées pour m'aider a continuer, sil-vous-plait.
    merci.

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    bonjour,

    conversion des chiffres décimaux allant de 1 a 3999 en nombres romains
    ce passage par exemple, c'est une blague?

  3. #3
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Sur ce coup-là, je ne pouvais pas ne pas répondre

    ...et il se trouve que sans écrire une ligne de code je retrouve ça dans mes fichiers ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // FONCTION : convertit le nombre courant (sa valeur entière arrondie) en chiffres romains ( valeur minimum : 1 ) 
    // RETOUR : chaine représentant le nombre courant
    Number.prototype.enRomains = function() {
       var tab = [ ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"],
                   ["", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"],
                   ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"],// "?" >>> 5000 existe ? (à vérifier) 
                   ["", "M", "MM", "MMM", "M?", "?", "?M", "?MM", "?MMM", "M!"],// "!" >>> 10000 existe ? (à vérifier) 
       ];
       if (this < 1 || this > 9999)
          return false;
       var chaine = this.toFixed(), resultat = "", j = 0;
       for (var i = chaine.length - 1; i >= 0; --i)
          resultat = tab[j++][parseInt(chaine.substr(i, 1), 10)] + resultat;      
       return resultat;
    }
    et même ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // FONCTION : répète n fois la chaine courante, avec ou sans séparateur
    // PARAM #1 : "n" (number) : nombre de répétitions
    // PARAM #2 : "sep" (string) : séparateur (éventuel) à insérer entre chaque répétition
    // RETOUR : chaine (construite à partir de la chaine courante)
    String.prototype.repeter = function(n, sep) {
       var chaine = "";
       n = Math.round(n);
       for (var i = 0 ; i < n ; ++i)
          chaine += this + ((sep && (n > (i + 1)))?sep:"");
       return chaine;
    }
    A ne pas reprendre tel quel bien sur, mais pour inspiration

    ________________________

    par rapport au problème précis que tu poses, pardon de n'avoir pas réellement répondu, mais il y aurait beaucoup à en dire Par exemple sans être entré dans le détail j'ai aperçu que tu avais un paramètre "t" et une variable locale "t" attention aux confusions quand même, hum

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par RomainVALERI Voir le message
    >>> 5000 existe ? (à vérifier)
    >>> 10000 existe ? (à vérifier)
    l'article de Wikipédia est intéressant à ce sujet. Il existe des extensions de la numérotation romaine (paragraphe 5 de l'article) :
    http://fr.wikipedia.org/wiki/Num%C3%A9ration_romaine

  5. #5
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    oui auteur, merci pour le lien, mais j'étais en fait déjà tombé dessus après avoir écrit la partie principale de la fonction à l'époque, et c'est précisément en voyant ces différentes variantes que j'ai arrêté mon implémentation en me disant "on verra ça plus tard..." ...alors comme le "besoin" ne s'est pas vraiment encore présenté... ^^

    Mais j'ai bon espoir que danda nous écrive la version améliorée et la poste ici pour nous remercier

Discussions similaires

  1. Manipuler les fonctions javascript avec webbrowser
    Par chefinf dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 09/07/2011, 12h44
  2. Question sur les fonctions javascript
    Par Walkn dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 15/03/2011, 21h01
  3. retrouver un élément ajouté avec les fonction javascript-DOM
    Par adilsoft dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/02/2010, 16h16
  4. Un site tout en ajax et les fonctions javascript ?
    Par Dougui_bzh dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 13/07/2008, 20h53
  5. Réponses: 11
    Dernier message: 06/09/2006, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo