|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.05.2013, 11:21 | #1 |
Новичок
Джуниор
Регистрация: 30.05.2013
Сообщений: 1
|
ООП с++
Мальчики, учусь на МехМате. Для сдачи зачёта по ООП необходимо написать последнюю программу:
Задание: полиморфизм Указание: во всех задачах ввод исходных данных необходимо производить из текстовых файлов. Ошибки ввода и неправильного формата входных данных необходимо обрабатывать при помощи исключений. Программа на языке логического программирования состоит из следующих конструкций: 1. Факт, утверждающий истинность терма с именем x. 2. Правило, утверждающее истинность терма с именем x, если истинны термы y1, y2, ... 3. Операция ввода, запрашивающая истинность заданного терма x у пользователя. Все правила для одного терма x объединены дизъюнкицией и применяются в порядке их появления в программе. Необходимо реализовать машину вывода, проверяющую истинность заданного терма x или обнаруживающую зацикливание в результате применения заданного набора конструкций. В процессе доказательства необходимо выводить информацию о применяемых конструкциях. Необходимо использовать полиморфизм, базовый класс, от него 3 производных класса(факт, правило, ввод), и виртуальные функции с их применением в зависимости от поступающих данных. Всё остальные задачи сделала, а здесь даже не знаю как подступиться к этому заданию, мне бы хоть идею, примерное описание как это должно выглядеть. А если у кого есть время и желание и кто - нибудь напишет хоть примерный код, буду безмерно благодарна))) |
30.05.2013, 11:37 | #2 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
укажите цену и сроки
или выкладывайте наработки |
30.05.2013, 12:11 | #3 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Для (1) evaluate возвращает true. Для (3) evaluate запрашивает значение у пользователя (возможно, сохраняя его - задание в этой части не вполне чётко) и возвращает результирующее значение. Для (2) evaluate запрашивает последовательно истинность термов y1, y2, ..., yn, пока не получит значение false (тогда возвращает undefined), либо пока не дойдёт до конца списка термов (тогда возвращает true). Если очередной вызов evaluate возвращает true или false, это принимается значением терма (гипотеза непротиворечивости мира), и сохраняется - по крайней мере, до конца текущего вычисления. Если список конструкций для терма исчерпан (в частности, если с термом не ассоциировано вообще ни одной конструкции, либо оценки всех конструкций вернули undefined), возможны три модели поведения. Первая, простейшая: сообщить об ошибке (невозможности дать ответ). Вторая, гипотеза замкнутости мира: сделать вывод о ложности терма. Третья, адаптивная: принудительно ассоциировать с термом конструкцию (3). Последний раз редактировалось Abstraction; 30.05.2013 в 12:13. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ООП на С++ | dimys1237 | Общие вопросы C/C++ | 5 | 18.12.2012 22:28 |
ООП | ol-k_34 | Общие вопросы C/C++ | 6 | 23.09.2012 16:43 |
C# + ООП | atomohod | Помощь студентам | 4 | 03.12.2010 20:26 |
Паскаль ООП. Примеры программ с использованием ООП | SeЯgey | Помощь студентам | 5 | 13.05.2009 21:55 |