Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2011, 09:03   #1
AshimVeeskela
Новичок
Джуниор
 
Регистрация: 23.12.2008
Сообщений: 2
По умолчанию составления условного выражения, эквивалентного данному

Помогите. Требуется написать программу для определения возможности составления условного выражения, эквивалентного данному, из заданных наборов сравнений.

Пример
Выражение: (x= =2)&&(2*y<=2)&&((y>(1-x)/2)||( y>-0.5*x+1)&&(x<y+3))
Набор сравнений: y>x-3; x>1-2*y; y<=1;
Результат: Составить возможно.

В памяти каждое выражение хранится в виде дерева(уже распарсил выражения). Собственно нужна в помощь в определение метода решения вопроса об эквивалентности, кторый можно описать на с++. (Возможно использование библтотек Qt)

Но в принципе можно и на паскале, главное метод решения.
Человека определяют не плюсы, человека определяют минусы. (AV)

Последний раз редактировалось AshimVeeskela; 30.08.2011 в 19:17.
AshimVeeskela вне форума Ответить с цитированием
Старый 30.08.2011, 13:05   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

для начала сделай вот эту часть (установи ПРОГРАММНО эквивалентность двух разнозаписанных выражений (равенств / неравенств)
2*y<=2 ?=? y<=1
x<y+3 ?=? y>x-3
и твоя задача сведется к поиску таких простых эквивалентов.
но сама задача определения эквивалентности для таких простых выражений в общем случае совсем непроста.
могу предложить способ приведения к стандартному(каноническому) виду многочлена и сравнения его с нулем (например так)
2*y -2 <=0 y-1<=0
x-y-3 <0 -x +y+3 >0 далее самостоятельно.

P.S. на бумаге человек это сделает легко, попробуй научить этому компьютер.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 30.08.2011 в 13:14.
evg_m вне форума Ответить с цитированием
Старый 30.08.2011, 14:00   #3
AshimVeeskela
Новичок
Джуниор
 
Регистрация: 23.12.2008
Сообщений: 2
По умолчанию

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

Сейчас преподователь упростил задачу в том плане что в выражении может быть только одна переменная. А в этом случае можно было сравнивать отрезки, тоесть найти все границы отрезков решив уравнения. Но тогда возникает вопрос как найти все корни уравнения f(x)=0. Все методы в инете сводятся к нахождению корня на отрезке. А локализация производится вручную. Что не подходит для моего решения: пользователь вводит только выражения и получает результат.
Человека определяют не плюсы, человека определяют минусы. (AV)
AshimVeeskela вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Особенность у условного оператора Gen_r_questions JavaScript, Ajax 1 13.07.2011 21:42
Нужно сформулировать принцип выполнения программы в среде Turbo Pascal по её данному условию. Ekvental Помощь студентам 1 28.12.2010 17:26
Многоуровневое меню по данному css коду Vladimirko HTML и CSS 0 26.08.2010 01:11
Вычисление условного арифметического выражения doda666 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 16.03.2010 08:02