{"id":18303472,"url":"https://github.com/yawkar/extended-expressions-parser-calculator","last_synced_at":"2025-04-09T10:17:49.343Z","repository":{"id":138620897,"uuid":"449047660","full_name":"YawKar/extended-expressions-parser-calculator","owner":"YawKar","description":"(Student Lab Project) Первая проба пера в создании калькулятора, строящего вычислительный граф на основе спарсенных выражений и вычисляющего значение главного выражения","archived":false,"fork":false,"pushed_at":"2022-02-09T17:51:28.000Z","size":45,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-15T04:26:31.802Z","etag":null,"topics":["calculator","laboratory-work","parser"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YawKar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-17T21:02:20.000Z","updated_at":"2022-08-18T05:15:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"5c904fa8-ddc0-46c8-9360-ab0c779a2e6e","html_url":"https://github.com/YawKar/extended-expressions-parser-calculator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YawKar%2Fextended-expressions-parser-calculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YawKar%2Fextended-expressions-parser-calculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YawKar%2Fextended-expressions-parser-calculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YawKar%2Fextended-expressions-parser-calculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YawKar","download_url":"https://codeload.github.com/YawKar/extended-expressions-parser-calculator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248018098,"owners_count":21034052,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calculator","laboratory-work","parser"],"created_at":"2024-11-05T15:25:46.027Z","updated_at":"2025-04-09T10:17:49.278Z","avatar_url":"https://github.com/YawKar.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# extended-expressions-parser-calculator\n\n## Кратко\nПрограмма получает основное выражение и дополнительные объявления переменных, парсит их и на основе них строит вычислительный граф, значение корня которого затем высчитывается и выводится обратно.\n\n## Базовый пример \n\u003cb\u003eВыражение:\u003c/b\u003e\u003cbr\u003e\nsin(x) ^ 2 + cos(x) ^ 2\u003cbr\u003e\n\u003cb\u003eПеременные:\u003c/b\u003e\u003cbr\u003e\nx = a + b\u003cbr\u003e\na = 13\u003cbr\u003e\nb = sqrt(54)\u003cbr\u003e\n\u003cb\u003eВычисленное значение:\u003c/b\u003e\u003cbr\u003e\n1.000000\u003cbr\u003e\n\n## Функционал (✅ - реализовано)\n\u003col type='1'\u003e\n  \u003cli\u003e✅ Поддержка чисел в выражениях\n    \u003col type='1'\u003e\n      \u003cli\u003e❌ Расширение чисел до множества комплексных\u003c/li\u003e\n    \u003c/ol\u003e\n  \u003c/li\u003e\n  \u003cli\u003e✅ Поддержка математических констант в выражениях\n    \u003col type='1'\u003e\n      \u003cli\u003e✅ Число 'PI'\u003c/li\u003e\n      \u003cli\u003e✅ Число Эйлера 'e'\u003c/li\u003e\n    \u003c/ol\u003e\n  \u003c/li\u003e\n  \u003cli\u003e✅ Поддержка бинарных операторов в выражениях\n    \u003col type='1'\u003e\n      \u003cli\u003e✅ ^ (возведение в степень)\u003c/li\u003e\n      \u003cli\u003e✅ * (умножение)\u003c/li\u003e\n      \u003cli\u003e✅ / (деление)\u003c/li\u003e\n      \u003cli\u003e✅ + (сложение)\u003c/li\u003e\n      \u003cli\u003e✅ - (вычитание)\u003c/li\u003e\n    \u003c/ol\u003e\n  \u003c/li\u003e\n  \u003cli\u003e✅ Поддержка своих переменных в выражениях\u003c/li\u003e\n  \u003cli\u003e❌ Поддержка своих (custom) функций в выражениях\n    \u003col type='1'\u003e\n      \u003cli\u003e❌ Реализация контекста функции для хранения переменных текущей области видимости\u003c/li\u003e\n      \u003cli\u003e❌ Реализация доступа к переменным более высоких контекстов (доступ к глобальной переменной, замыкание)\u003c/li\u003e\n    \u003c/ol\u003e\n  \u003c/li\u003e\n  \u003cli\u003e✅ Поддержка стандартного перечня функций в выражениях\n    \u003col type='1'\u003e\n      \u003cli\u003e✅ cos()\u003c/li\u003e\n      \u003cli\u003e✅ sin()\u003c/li\u003e\n      \u003cli\u003e✅ tg()\u003c/li\u003e\n      \u003cli\u003e✅ ctg()\u003c/li\u003e\n      \u003cli\u003e✅ log()\u003c/li\u003e\n      \u003cli\u003e✅ ln()\u003c/li\u003e\n      \u003cli\u003e✅ sqrt()\u003c/li\u003e\n      \u003cli\u003e✅ pow()\u003c/li\u003e\n      \u003cli\u003e✅ abs()\u003c/li\u003e\n      \u003cli\u003e✅ exp()\u003c/li\u003e\n    \u003c/ol\u003e\n  \u003cli\u003e❌ Поддержка функций для работы с комплексными числами\n    \u003col type='1'\u003e\n      \u003cli\u003e❌ real() (комплексные числа)\u003c/li\u003e\n      \u003cli\u003e❌ imag() (комплексные числа)\u003c/li\u003e\n      \u003cli\u003e❌ mag() (комплексные числа)\u003c/li\u003e\n      \u003cli\u003e❌ phase() (комплексные числа)\u003c/li\u003e\n    \u003c/ol\u003e\n  \u003c/li\u003e\n  \u003cli\u003e❌ Вывод вычислительного графа в виде обратной польской нотации\u003c/li\u003e\n\u003c/ol\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyawkar%2Fextended-expressions-parser-calculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyawkar%2Fextended-expressions-parser-calculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyawkar%2Fextended-expressions-parser-calculator/lists"}