Programme convertissant des nombres décimaux en nombres romains

Programme convertissant des nombres décimaux en nombres romains - Delphi/Pascal - Programmation

Marsh Posté le 07-05-2006 à 18:51:48    

Je suis en premiere année de DUT mesures physiques et dans le cadre d'un projet informatique, nous devons faire un programme permettant de transcrire des nombres décimaux, de 1 à 3999, en chiffres romains. Le problème est que nous avons fais le programme sur la base d'un changement de variables, mais celui ci ne fonctionne pas. Pourriez vous voir les erreurs svp ... Ca me serait d'une GRANDE aide ... MErci ;)   Si vous avez des propositions, bertandrider@hotmail.com
 

Citation :


{Programme permettant de convertir un nombre décimal en nombre romain}
program conversion;
 .
 
var
 
nb:intger; {nombre decimal}
I,V,X,L,C,D,M:char;  
a,b,f:char;
n:integer;  
j,g,h,t,w,e,o,p,q,r,s:integer
 
procedure convers(n:integer;a,b,f:char);  
 
begin
case n of  
l:write(a);  
2:write(a,a);  
3:write(a,a,a);  
4:write(a,b);  
5:write (b);
6:write(b,a);  
7:wriLe(b,a,a);  
8:write{b,a,a,a);  
9:write{a,f);  
end;
 
end;
 
procedure unite(nb:integer);
var a,b, f:char;
begin     a: =’I’ ;
 b: =’V’ ;
 f: =’X’;
convers(nb,a,b,f);
end;
 
procedure dizaine(nb:integer);
var a,b,f:char;  
begin     a:='X';
    b:='L';
    f :='C';
 convers(nb,a,b,f);
end;
 
procedure centaine(nb:integer);  
var a,b,f:char;
begin    
            a:='C';
            b:='D';
            f:='M' ;
 convers(nb,a,b,f);
end;
 
procedure mille(nb:integer);  
var a:char;
begin  
            a: ='M' ;  
            convers(nb,a,b,f);  
end;
 
begin
 
writeln('Entrez le nombre entier a convertir');  
read (nb);
 
if O>nb
then writeln('l operation est impossible');
 
if 4000<=nb
then writeln('l operation est impossible');
 
if (l<-nb) and (nb<10)
then unite(nb)
else  if(l0<=nb)and(nb<100)
then
        begin
           dizaine(nb);  
           unite (nb) ;
        end ;
else  if (100<=nb) and (nb<1000)
  then  
        begin r:=nb div 100;
                          r:=centaine(nb);
                          g:=:nb mod 100;
                          s:=g div 10 ;
                          g:= dizaine(nb);  
                          q:=s mod 10;
                          q:=unite(nb);
 
        end
 
else if (lOOO<=nb)and(nb<3999)
then  
begin  
e:=nb div 1000;  
e:= mille (nb) ;
h:=nb mod 1000;
n:= h div 100;
n:= centaine(nb);
j:=h mod 100;
t:=j div 10;
t:= dizaine(nb) ;
w:=j mod 10;
w:= unite(nb);  
end;
 
end.
 


Message édité par berttt le 07-05-2006 à 18:52:47
Reply

Marsh Posté le 07-05-2006 à 18:51:48   

Reply

Marsh Posté le 07-05-2006 à 20:53:39    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed