Scrie un program pascal care convertește cifrele arabe (0, 1 2 3 4 5 6 7 8 9) in cifre romane va rog urgent dau coroana
Răspunsuri la întrebare
Salut, imi cer scuze ca nu te pot ajuta mai mult, insa nu am timp. Am am un tip de algortim gata facut pentru altcineva, insa in C++. care converteste din romane in arabe:
#include <iostream>
#include <cstring>
using namespace std;
int main(){
char s[10];
int n=0, i;
cout<<"Numar roman: "; cin>>s;
i=strlen(s);
cout<<i<<endl;
do{
if(s[i-1]=='I'){ n=n+1; i--;}
if(s[i-1]=='V'&&s[i-2]=='I'){ n=n+4; i=i-2;}
else if(s[i-1]=='V'){ n=n+5; i--;}
if(s[i-1]=='X'&&s[i-2]=='I'){ n=n+9; i=i-2;}
else if(s[i-1]=='X'){ n=n+10; i--;}
if(s[i-1]=='L'&&s[i-2]=='X'){ n=n+4; i=i-2;}
else if(s[i-1]=='L'){ n=n+50; i--;}
if(s[i-1]=='C'&&s[i-2]=='X'){ n=n+90; i=i-2;}
else if(s[i-1]=='C'){ n=n+100; i--;}
if(s[i-1]=='D'&&s[i-2]=='C'){ n=n+400; i=i-2;}
else if(s[i-1]=='D'){ n=n+500; i--;}
if(s[i-1]=='M'&&s[i-2]=='C'){ n=n+900; i=i-2;}
else if(s[i-1]=='M'){ n=n+1000; i--;}
}while(i>0);
cout<<"Nr arab: "<< n;
}
Tot ce trebuie sa faci tu, cred, este sa inlocuiesti caracterele cu numere ex: s[i-1]=='I' ar trebui sa fie s==1 (aici ai doua optiuni: fie desfaci numarul prin alte metode, fie folosesti un vector si mergi pe metoda cu s[i-1]==x) si construiesti numarul roman prin concatenare.