Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 58, средняя оценка - 4.66
John_Stoth
Сообщений: n/a
#1

Перевод римских цифр в арабские - C++

05.05.2010, 10:04. Просмотров 7407. Ответов 3
Метки нет (Все метки)

Нужно написать программу перевода римских чисел в арабские. Есть эта программа на c#, но нужна на c++. Помогите пожалуйста, горю!
Вот эта программа на C#

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            String str = Console.ReadLine();
            int a = 0;
            for (int i = 0; i < str.Length; i++)
            {
                char ch = str[i];
                if (ch == 'M')
                    a += 1000;
                else if (ch == 'D')
                    a += 500;
                else if (ch == 'C')
                    a += 100;
                else if (ch == 'L')
                    a += 50;
                else if (ch == 'X')
                    a += 10;
                else if (ch == 'V')
                    a += 5;
                else if (ch == 'I')
                    a += 1;
            }
            Console.WriteLine("{0}", a);
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2010, 10:04     Перевод римских цифр в арабские
Посмотрите здесь:

Перевод римских чисел в арабские - C++
Доброй ночи всем. Нужны наиболее рациональные и простые в реализации идеи для решения задачи. Дан текст из заглавных латинских букв за...

Перевод римских чисел в арабские и наоборот - C++
Я в Си программирую недавно, помогите пожалуйста решить.... Разработать программу для перевода чисел, записанных римскими цифрами в...

Из римских чисел в арабские в файле - C++
Здравствуйте. Дана задача - в данном тексте заменить все римские числа на арабские. Вот я и не могу понять, каким образом в файловом потоке...

Перевод римские цифры в арабские и обратно - C++
Помогите решить задачу на C++ перевод римские цифры в арабские и обратно. PLEASE.

Печать римских цифр - C++
Друзья, помогите, пожалуйста. Второе задания

Проверрка ввода римских цифр - C++
Не знаю как реализовать следующее: Мы вводим римское число и программа отвечает, верно ли оно. Допустим V - верно, IIIIV - не верно

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
05.05.2010, 10:31     Перевод римских цифр в арабские #2
работает но странновато:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream> 
#include <conio.h> 
 
using namespace std; 
 
int main() 
{ 
     int i,j,res=0; 
     char mArray[10]={}; 
     int mTmp[10]={0,0,0,0,0,0,0,0,0,0}; 
     char Roma[]={'I','V','X','L','C','D','M',}; 
     int Arab[]={1,5,10,50,100,500,1000}; 
     cout<<"Please enter number::"<<'\t'; 
     cin.get(mArray,10); 
for (i=0; i<10; i++) 
for (j=0; j<13; j++) 
{ 
     if (mArray[i]==Roma[j]) 
     mTmp[i]=Arab[j]; 
} 
i=0; 
do 
{ 
     if (mTmp[i]>=mTmp[i+1]) 
     res=res+mTmp[i]; 
     if (mTmp[i] < mTmp[i+1]) 
     { 
      res=res+(mTmp[i+1]-mTmp[i]); 
      i++; 
     } 
     i++; 
} while (i<9); 
     cout<<" = "<< res; 
     getch(); 
     return 0; 
}
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
05.05.2010, 12:09     Перевод римских цифр в арабские #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//MS VS
#include "stdafx.h"
#include <iostream>
#include <string>
 
int get_arab_num(std::string rom_str)
{
    int res = 0;
    for(size_t i = 0; i < rom_str.length(); ++i)
    {
        switch(rom_str[i])
        {
        case 'M': 
            res += 1000;
            break;
        case 'D': 
            res += 500;
            break;
        case 'C':
            i + 1 < rom_str.length() 
                    &&  (rom_str[i + 1] == 'D' 
                         || rom_str[i + 1] == 'M') ? res -= 100 : res += 100;            
            break;
        case 'L': 
            res += 50;
            break;
        case 'X': 
            i + 1 < rom_str.length() 
                    &&  (rom_str[i + 1] == 'L' 
                         || rom_str[i + 1] == 'C') ? res -= 10 : res += 10;            
            break;
        case 'V': 
            res += 5;
            break;
        case 'I': 
            i + 1 < rom_str.length() 
                    &&  (rom_str[i + 1] == 'V' 
                         || rom_str[i + 1] == 'X') ? res -= 1 : res += 1;            
            break;
 
        }//switch
    }//for
    return res;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    std::string s;
    for(;;)
    {
        std::cout << "input roman num: ";
        std::cin >> s;
        std::cout 
            << "arab num = "
            << get_arab_num(s)
            << std::endl
            << std::endl;
    }
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2012, 16:48     Перевод римских цифр в арабские
Еще ссылки по теме:

Программа для перевода римских цифр С++ - C++
Написать программу для перевода римских цифр в арабские. тесты и результаты 1) CMXLVIII - 948 2) MCCLXIX -1269

Перевод цифр в буквы - C++
Всем привет и заранее спасибо! Нужно написать функцию, которая переводит цифры (от int z1 до z21) в буквы (от char ss1 до ss21) по...

Перевод арабских цифр в римские с++ - C++
Подскажите как перевести арабские цифры в римские... Например 12345 -&gt; I II III IV V Заранее спасибо

Арабские в римские - C++
Нужно написать прогу которая будет переводить арабские числа в римские В ходе поисков по форуму нашёл такую информацию #include...

преобразовать арабские числа в римские - C++
Ниже дан код, чтоб преобразовать арабские числа в римские! Не могли бы вы помочь и добавить сюда обратное преобразование? то есть если...

Перевод строки цифр произвольной длины во внутреннее двоичный код и обратно - C++
Необходимо написать функции, которые переводят строку цифр в двоичный код (во внутреннем представлении) и обратно. Например: char a =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Dzhos
5 / 5 / 0
Регистрация: 17.12.2010
Сообщений: 34
05.02.2012, 16:48     Перевод римских цифр в арабские #4
Мой вариант решения
похож на вариант выше

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include<iostream>
 
using namespace std;
 
int main (){
 
 
 
    char lat[100];
    int count = 0 ;
    
    cin.getline(lat,100);
    
    for (int i = 0; i < strlen(lat);i++){
    
        switch(lat[i]){
        
         case 'M': 
            count += 1000;
            break;
        case 'D': 
            count += 500;
            break;
        case 'C':
                   
            if ( i+1 < strlen(lat) && (lat[i + 1] == 'D' || lat[i + 1] == 'M' ) )
                count -= 100;
            else 
                count += 100;
            break;
        case 'L': 
            count += 50;
            break;
        case 'X': 
            if (i+1 < strlen(lat) && (lat[i + 1] == 'L' || lat[i + 1] == 'C' || lat[i + 1] == 'M')  )
                count -= 10;
            else 
                count += 10;
                  
            break;
        case 'V': 
            count += 5;
            break;
        case 'I': 
           if (i+1 < strlen(lat) && (lat[i + 1] == 'V' || lat[i + 1] == 'X' || lat[i + 1] == 'C'))
                count -= 1;
           else count +=1;
                       
            break;
 
        }
        
    
    }
 
    cout << count << endl;
 
    system("pause");
    return EXIT_SUCCESS;
 
 
 
}
Yandex
Объявления
05.02.2012, 16:48     Перевод римских цифр в арабские
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru