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

Algorithmes et structures de données Discussion :

Algorithme Convertir nombre Entier en nombre Romain


Sujet :

Algorithmes et structures de données

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 15
    Par défaut Algorithme Convertir nombre Entier en nombre Romain
    Boujour,

    Je suis en année préparatoire d'informatique et j'ai besoin d'assistance pour résoudre un problème algorithmique. (je n'ai aucune base de programmation)

    Pour convertir 16 ( nombre entier ) en XVI ( Chiffre romain ).

    Je pensais faire 2 tableaux tout d'abord

    Un tableau T 1 :
    X
    V
    I

    Et un tableau T2:
    10
    5
    1

    Ensuite pour l'algorithme j'ai commencé comme sa :

    Début
    n : entier positif
    n= 16
    n div 10 = d // d: nombre de dizaine
    u= n(d*10) // u: unités

    Et après je suis bloqué pouvez m'aider svp ?
    Car je ne vois pas comment dire tout d'abord que 10 c'est X
    Et je vois pas comment continuer cet algorithme

    Merci à vous

  2. #2
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    Bonsoir,

    dans le système de numération romain classique tu utilises uniquement les chiffres I,V,X,L,C,D et M.
    On commennce par séparer le nombre à convertir en unités, dizaines, centaines et milliers puis on affiche autant de M qu'il y a de milliers, puis les symboles pour les centaines puis les dizaines puis les unités donnés par le tableau suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    +---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
    |         |0    |1    |2    |3    |4    |5    |6    |7    |8    |9    |
    +---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
    |unités   |     |I    |II   |III  |IV   |V    |VI   |VII  |VIII |IX   |
    +---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
    |dizaines |     |X    |XX   |XXX  |XL   |L    |LX   |LXX  |LXXX |XC   |
    +---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
    |centaines|     |C    |CC   |CCC  |CD   |D    |DC   |DCC  |DCCC |CM   |
    +---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
    par exemple 4876 donne :
    4.8.7.6
    MMMM.DCCC.LXX.VI

    Il y a aussi parfois un symbole associé à 5000 et à 10000, faut voir les données de ton énoncé.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 15
    Par défaut
    Merci kwariz,

    Enfaîte j'avais bien compris ce détails cependant, je ne sais pas l’écrire que :

    dans le cas on prend 16 en chiffre et que sa donne XVI.

    Le nombre de dizaine dans mon cas est égal a 1 donc sa donne X
    Dois je déclarer que 1 c'est X avant mes calculs et comment ?

    Concernant les unités sa me donne 6 unités mais comment après je dis que 6 sa correspond à VI ?

    Mon blocage vient de là.

    Merci pour votre aide .

  4. #4
    Membre éprouvé Avatar de sologne
    Homme Profil pro
    Chargé de missions
    Inscrit en
    Mai 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chargé de missions
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2011
    Messages : 73
    Par défaut
    Bonjour,

    pour aller dans le sens de ce qu'a commencé à écrire kwariz, l'idée est de te faire à minima trois tableau :

    T_unit = [" ","I","II","III","IV","V","VI","VII","VIII","IX"]
    T_diz = [" ","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"]
    T_cent = [" ","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"]

    puis tu décomposes ton nombre en cdu, c'est à dire pour 537 tu fais
    c recoit 5, d recoit 3, u recoit 7.

    et pour finir tu concatènes les infos des trois tableaux dans une variable Resultat :

    Resultat = T_cent[c]+T_diz[d]+T_unit[u]

    Ici j'ai utilisé le "+" pour la concaténation de chaine, a toi de voir dans ton cours la convention utilisée pour concaténer deux chaines

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 15
    Par défaut
    Merci de votre aide, cependant je n'ai pas vu le pointeur, on va voire ça bien plus tard.

    On commence seulement à faire un langage algorithmique simple avec des mot en français. juste pour acquérir la logique.

    Est ce que vous pouvez me donner juste 1 exemple bien simple que je puisse le réaliser avec mon énoncé demandé ?

  6. #6
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Je crois que l'aide déjà apportée est largement suffisante, il faut que tu cherche un peux.
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 82
    Par défaut
    Citation Envoyé par Kiffoux Voir le message
    Est ce que vous pouvez me donner juste 1 exemple bien simple que je puisse le réaliser avec mon énoncé demandé ?
    Je pense que kwariz a déjà donné un exemple plus qu'intéressant... il est simple et en plus au cas ou tu aurais du mal il a mis des couleurs.

Discussions similaires

  1. Réponses: 15
    Dernier message: 08/06/2014, 21h56
  2. convertir un string en nombre entier (pas intval)?
    Par Xeuch dans le forum Langage
    Réponses: 1
    Dernier message: 20/06/2013, 11h29
  3. [FAQ] Comment convertir un nombre entier en binaire ?
    Par c-candide dans le forum Contribuez
    Réponses: 3
    Dernier message: 07/08/2009, 22h22
  4. Conversion de nombre décimaux en nombre entier
    Par noahline dans le forum VBScript
    Réponses: 2
    Dernier message: 05/12/2008, 12h47
  5. 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