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

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

Восстановить пароль Регистрация
 
AJIu6eK
1 / 1 / 0
Регистрация: 28.05.2013
Сообщений: 15
28.05.2013, 10:52     Создать прогу для перевода языка Java в C++ #1
Сторонники языков 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++ Попытка создать первую прогу на языке С++ в Microsoft Visual Studio
Составить программы для перевода арабских чисел в римские и для обратной операции C++
Как создать прогу на С++ C++
C++ Создать функцию для обработки символьных строк. За образец брать библиотечные функции обработки строк языка С, но не применять их в своей функции
создать прогу вичисления площади интеграла C++
C++ создать прогу вичисления площади интеграла
Литература для создания элементарного языка управляющих сигналов и интерпретатора для него C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 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++
Ответ Создать тему
Опции темы

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