Как ввести выражение?

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Re: Как ввести выражение?

Сообщение Leontev » 07.02.2012 00:25:09

Хм...

Код: Выделить всё
Program1.pas(17) : Неизвестное имя 'strtointdef'


Спасибо, конечно, но честно говоря сомневаюсь, что для задачи первого курса института подразумевается подобный ввод формулы :shock:

zub, пробую, конечно, и так поразбираться. Но чужие программы, которые составлял кто-то другой без понимания принципа читать все-таки достаточно тяжело. Вообще, впринципе, я примерно представляю, как решить ту задачу. Но вот как вычисление функции организовать - тут проблема.
Leontev
новенький
 
Сообщения: 30
Зарегистрирован: 16.01.2012 20:56:32
Откуда: Санкт-Петербург

Re: Как ввести выражение?

Сообщение alex208210 » 07.02.2012 00:27:23

сверху
uses SysUtils;
alex208210
постоялец
 
Сообщения: 207
Зарегистрирован: 12.05.2010 13:16:51

Re: Как ввести выражение?

Сообщение B4rr4cuda » 07.02.2012 00:34:34

имхо прямой путь в гугль искать инфу по обратной польской записи)
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: Как ввести выражение?

Сообщение Leontev » 07.02.2012 00:35:13

Что ж, всем спасибо за ответы, попробую аналогичные задачки поискать и у преподавателей завтра уточню. А может, конечно и задача не совсем коректно поставлена, или я чего-то недопонял. Вообще, общее задание вот.

Изображение
Leontev
новенький
 
Сообщения: 30
Зарегистрирован: 16.01.2012 20:56:32
Откуда: Санкт-Петербург

Re: Как ввести выражение?

Сообщение Light13 » 07.02.2012 08:52:29

Есть очень хороший класс TParser.

Тут пример использования http://www.delphisources.ru/pages/faq/base/tparser_example.html
Аватара пользователя
Light13
постоялец
 
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск

Re: Как ввести выражение?

Сообщение SSerge » 07.02.2012 09:10:02

Leontev

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

Короче, никаких парсеров и синтаксических анализаторов искать НЕ НАДО.

Добавлено спустя 1 час 10 минут 39 секунд:
Скорее всего, 1:1, что требуется:

http://www.codenet.ru/progr/other/lpas3.php
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Как ввести выражение?

Сообщение Leontev » 07.02.2012 18:20:25

SSerge
Верно. Мне сегодня в институте тоже это сказали. Ну что ж, зато от Алекса алгоритм интересный увидел )) не знаю, конечно, насколько он коректен с точки зрения кодирования, но на будущее может пригодится.
Leontev
новенький
 
Сообщения: 30
Зарегистрирован: 16.01.2012 20:56:32
Откуда: Санкт-Петербург

Re: Как ввести выражение?

Сообщение alex208210 » 07.02.2012 20:14:30

Это чистой воды говнокод).. единственная цель которого выполнять требованию решения ввода подобных x*5/x выражений) Не имеющий возможностей развития и функционального охвата. Принцип.. элементарный парсер примитивной строки. Не стоит его расссматривать как пример к решению каких либо математических задач. Просто вечером скучно было .а тут тема интересная. ну вот минут за 10 нагадил)
alex208210
постоялец
 
Сообщения: 207
Зарегистрирован: 12.05.2010 13:16:51

Re: Как ввести выражение?

Сообщение Little_Roo » 08.02.2012 00:04:56

alex208210 писал(а):Просто вечером скучно было .а тут тема интересная. ну вот минут за 10 нагадил)

Везет Вам :D :D :D , скучно вечером(завидки берут :shock: ), и заняться нечем :)
А вот пионеру посмотреть бы в сторону Маткада - или он уже....в ......?
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Как ввести выражение?

Сообщение SSerge » 08.02.2012 04:38:30

Little_Roo
Не надо смотреть в сторону маткада... Он неадекватно большую кучу баксов стоит и к программированию отношения не имеет вовсе, тем более к выданному Заданию.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Как ввести выражение?

Сообщение daesher » 08.02.2012 07:43:34

Скачайте vvfstat.sf.net, в нём есть модуль fored.pas именно для таких целей.
daesher
постоялец
 
Сообщения: 221
Зарегистрирован: 09.03.2010 22:17:14

Пред.

Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

Рейтинг@Mail.ru