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 :

Algorithme et programme


Sujet :

JavaScript

Vue hybride

Alf30 Algorithme et programme 27/03/2012, 20h50
_tom_ Bonjour, Ta demandes est... 30/03/2012, 13h46
SpaceFrog j'avais ça en stock : ... 30/03/2012, 14h45
Willpower function r(c){ return... 30/03/2012, 17h12
SpaceFrog Will, J'aime beaucoup ta... 31/03/2012, 09h42
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Par défaut Algorithme et programme
    Bonjour, je viens chercher de l'aide car j'ai un algorithme a écrire et ensuite un programme sous javascript et je ne comprends pas comment faire.
    Je ne suis pas très douée en algo déjà à la base et là je suis perdue..

    Voila ce que j'ai à faire :
    - Ecrire un programme demandant un nombre à l'utilisateur et affichant son équivalent en numérotation romaine
    - Ecrire une fonction prenant en entrée un caractère seul et renvoyant sa valeur, 0 s'il est incorrect
    - Ecrire un programme demandant une chaine à l'utilisateur et renvoyant sa valeur (chiffre romain --> arabe)
    - Faire en sorte que le programme affiche un message d'erreur pour les saisies incorrectes


    Sauf que je n'arrive pas à commencer et je ne vois vraiment pas comment faire.
    Je me dis qu'une fois que j'aurais compris comment faire un programme passant de romain à arabe ou l'inverse, j'arriverais facilement à le faire dans l'autre sens mais pour le moment je ne comprends pas comment le faire et dans aucun des 2 sens..

    C'est pour ça que je viens chercher un peu d'aide

    Merci d'avance pour vos réponses

  2. #2
    Membre éprouvé
    Avatar de _tom_
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 67
    Par défaut
    Bonjour,

    Ta demandes est assez vaste

    Voici une fonction javascript qui te permet de convertir une nombre arabe en romain :

    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
    16
    17
    18
    19
    20
    21
     
    function chif_rome(num)
    {
      //I V X  L  C   D   M
      //1 5 10 50 100 500 1k
      var rome =["","I","II","III","IV","V","VI","VII","VIII","IX"];
      var rome2=["","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"];
      var rome3=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"];
      var rome4=["","M","MM","MMM","IVM","VM","VIM","VIIM","VIIIM","IXM"];
      var str=rome[num%10];
      num-=(num%10);
      num/=10;
      str=rome2[num%10]+str;
      num-=(num%10);
      num/=10;
      str=rome3[num%10]+str;
      num-=(num%10);
      num/=10;
      str=rome4[num%10]+str;
      alert(str);
    }
    Bon courage

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    j'avais ça en stock :
    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
    16
    17
    18
    19
    function chif_rome(num)
    {
      var rom ={'0':'','1':"I",'2':"II",'3':"III",'4':"IV",'5':"V",'6':"VI",'7':"VII",'8':"VIII",'9':"IX",
      				'10':"X",'20':"XX",'30':"XXX",'40':"XL",'50':"L",'60':"LX",'70':"LXX",'80':"LXXX",'90':"XC",
      				'100':"C",'200':"CC",'300':"CCC",'400':"CD",'500':"D",'600':"DC",'700':"DCC",'800':"DCCC",'900':"CM",
      				'1000':"M",'2000':"MM",'3000':"MMM",'4000':"IVM",'5000':"VM",'6000':"VIM",'7000':"VIIM",'8000':"VIIIM",'9000':"IXM"};
     
    var str="";
    var exp = 4
    var u=1000
    while (u>1){
    u=Math.pow(10,--exp)
    str+=rom[(parseInt(num/u,10)*u).toString()]
    num=num%u
    }
     
      return(str);
    }
    alert(chif_rome(95))
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	function r(c){
    		return {'M':1000,'D':500,'C':100,'L':50,'X':10,'V':5,'I':1}[c] || 0;
    	}
     
    	function rom2ara(str){
    		var result=0,v1,v2;
    		for(var i=0;i<str.length;i++){
    			r(str[i])&&r(str[i])<r(str[i+1])?result+=r(str[i+1])-r(str[i++]):result+=r(str[i]);
    		}
    		return result;
    	}
     
    	alert(rom2ara('WILLPOWER'));

    A condition que le chiffre romain passé en paramètre soit un chiffre romain valide.

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Will, J'aime beaucoup ta fonction r(c)

    Cependant rom2ara me retourne toujours 0 ??
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Will, J'aime beaucoup ta fonction r(c)

    Cependant rom2ara me retourne toujours 0 ??
    Pour la fonction r(c), il aurait été plus simple de juste utiliser un tableau ou objet(au lieu d'une fonction), mais je voulais me conformer à l'énoncer :

    - Ecrire une fonction prenant en entrée un caractère seul et renvoyant sa valeur, 0 s'il est incorrect



    rom2ara me retourne 99 pour "WILLPOWER", tu utilises IE ?

    voici donc la version compatible IE :

    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
    	function r(c){
    		return {'M':1000,'D':500,'C':100,'L':50,'X':10,'V':5,'I':1}[c] || 0;
    	}
     
    	function rom2ara(str){
    		var result=0,v1,v2;
    		for(var i=0;i<str.length;i++){
    			v1 = r(str.charAt(i));
    			v2 = r(str.charAt(i+1));
    			v1&&v1<v2?(i++,result+=v2-v1):result+=v1;
    		}
    		return result;
    	}
     
    	alert(rom2ara('WILLPOWER'));

Discussions similaires

  1. Algorithme et programme de Lagrange (MATLAB)
    Par TGV6975 dans le forum MATLAB
    Réponses: 6
    Dernier message: 24/05/2009, 21h18
  2. Conseils pour algorithme ou programmation
    Par djahoo dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 30/12/2007, 15h11
  3. Optimisation algorithme de programmation
    Par mp_moreau dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 29/07/2007, 19h24
  4. algorithme pour programmation linéare en nombre entier
    Par kious dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 03/05/2006, 09h17

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