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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.08.2014, 11:49   #1
УвасНовичок
Новичок
Джуниор
 
Регистрация: 12.08.2014
Сообщений: 2
По умолчанию Подскажите новичку - как начать заниматься Java программированием под платформу Андроид

Здравствуйте. Хочу начать заниматься Java программированием под платформу Андроид. Ранее язык java не изучал. Подскажите пожалуйста с чего начать вообще ? Может какие книги посоветуете почитать или что то в этом роде...
Получил вот тестовое задание, а не знаю с чего начать:
требуется разработать консольное приложение Java, интерпритирующие математические выражения. Должны поддерживаться арифметические операции, функции(синус, косинус и exp), а так же константы (PI, e). Между операторами и скобками может быть произвольное число пробелов или не быть. Входные данные: строка с матем выражением. Выходные данные: результат с точность вычисления до 5 знака.

Всем буду благодарен за помощь и подсказки
УвасНовичок вне форума Ответить с цитированием
Старый 12.08.2014, 11:59   #2
mirkul
Пользователь
 
Регистрация: 16.07.2014
Сообщений: 62
Радость

Я советую прочитать:
Герберт Шилдт Полный справочник по Java. 7-e издание
http://mirknig.com/knigi/programming...e-izdanie.html

Вот книги:
http://rutracker.org/forum/viewtopic.php?t=425989
mirkul вне форума Ответить с цитированием
Старый 12.08.2014, 12:14   #3
УвасНовичок
Новичок
Джуниор
 
Регистрация: 12.08.2014
Сообщений: 2
По умолчанию

Спасибо большое за совет

Последний раз редактировалось УвасНовичок; 12.08.2014 в 13:32.
УвасНовичок вне форума Ответить с цитированием
Старый 14.08.2014, 11:03   #4
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Это задача на построение синтаксического дерева разбора, то есть на разработку очень крутого , правильного и точного способа решения. Читайте книгу Седжвика по алгоритмам, а книгу Шилдта на помойку выбросите, так как книга Шилдта при решении этой задачи не поможет. Задача по сложности запредельная.

Роберт Седжвик, Кевин Уэйн Алгоритмы на Java, 4-е издание ... ISBN 978-5-8459-1781-2;
http://www.ozon.ru/context/detail/id/18319699/
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"

Последний раз редактировалось challengerr; 14.08.2014 в 11:13.
challengerr вне форума Ответить с цитированием
Старый 14.08.2014, 12:25   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
интерпритирующие математические выражения.
Этап 1. Перевод строки в польскую обратную запись. (синтаксический разбор).
Алгоритмы перевода математических выражений есть в нете (да и на форуме есть ссылки на информацию)

Этап 2. "простой" вычислитель данных полученных на первом этапе. обеспечивающий все требуемые функции
Цитата:
Должны поддерживаться арифметические операции, функции(синус, косинус и exp), а так же константы (PI, e).
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 14.08.2014, 12:32   #6
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию Реализация языка программирования

Это не "простой вычислитель", а реализация языка программирования. Здесь нужно построить грамматику и конечный автомат. Для синтаксического разбора нужно реализовать дерево синтаксического разбора. Деревья изучаются "Дискретная математика для программистов". Конечные автоматы рассматриваются в книге Ахо, Хопкрофта, Ульмана.

Ахо, Альфред, В., Хопкрофт, Джон, Ульман, Джеффри, Д. Структуры данных и алгоритмы = Data Structures and Algorithms. — Издательский дом «Вильямс», 2000. — С. 384. — ISBN 5-8459-0122-7 (рус.) / ISBN 0-201-00023-7 (англ.)
Хопкрофт, Джон, Мотвани, Раджив, Ульман, Джеффри, Д. Введение в теорию автоматов, языков и вычислений = Introduction to Automata Theory, Languages, and Computation. — М.: «Вильямс», 2002. — С. 528. — ISBN 0-201-44124-1
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 14.08.2014, 13:11   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Это не "простой вычислитель", а реализация языка программирования.
у нас не программа, а "простое" математическое выражение
- нет множества операторов (есть ровно один оператор, наше выражение)
- нет переменных
- нет задаваемых функций (только стандартные и определенные на этапе постановки задачи).
- нет никаких произвольно именованных данных (только строго заданные имена стандартных функций(sin, cos, ...) и констант(Pi, E, ..)

есть одно(!) математическое выражение в инфиксной форме содержащее
- числа;
- константы(Pi, e);
- знаки математических операций(имеются в виду арифметические(!) +-*/);
- скобки(в тз кстати это не прописано, но отнесем их к математическим операциям);
- математические функции (sin, cos, exp), а ведь это тоже математические операции.

Задача: Вычислить значение(!) выражения.
Цитата:
Для синтаксического разбора нужно реализовать дерево синтаксического разбора.
кто бы спорил, но вот дерево в данном конкретном случае (инфиксная форма -> обратная польская) достаточно простое и хорошо разобранное на просторах нета. (хотя у новичков часты вопросы из-за того что в примерах НЕ используют многозначные числа да и другие многосимвольные значения) .
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Литература, с которой стоит начать знакомство с программированием. Krivoshter Обсуждение статей 7 18.02.2013 23:46
Как сделать маскировку под андроид? спааать Операционные системы общие вопросы 1 04.08.2011 14:45
Ищу программиста под платформу Windows Mobile Mitril Фриланс 4 10.06.2011 04:23
Подскажите пожалуйста новичку в С++ как написать программку saratovalex Помощь студентам 3 21.08.2008 11:06
подскажите с чего начать новичку ben95 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 14.05.2008 15:02