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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить значение функции http://www.cyberforum.ru/cpp-beginners/thread1101017.html
и 2 примерно если есть такие то напишите чтобы я понимал хоть с чего начинать!
C++ Написать программу вычисления выражения 2 задачи просто не знаю с чего начать!) http://www.cyberforum.ru/cpp-beginners/thread1101014.html
Исключить повторяющиеся символы в строке C++
Исключит повторяющиеся символы в строке
Удалить числа из файла, без использования дополнительных массивов и файлов C++
Всем привет, насколько я понимаю, само удаление из файла и не удаление вовсе, открываем файл и переписываем его в другой пропуская какую-то информацию, или еще проще перезаписать файл, а данные хранить в массиве например, и опять же часть информации пропустить. А вот как это сделать без использования дополнительных массивов и файлов? Я просто не понимаю, как можно обойтись без какого-либо...
C++ Упростить код вычисления трёх высот треугольника по трём сторонам http://www.cyberforum.ru/cpp-beginners/thread1100977.html
Здравствуйте! Имеется код вычисления трёх высот треугольника по трём сторонам. Можно ли упростить его использовав одну функцию общую (вместо трёх) для этих самых высот? #include <iostream> #include <math.h> using namespace std; double altitudeA(double , double , double , double); double altitudeB(double , double , double , double); double altitudeC(double , double , double , double);
C++ Функции getScoresOfSection, getWinner не выводят то что нужно Функции getScoresOfSection, getWinner не выводят то что нужно( Первая функция выводит средний балл секции, а вторая - инфу про победителя по секции) #include <iostream> #include <conio.h> using namespace std; enum section{football=1,basketball,atlethism}; struct competition{ подробнее

Показать сообщение отдельно
Ilot
Модератор
Эксперт С++
1788 / 1163 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
21.02.2014, 16:10     Перевод арабских чисел в римские
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Ilot, а наоборот можете?
Да как два пальца
Кликните здесь для просмотра всего текста
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
64
65
66
67
68
69
70
71
#include<iostream>
#include<string>
#include<algorithm>
using std::string;
 
/**
*       Parser - функция для анализа строки символов
*/
 
    int Parser(string&);
 
/**
*       func - функция возвращает величину соответствующую символу в римской системе
*/
 
    int func(char);
 
int main(int argc, char argv[]) {
    system("chcp 1251>0");
    std::cout << "Введите число в римской системе: ";
 
    string word;
    string metrics("MDCLXVI");
 
    std::cin >> word;
 
    if(word.end() == std::find_first_of(word.begin(), word.end(), metrics.begin(), metrics.end(), std::not_equal_to<char>())) {
        std::cerr << "Невозможно построить выражение для анализа!" << std::endl;
        exit(1);
    }
 
    std::cout << Parser(word) << std::endl;
 
    return 0;
}
int Parser(string& word)
{
    int result = 0;
    string::reverse_iterator iter = word.rbegin();
    int msg, current_msg = func(*iter);
    while(iter != word.rend()) {
        msg = func(*iter);
        /*  В этом месте необходима проверка на корректность положения символа в числе */
        result += (msg < current_msg)? - func(*iter): func(*iter);
        std::cout << result <<std::endl;    //Отладка
        if(msg > current_msg)
            current_msg = msg;
        ++iter;
    }
    return result;
}
int func(char msg)
{
    switch(msg)
    {
        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;
    }
}

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