Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Гродненский Форум
27 Апрель 2024, 20:45:33
Новости, реклама:
   Главная   Новости Гродно Помощь Игры Календарь Войти Регистрация   Меню
Гродненский Форум > Компьютеры > Программирование
(Модераторы: Админ, barmalei) > Тема:

Как научить Делфи раскрывать скобки

Страниц  :   Вниз
  Печать  
Автор Тема: Как научить Делфи раскрывать скобки  (Прочитано 2158 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Rasp
Молодой Гродненец
*

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 12


Просмотр профиля
« : 04 Ноябрь 2009, 22:43:42 »

Как научить Делфи раскрывать скобки , типа (x-2)(x+5) чтобы на выходе получить x*x+3x-10
Реальная задача - найти интерполяционный многочлен в форме Лагранжа для системы точек (всего точек 7)  
Записан
RILLey_ELf
Гость
« Ответ #1 : 04 Ноябрь 2009, 23:16:34 »

никак
дельфи этого не научится.
хотя если там открытый исходный код (очень сомневаюсь)

правда вообще не понимаю зачем такие возможности встраивать в язык программирования.

вот написать программу на языке программирования "дельфи", которая бы искала многочлены...
это уже более вероятно

но это вобще то лабораторная, а значит - за выполнение такой работы требуется оплата. и тебе в тему "работа"
а если ты хочешь сам научиться это делать - то надо было ходить на лекции и спрашивать у преподавателя;
если такой возможности нет, то наверное стоит начать с изучения функционального программирования delphi, книг в магазинах полно.
нету денег? скачай! книгу

ну вроде все возможные области покрыл.

П.С.: если будешь писать в тему "работа" то напиши обязательно формат входных, выходных данных. и несколько примеров - что на входе, что на выходе.
Записан
zark
Молодой Гродненец
*

Репутация: +12/-0
Offline Offline

Пол: Мужской
Сообщений: 42

Я люблю Гродненский форум! И www.ekorona.by

Просмотр профиля WWW Email
« Ответ #2 : 05 Ноябрь 2009, 00:55:54 »

нет ничего невозможного!
и в этой задаче впринципе все можно сделать так как Вы этого желаете!

если нужно раскрывать работать только с такими примерами, то сдесь можно обойтись следующим:
(x-2)(x+5)
  1. разложите строку на части (я не помню есть ли в Delphi (сам на C# уже давно пишу) фукция Split или что-то такое, но можно сделать и через цикл)
      a. цикл 1 - получим две строки "x-2" и "x+5"
      b. цикл 2 - получаем массив переменных где a1 - первая переменная 1-ой скобки, a2 - знак, a3 - вторая переменная 1-ой скобки, b1 - первая переменная 2-ой скобки, b2 - знак, b3 - вторая переменная 2-ой скобки
                   1 2 3
                a  x - 2
                b  x + 5
  2. переобразуем массив в строку зная переменные и знаки между ними, а также что строки массива перемножаяются между собой, т.е.:
                    x*x + x*5 - 2*x - 2*5

Удачи!
Если нужна будет помощь, пишите!!!
Записан

www.ekorona.by
есть проект - есть работа
главное качество
spammer
Почетный гродненец
*****

Репутация: +78/-19
Offline Offline

Пол: Мужской
Сообщений: 1455


Пыхнуть не хотите?

Просмотр профиля
« Ответ #3 : 05 Ноябрь 2009, 00:57:44 »

есть два способа:

1) быстрый - генеришь .pas файл с расчетом такого многочлена, загоняешь в компилятор делфи, дергаешь из основной программы через "exec", вуаля. сам так делал когда был маленьким Улыбка

2) каким-либо правильным образом пишешь вычисление выражений со скобками, например простейший вариант через стек или более правильный по грамматикам
« Последнее редактирование: 05 Ноябрь 2009, 01:24:50 от spammer » Записан
iddqd
Лёдчег
Почетный гродненец
*****

Репутация: +170/-10
Offline Offline

Пол: Мужской
Сообщений: 2275


Не уйдешь!

Просмотр профиля
« Ответ #4 : 05 Ноябрь 2009, 11:06:11 »

через стек (x-2)(x+5) так просто не раскроется
Записан
HESICbITb
Настоящий гродненец
****

Репутация: +73/-1
Offline Offline

Пол: Мужской
Сообщений: 941


Я люблю Гродненский форум!

S Просмотр профиля
« Ответ #5 : 05 Ноябрь 2009, 17:06:56 »

гугли польскую запись
Записан
iddqd
Лёдчег
Почетный гродненец
*****

Репутация: +170/-10
Offline Offline

Пол: Мужской
Сообщений: 2275


Не уйдешь!

Просмотр профиля
« Ответ #6 : 06 Ноябрь 2009, 15:23:51 »

гугли польскую запись
я ж сказал, не поможет. ОПЗ может упростить константы и некоторые скобки, но никак не раскроет многочлен
Записан
Rasp
Молодой Гродненец
*

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 12


Просмотр профиля
« Ответ #7 : 14 Ноябрь 2009, 21:06:51 »

Порылся в инете и наткнулся на формулу Виета , выражающую коэффициенты многочлена через его корни. Если кому интерено, то вот: http://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%8B_%D0%92%D0%B8%D0%B5%D1%82%D0%B0
Буду пробывать написать код.  Улыбка
Записан
Бред Питт
Почетный гродненец
*****

Репутация: +450/-5
Offline Offline

Пол: Мужской
Сообщений: 1773


Просмотр профиля
« Ответ #8 : 15 Ноябрь 2009, 00:24:10 »

Имхо, как-то не кошерно  В замешательстве
Записан

Театр закрывается. Нас всех тошнит.
Страниц  :   Вверх
  Печать  
 
Перейти в:  

Войти
Войдите, чтобы добавить комментарий

Войдите через социальную сеть

Имя пользователя:
Пароль:
Продолжительность сессии (в минутах):
Запомнить:
Забыли пароль?

Контакт
Powered by MySQL Powered by PHP Мобильная версия
Powered by SMF 1.1.20
SMF © 2006-2024, Simple Machines
Simple Audio Video Embedder
| Sitemap
Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0,108 секунд. Запросов: 19.