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

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

Войти
Регистрация
Восстановить пароль
 
AJIu6eK
1 / 1 / 0
Регистрация: 28.05.2013
Сообщений: 15
#1

Создать прогу для перевода языка Java в C++ - C++

28.05.2013, 10:52. Просмотров 599. Ответов 2
Метки нет (Все метки)

Сторонники языков Java и C++ часто спорят о том, какой язык лучше для решения олимпиадных задач. Одни говорят, что в Java есть масса полезных библиотек для работы со строками, хорошо реализованы механизмы чтения и вывода данных, а так же радует встроенные возможности для реализации длинной арифметики. С другой стороны, С++ является классическим языком, скорость выполнения программ благодаря существующим компиляторам (например, Intel Compiler 10.0) гораздо выше, чем у Java.

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

В языке Java принято первое слово, входящее в название переменной записывать с маленькой латинской буквы, следующее слово идет с большой буквы (только первая буква слова большая), слова не имеют разделителей и состоят только из латинских букв. Например, правильные записи переменных в Java могут выглядеть следующим образом: javaIdentifier, longAndMnemonicIdentifier, name, nEERC.

В языке C++ для описания переменных используются только маленькие латинские символы и символ «_», который отделяет непустые слова друг от друга. Примеры: java_identifier, long_and_mnemonic_identifier, name, n_e_e_r_c.

Вам требуется написать программу, которая преобразует переменную, записанную на одном языке в формат другого языка.

задано наименование переменной длиной не более 100 символов.

требуется вывести аналог имени переменной в другом языке. Т.е. если переменная представлена в формате Java, то следует перевести в формат C++ и наоборот. В том случае, когда имя переменной не соответствует ни одному из вышеописанных языков, следует вывести «Error!»

Прошу помощи у вас великие умы, если завтра не сдам задачу выкинут из колледжа (
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2013, 10:52     Создать прогу для перевода языка Java в C++
Посмотрите здесь:

массивы в С++ не могу создать прогу C++
C++ Программа для перевода валют
C++ Попытка создать первую прогу на языке С++ в Microsoft Visual Studio
C++ Создать класс для перевода полярных координат в декартовы
Составить программы для перевода арабских чисел в римские и для обратной операции C++
Как создать прогу на С++ C++
Программа для перевода чисел C++
создать прогу вичисления площади интеграла C++
C++ создать прогу вичисления площади интеграла
C++ Программа для перевода текста
Программа для перевода числа C++
C++ Создать таблицу перевода расстояний в дюймах в сантиметры для значений от 1 до 12 дюймов с шагом 0,5

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.05.2013, 11:13     Создать прогу для перевода языка Java в C++ #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
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <iostream>
#include <sstream>
#include <algorithm>
#include <cctype>
int get_language( const std::string& str ) {
    if ( str.size() == 0)
        return 0;
        
    bool _ = false;
    bool A = false;
    bool error = false;
    for (size_t i = 0; i < str.size() ; ++i)
    {
        if (str[i] == '_')
        {
            _ = true;
            if (i && str[i - 1] == '_')
                error = true;
        }
        
        if ( isupper(str[i] ) )
            A = true;
    }
    
    if (str[0] == '_' || isupper(str[0] ) )
        error = true;
    
    if (str[str.size() - 1] == '_' )
        error = true;
    
    if (_ && A)
        error = true;
    
    if (error)
        return 0;
    
    if (_)
        return 1;
    if (A)
        return -1;
    
    return 2;
}
 
std::string java_to_cpp(std::string str ) {
    for (std::string::iterator it = str.begin() ; it < str.end(); ++it)
    {
        if (isupper(*it) )
        {
            *it = tolower(*it);
            it = str.insert(it, '_');
        }
    }
    return str;
}    
 
std::string cpp_to_java( std::string str ) {
    for (std::string::iterator it = str.begin() ; it < str.end() ; ++it)
    {
        if (*it == '_')
        {
            it = str.erase(it);
            *it = toupper(*it);
        }
    }
    return str;
}
 
int main() {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    std::string str;
    std::cin >> str;
    switch (get_language(str) )
    {
        case -1 :
            std::cout << java_to_cpp(str) << std::endl;
            break;
        case 0 :
            std::cout << "Error!\n";
            break;
        case 1 :
            std::cout << cpp_to_java(str) << std::endl;
            break;
        case 2 : 
            std::cout << str;
            break;
        default :
            return 1;
    }
}
AJIu6eK
1 / 1 / 0
Регистрация: 28.05.2013
Сообщений: 15
30.05.2013, 13:17  [ТС]     Создать прогу для перевода языка Java в C++ #3
diagon, если тебе не сложно ты бы не мог расписать немного по коментам что где и как? ато есть несколько моментов в коде которые я не понимаю
Yandex
Объявления
30.05.2013, 13:17     Создать прогу для перевода языка Java в C++
Ответ Создать тему
Опции темы

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