Консольный калькулятор (проект) — различия между версиями
Материал из Wiki - Факультет компьютерных наук
Vertix (обсуждение | вклад) (Новая страница, с помощью формы Новый_проект) |
|||
(не показано 6 промежуточных версии 4 участников) | |||
Строка 1: | Строка 1: | ||
{{Карточка_проекта | {{Карточка_проекта | ||
− | |name=Консольный калькулятор | + | |name=Консольный калькулятор |
|mentor=Архангельский Сергей | |mentor=Архангельский Сергей | ||
|mentor_login={{URLENCODE:Vertix|WIKI}} | |mentor_login={{URLENCODE:Vertix|WIKI}} | ||
Строка 7: | Строка 7: | ||
|summer= | |summer= | ||
|categorize=yes | |categorize=yes | ||
+ | |is_archived=yes | ||
+ | |is_remote= | ||
}} | }} | ||
− | |||
=== Что это за проект? === | === Что это за проект? === | ||
− | Консольная утилита позволяющая производить базовые арифмитические операции. | + | Консольная утилита, позволяющая производить базовые арифмитические операции. |
=== Чему вы научитесь? === | === Чему вы научитесь? === | ||
Строка 18: | Строка 19: | ||
=== Какие начальные требования? === | === Какие начальные требования? === | ||
* Начальное владение одним из языков: Python, C++, go. | * Начальное владение одним из языков: Python, C++, go. | ||
− | * Готовность самостоятельной работе. | + | * Готовность к самостоятельной работе. |
=== Какие будут использоваться технологии? === | === Какие будут использоваться технологии? === | ||
Строка 33: | Строка 34: | ||
* Хорошо: Поддержка навигации по истории команд (нажатие кнопки вверх -- предыдущая команда, вниз -- последующая). Поддержка автодополнения (нажатие TAB -- предлагается список допустимых лексем, если только одна, то она автоматически подставляется) | * Хорошо: Поддержка навигации по истории команд (нажатие кнопки вверх -- предыдущая команда, вниз -- последующая). Поддержка автодополнения (нажатие TAB -- предлагается список допустимых лексем, если только одна, то она автоматически подставляется) | ||
* Отлично: Поддержка символьных выражений (когда один из операндов задан как некая переменная, пример: 2x + 3y). Реализация раскрытия скобок (например (2x + 3y) * (4x + 1) -> 8x^2 + 2x + 12xy + 3y) | * Отлично: Поддержка символьных выражений (когда один из операндов задан как некая переменная, пример: 2x + 3y). Реализация раскрытия скобок (например (2x + 3y) * (4x + 1) -> 8x^2 + 2x + 12xy + 3y) | ||
+ | |||
+ | === Дополнительные ссылки === | ||
+ | * [https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0 Формальная грамматика] | ||
+ | * [https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7#.D0.A2.D0.B8.D0.BF.D1.8B_.D0.B0.D0.BB.D0.B3.D0.BE.D1.80.D0.B8.D1.82.D0.BC.D0.BE.D0.B2 Алгоритмы синтаксического анализа] |
Текущая версия на 22:08, 19 января 2015
Ментор | Архангельский Сергей |
Учебный семестр | Весна 2015 |
Учебный курс | 1-й курс |
Внимание! Данный проект находится в архиве и реализован не будет. |
Что это за проект?
Консольная утилита, позволяющая производить базовые арифмитические операции.
Чему вы научитесь?
- Основам теории синтаксического анализа формальных языков
- Работе с консолью внутри приложения
Какие начальные требования?
- Начальное владение одним из языков: Python, C++, go.
- Готовность к самостоятельной работе.
Какие будут использоваться технологии?
Те, которые предполагаются форматом проектного семинара, git, github, возможно среды разработки.
Темы вводных занятий
- Формальные грамматики. Лексический и синтаксический разбор.
Направления развития
- Реализация полноценного интерпретатора своего собственного языка программирования
Критерии оценки
- Удовлетворительно: Поддержка арифметических действий (сложение, вычитание, умножение, деление, возведение в степень), скобочных выражений, базовых математических функций (логарифм, тригонометрия). Поддержка именованных переменных присваивание и использование в выражении. Поддержка режима чтения со стандартного входа.
- Хорошо: Поддержка навигации по истории команд (нажатие кнопки вверх -- предыдущая команда, вниз -- последующая). Поддержка автодополнения (нажатие TAB -- предлагается список допустимых лексем, если только одна, то она автоматически подставляется)
- Отлично: Поддержка символьных выражений (когда один из операндов задан как некая переменная, пример: 2x + 3y). Реализация раскрытия скобок (например (2x + 3y) * (4x + 1) -> 8x^2 + 2x + 12xy + 3y)