Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Написать простейший язык програмирования

15K
15 января 2006 года
Sandro_SD
3 / / 15.01.2006
Вот такую дали индивидуалку, надо зделать, сам если чесно не соображаю после праздников, да ещё и сессия в самом разгаре, посовтовали ваш форум, сказали "тебе там точно помогут!" Если не тяжело, посмотрите, может сможете помочь...

Написать программу - простейший язык програмирования. Необходимо реализовать следую щие функции:
- присваивание значений
- основные арифметические операции
- вывод результата
- сохранение в файл
- чтение из файла
Примеры:
а=5 операция присваивания
В? команда вывода
В=35 вывод результата
В=а*с-15 математические функции

С использованием динамических структур, двунаправленных списков. Желательно на делфи, можно и на паскале .

Заранее спасибо.
241
17 января 2006 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
Originally posted by Sandro_SD
Вот такую дали индивидуалку ... Если не тяжело, посмотрите, может сможете помочь...

Написать программу - простейший язык програмирования. Необходимо реализовать следую щие функции:
- присваивание значений
- основные арифметические операции
- вывод результата
- сохранение в файл
- чтение из файла
Примеры:
а=5 операция присваивания
В? команда вывода
В=35 вывод результата
В=а*с-15 математические функции

С использованием динамических структур, двунаправленных списков. Желательно на делфи, можно и на паскале .

Заранее спасибо.



Заранее пожалуйста! Нужен парсер текста, и нужен некий исполнительный модуль. Я бы делал интерпретатор команд, и пускай он себе парсит текстовый файл, после чего выдаёт результат. Про парсинг можешь прочитать хотя бы здесь , там книжка лежит. Там же можно и про компиляторы поискать. Ещё посмотри здесь и здесь. Может, будет полезно. Успехов!

15K
18 января 2006 года
Sandro_SD
3 / / 15.01.2006
Спасибо за ссылки, но я думаю что всё не так уж тяжело, и не надо придумывать много, программа ведь для 2го курса так что там определённо не надо писать своего компилятора, програма на сколько я понял должна быть похожа на "калькулятор" ну ессно с описанными требованиями.И упираться на чтение строки, её разбивание на элементы списка, и уже при определённых вариациях выполнять определённые действия.
241
18 января 2006 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
Originally posted by Sandro_SD
... я думаю что всё не так уж тяжело, и не надо придумывать много, программа ведь для 2го курса так что там определённо не надо писать своего компилятора...



Я тоже думаю, что не всё так безнадёжно. Я вообще предполагал некую прогу, которая будет читать текстовый файл и на основании того, что там написано, будет выдавать какой-то результат. Единственное плохо - я лично ещё никак не представил себе, что делать с разобранным текстом...

15K
19 января 2006 года
Sandro_SD
3 / / 15.01.2006
Думаю не надо даже чтения текста, хватит чтения строки и оттуда вытаскивания нужных значений и переменных, только вот я это не могу продумать, а файл можно зделать и типизированный.

Если бы кто то помог, был бы рад по самое 14е число... :D
326
23 января 2006 года
sadovoya
757 / / 19.11.2005
Цитата:
Originally posted by Sandro_SD
Вот такую дали индивидуалку, надо зделать, сам если чесно не соображаю после праздников, да ещё и сессия в самом разгаре, посовтовали ваш форум, сказали "тебе там точно помогут!" Если не тяжело, посмотрите, может сможете помочь...

Написать программу - простейший язык програмирования. Необходимо реализовать следую щие функции:
- присваивание значений
- основные арифметические операции
- вывод результата
- сохранение в файл
- чтение из файла
Примеры:
а=5 операция присваивания
В? команда вывода
В=35 вывод результата
В=а*с-15 математические функции

С использованием динамических структур, двунаправленных списков. Желательно на делфи, можно и на паскале .

Заранее спасибо.

Однако и задание для второго курса! К сожалению, ничего к сказанному ранее добавить не могу. Сочувствую..

391
24 января 2006 года
Archie
562 / / 03.02.2005
Начни с того, что построй вычислитель выражений. Т.е. ты даешь функции строку вида "10+3*(x-12)/-3", а она тебе результат либо ошибку в такой-то позиции строки. x-здесь переменная. Построй список всех объявленых переменных, и в нем ищи если на нее ссылаются. Опять же, не найденая в списке переменная не была объявлена => ошибка. Объявлять переменные еще проще, чем вычислять выражения, разбираешь строку на лексемы вида <идентификатор> '=' <выражение>
<выражение> скармливаешь функции, что я описал выше, потом ищешь в списке, нет ли там переменной с именем <идентификатор>, если есть, заменяешь значение в структуре, если нету, создаешь структуру (структура - запись вида {имя, тип, значение}) идобавляешь его к списку. Ну и так обрабатывай каждую строку.

Успехов!
16K
01 февраля 2006 года
null-sequence
4 / / 01.02.2006
Цитата:
Originally posted by Archie
Начни с того, что построй вычислитель выражений. Т.е. ты даешь функции строку вида "10+3*(x-12)/-3", а она тебе результат либо ошибку в такой-то позиции строки. x-здесь переменная. Построй список всех объявленых переменных, и в нем ищи если на нее ссылаются. Опять же, не найденая в списке переменная не была объявлена => ошибка. Объявлять переменные еще проще, чем вычислять выражения, разбираешь строку на лексемы вида <идентификатор> '=' <выражение>
<выражение> скармливаешь функции, что я описал выше, потом ищешь в списке, нет ли там переменной с именем <идентификатор>, если есть, заменяешь значение в структуре, если нету, создаешь структуру (структура - запись вида {имя, тип, значение}) идобавляешь его к списку. Ну и так обрабатывай каждую строку.

Успехов!



Всё верно, но зачем повторяться? на форуме есть похожая тема относительно недавно - про ввод формулы "с интЫрфейса юзверя". Так что зрите туда.
И ещё - найди книгу Страуструпа про С++ -> там есть как раз твоя готовая программа ;)

273
05 февраля 2006 года
3A3-968M
1.2K / / 22.12.2005
Цитата:
Originally posted by null-sequence
Всё верно, но зачем повторяться? на форуме есть похожая тема относительно недавно - про ввод формулы "с интЫрфейса юзверя". Так что зрите туда.
И ещё - найди книгу Страуструпа про С++ -> там есть как раз твоя готовая программа ;)

В аттаче этого сообщения есть статейка, как писать компилер и исходник к нему на Паскале (всё с комментами), реализованы все фичи, которые тебе нужны.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог