Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2013, 10:47   #1
AJIu6eK
Новичок
Джуниор
 
Регистрация: 28.05.2013
Сообщений: 2
Печаль Программа для перевода языка Java в C++

Сторонники языков 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!»

Не сделаю задачу до завтра выкинут из колледжа и это будет печально прошу помощи
AJIu6eK вне форума Ответить с цитированием
Старый 28.05.2013, 11:00   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

а на каком языке писать то? в чем реализовать... и цена вопроса?
p.s. призыв то закончился уже почти... чего бояться то)
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 28.05.2013, 11:05   #3
AJIu6eK
Новичок
Джуниор
 
Регистрация: 28.05.2013
Сообщений: 2
По умолчанию

Написать нужно на C++, программа выглядит так я запускаю программу ввожу формат написания Java "longAndMnemonicIdentifier" а выводится формат C++ "long_and_mnemonic_identifier" и наоборот
AJIu6eK вне форума Ответить с цитированием
Старый 28.05.2013, 11:23   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

для поиска нижнего подчеркивания
Есть такая функция в библиотеке вроде как<string.h>, определена следующим образом:
Код:
char *strstr(srting1,string2);
//char *string1; поисковая строка
//char *string2; строка-шаблон
Функция strstr возвращает указатель на string1, если
string1 обнаружена, и NULL - если string1 нет.

для проверки на регистр
немного изобретательности проявим
сперва понижаем регистр, затем сверяем полученое с тем что было
Код:
string str = "a1231ASDASDDKKLDKLakldadad"; 
transform(str.begin(), str.end(), str.begin(), tolower);
необходимая библиотека для transform - #include <algorithm>

и собственно стравнение строк
Функция strcmp

Код:
#include ‘string.h’
int strcmp(const char *str1, const char *str2);
Функция strcmp() сравнивает в лексикографическом порядке две строки и возвращает целое значение, зависящее следующим образом от результата сравнения.
Значение Результат сравнения строк
Меньше нуля str1 меньше str2
Нуль str1 равен str2
Больше нуля str1 больше str2

сперва понижаем регистр, затем сравниваем исходную строку и строку с пониженым регистром, если одинаково - значит и был пониженый, если нет - был где то повышеный
//============================
тебе лишь рассмотреть все случаи и выдать по ним ответ...
если с нижним подчеркиванием и с большой есть - ерор

если все с маленькой и нету нижних подчеркивание - тут как бы тоже ерор, но наверное лучше вывести что и туда и туда норм...

остальное думаю ясно из формата самих языковых переменных что и как
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для перевода кода с Паскаля на с++ xpams Паскаль, Turbo Pascal, PascalABC.NET 1 26.04.2012 19:26
Программа для перевода из 4-ичной СС в 5-ичную (с ограничением ввода цифр) -=Andriushka=- Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 04.10.2011 10:59
программа для перевода из инфиксной формы записи в постфиксную Diana888 Помощь студентам 0 01.10.2009 23:15
программа для перевода из инфиксной формы записи в постфиксную Diana888 Общие вопросы C/C++ 0 01.10.2009 23:06
Программа для перевода из 16-ной с/c в 2-ную fult Паскаль, Turbo Pascal, PascalABC.NET 0 05.05.2009 21:57