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

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

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

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

28.05.2013, 10:52. Просмотров 641. Ответов 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!»

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

Создать класс для перевода полярных координат в декартовы - C++
Класс CPtoD для перевода полярных координат в декартовы. Свойства класса: • угол в радианах rad; • координата х; • координата у. ...

Найти ошибку в коде после перевода с языка Pascal - C++
nmcf, #include <iostream> #include<stdio.h> #include <cstdlib> using namespace std; #include "stdafx.h" div_t c,r; int...

Создать таблицу перевода расстояний в дюймах в сантиметры для значений от 1 до 12 дюймов с шагом 0,5 - C++
Я думал сделать так, но это будет долго.Есть способ полегче? #include <stdio.h> #include <locale.h> #include <limits.h> #include...

Перевести кода с языка Java - C++
Помогите пожалуйста, перевести из java в с++. Будьте добры. Вот код java: package beginning; import java.util.Scanner; ...

Как создать прогу на С++ - C++
Возможно я неправильно вопрос сформулировал. Но вот уже больше года работаю на С++, но так до сих пор и не знаю как мне сделать программу,...

массивы в С++ не могу создать прогу - C++
Дали задание уже 3 день не могу решить Даны два одномерных массива до 100 значений каждый, создать новый массив из элементов тех...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.05.2013, 11:13 #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;
    }
}
1
AJIu6eK
1 / 1 / 0
Регистрация: 28.05.2013
Сообщений: 15
30.05.2013, 13:17  [ТС] #3
diagon, если тебе не сложно ты бы не мог расписать немного по коментам что где и как? ато есть несколько моментов в коде которые я не понимаю
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2013, 13:17
Привет! Вот еще темы с ответами:

Нужно создать программу перевода файлов с английского на русский - C++
нужно создать программу перевода файлов с английского на руский я ваще дерево и не знаю как это сделать( Добавлено через 27 секунд в...

создать прогу вичисления площади интеграла - C++
нужно вычислить определенный интеграл тремя методами: трапеции, симпсона и триугольника за функцией 0.5х в кубе

создать прогу вичисления площади интеграла - C++
нужно вычислить определенный интеграл тремя методами за функцией 0.5х в кубе

Создать функцию для обработки символьных строк. За образец брать библиотечные функции обработки строк языка С, но не применять их в своей функции - C++
Доброго времени суток! Крайне необходима помощь экспертов в С++! Кто может - не оставьте меня в беде))) Вот задания: 3. Создать...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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