begin process at 2012 05 27 14:57:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > CONVERTISSEUR DE CHIFFRES ROMAIN AU CHIFFRE DÉCIMALE

CONVERTISSEUR DE CHIFFRES ROMAIN AU CHIFFRE DÉCIMALE


 Information sur la source

Note :
6,67 / 10 - par 3 personnes
6,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Niveau :Expert Date de création :19/03/2002 Date de mise à jour :18/03/2003 14:32:49 Vu :25 400

Auteur : hamdan

Ecrire un message privé
Site perso
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
C'est un simple convertisseur qui reçoit a l'entree des chiffre remain tel que "IVCL" ala sortie il affiche leurs valeur en chiffre ;)  

Source

  • #include<stdio.h>
  • #include<conio.h>
  • #include<string.h>
  • #include<MATH.H>
  • int val(char c)
  • {
  • switch (c)
  • {
  • case 'I':return 1;
  • case 'V':return 5;
  • case 'X':return 10;
  • case 'L':return 50;
  • case 'C':return 100;
  • case 'D':return 500;
  • case 'M':return 1000;
  • }
  • return 0;
  • }
  • int convertir(char str[])
  • {
  • int i=0,j,k;
  • for (j=0;j<strlen(str);j++)
  • {
  • k=val(str[j]);
  • if (k<=i)
  • i+=k;
  • else
  • i=k-i;
  • }
  • return abs(i);
  • }
  • void main()
  • {
  • char str[20];
  • textcolor(11);
  • clrscr();
  • do
  • {
  • printf("Donnez votre chiffre romain : ");
  • gets(str);
  • printf("%d\n",convertir(str));
  • }
  • while (strlen(str));
  • }
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<MATH.H>
int val(char c)
{
switch (c)
{
case 'I':return 1;
case 'V':return 5;
case 'X':return 10;
case 'L':return 50;
case 'C':return 100;
case 'D':return 500;
case 'M':return 1000;
}
return 0;
}
int convertir(char str[])
{
int i=0,j,k;
for (j=0;j<strlen(str);j++)
{
k=val(str[j]);
if (k<=i)
i+=k;
else
i=k-i;
}
return abs(i);
}
void main()
{
char str[20];
textcolor(11);
clrscr();
do
{
printf("Donnez votre chiffre romain :  ");
gets(str);
printf("%d\n",convertir(str));
}
while (strlen(str));
}  



 Sources du même auteur

Source avec Zip CALCULATRICE SCIENTIFIQUE AVEC LE LIBELLE VERSION 2
Source avec Zip CALCULATRICE EN VISUAL C++ EN ATTANDANT DES AMÉLIORATION
MENU DEROULANT ANSI C
SIMULATION DE LA MEMOIRE AVEC LA PAGINATION DE 1000 PAGES [T...
LA RESOLUTION D'UN SYSTEM AVEC LA METHODE DE GAUSSE ET NEWTO...

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

Commentaires et avis

Commentaire de flint_ne_meurt_jamais le 19/03/2002 19:17:17

Hm t'aurais pu l'implémenter plus élégamment ...

Commentaire de magic_Nono le 09/06/2005 14:52:54

sympa
a propos, C plutot du 'unsigned int' que du 'int'

jamais vu de négatif ou de nul ds en nb romain


sinon,
on pourrais se passer simplement de ta méthode val

Magicalement
Nono

Commentaire de tuckbess le 18/01/2007 23:28:45

j'ai pas compté en romain depuis une dizaine d'années mais il me semblait que XIX était plus proche de 19 que de 21 comme ton programme semble l'affirmer.
de plus il me semblait aussi que 3 c'était plutot III que IIV ou encore VIIX voire IIVXXLL, je pense qu'avec un petit peu d'imagination il y a de quoi passer quelques nuits blanches.
à bon programmeur!!! salut

Commentaire de hamdan le 19/01/2007 10:02:28

Merci pour le commentaire
Voire que programme est posté le 19/03/2002, alors âpres 5 ans je ne crois pas que j'ai la même logique de programmation ni de réflexion
à l'INSA de Lyon la logique étais comme suit :
XIX=X+(IX) et pas (XI)+X
Puisque tout le math grec a été repris des arabes, je crois logique tout ça
De toute façon voila de quoi s'amuser c'est un petit programme qui donne motivation a le compléter
Tiens, à toi de le corriger voir que tu viens d'arriver dans notre communauté :)
Bienvenue tuckbess  

Commentaire de pernotjln le 01/04/2010 18:03:00

Ce programme est faux tu ne tient pas compte des règles qui s'appliquent aux nombre romain !

- Au plus, trois répétitions consécutives de M, C, X et I.
- Au plus, une seule occurrence D, L et V.
- Un seul C peut préfixer un M ou un D. Les chiffres après M ou D représentent une valeur qui ne peut être supérieure à 99.
- Un seul X peut préfixer un C ou un L. Les chiffres après C ou L représentent une valeur qui ne peut être supérieure à 9.
- Un seul I peut préfixer un X ou un V. Le chiffre préfixé ne peut apparaître qu'à la fin du nombre.

Or ta capture d'écran nous montre que CVV = 110 ce qui est impossible car l'occurrence V ne peut pas apparaitre deux fois !

Commentaire de tuckbess le 01/04/2010 22:48:26

Salut à toi, Pernotjln !

Donc, comme tu peux le voir, j'avais moi-même critiqué ce programme il y a de ça... 3ans, puisqu'à l'époque, je l'avais à faire en TP de C et ne savais pas coder.

Si tu veux apprendre à coder, je te conseille par exemple, [url]http://www.siteduzero.com/[/url] qui t'apprendras de bonnes bases pour réaliser un tel code, surtout si tu dois toi même le réaliser pour un TP ;)

Bon courage !

Commentaire de pernotjln le 02/04/2010 01:08:57

xD oui je suis dans la même galère que toi il y a 3 ans ^^ sa me travaille c'est 5 règles a incorporer dans ma fonction ! j'essaye de voir avec l'utilisation d'un try catch mais ce n'est pas facile ^^

J'espere que je ne t'est pas offensé et si c'est le cas je m'en excuse !
Sur ce je retourne a mon programme ...

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales