Консольный калькулятор (проект): различия между версиями
Перейти к навигации
Перейти к поиску
Katya (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
| Строка 1: | Строка 1: | ||
===== Heading text ===== | |||
{{Карточка_проекта | {{Карточка_проекта | ||
|name=Консольный калькулятор | |name=Консольный калькулятор | ||
|mentor=Архангельский Сергей | |mentor=Архангельский Сергей | ||
|mentor_login={{URLENCODE:Vertix|WIKI}} | |mentor_login={{URLENCODE:Vertix|WIKI}} | ||
| Строка 7: | Строка 8: | ||
|summer= | |summer= | ||
|categorize=yes | |categorize=yes | ||
|is_archived= | |||
|is_remote=yes | |||
}} | }} | ||
Версия от 16:14, 19 января 2015
Heading text
| Ментор | Архангельский Сергей |
| Учебный семестр | Весна 2015 |
| Учебный курс | 1-й курс |
| Внимание! Данный проект ведется удаленно. |
Что это за проект?
Консольная утилита, позволяющая производить базовые арифмитические операции.
Чему вы научитесь?
- Основам теории синтаксического анализа формальных языков
- Работе с консолью внутри приложения
Какие начальные требования?
- Начальное владение одним из языков: Python, C++, go.
- Готовность к самостоятельной работе.
Какие будут использоваться технологии?
Те, которые предполагаются форматом проектного семинара, git, github, возможно среды разработки.
Темы вводных занятий
- Формальные грамматики. Лексический и синтаксический разбор.
Направления развития
- Реализация полноценного интерпретатора своего собственного языка программирования
Критерии оценки
- Удовлетворительно: Поддержка арифметических действий (сложение, вычитание, умножение, деление, возведение в степень), скобочных выражений, базовых математических функций (логарифм, тригонометрия). Поддержка именованных переменных присваивание и использование в выражении. Поддержка режима чтения со стандартного входа.
- Хорошо: Поддержка навигации по истории команд (нажатие кнопки вверх -- предыдущая команда, вниз -- последующая). Поддержка автодополнения (нажатие TAB -- предлагается список допустимых лексем, если только одна, то она автоматически подставляется)
- Отлично: Поддержка символьных выражений (когда один из операндов задан как некая переменная, пример: 2x + 3y). Реализация раскрытия скобок (например (2x + 3y) * (4x + 1) -> 8x^2 + 2x + 12xy + 3y)