Цитата
Сначала определяешь M, потом S и P. Сразу получаешь фигуру...
Это что касается классификации.
А вот что касается решения.
Силлогизм записываешь в терминах теории множеств.
Код
Все А суть В - A^B = A - -A^ B пусто
Все А не суть В - A^-B = A - -A^-B пусто
Некоторые А суть В - A^ B не пусто
Некоторые А не суть В - A^-B не пусто
Некоторые А суть не В - A^-B не пусто
Ни один А не суть В - А^ B пусто
Ни один А не суть не В - А^-B = A - A^ B = не пусто
Записываешь обе предпосылки в такой форме.
Получается, у тебя есть утверждения для (M, P) и для (S, M), а тебе надо для (S, P).
Т.е. тебе нужно получить S ^ P, S ^ -P, -S ^ P, -S ^ -P. Для каждого из мы либо скажем, пусто ли оно, либо скажем, что сказать нельзя.
Для этого переберем все способы заполнения такой матрицы
Код
S M P ?
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
В каждой строке мы запишем в четвертом столбике либо "пусто", либо "не пусто", и проверим, чтобы обе предпосылки выполнялись.
Например, "не пусто", записанно в пятой строке (1 0 0) означает, что пересечение множеств S, -M и -P - не пусто.
Поскольку нас интересует результат сравнения S и P, то, если обе предпосылки выполняются, мы вычисляем S^P, S^-P, -S^P и -S^-P, постоянно накапливая результат.
Как проверять, выполняются ли предпосылки, и накапливать результат, лучше сразу посмотреть на примере.
Все люди смертны
Некоторые ученые люди
_______________
Некоторые ученые смертны.
S = ученые, M = люди, P = смертны
Пусть в переборе сейчас получена такая матрица:
Код
S M P ?
0 0 0 не пусто
0 0 1 пусто
0 1 0 пусто
0 1 1 не пусто
1 0 0 пусто
1 0 1 не пусто
1 1 0 не пусто
1 1 1 пусто
Проверим предпосылки
Все люди смертны = M ^ P = M = -М ^ P пусто
Некоторые ученые люди = S ^ M не пусто
Проверим, что -М ^ P пусто.
Выполняем операции так: V берет лучшее из двух ("пусто" хуже "не пусто").
-M ^ P = -M^P^S V -M^P^-S = S^-M^P V -S^-M^P = f(101) V f(001) = "пусто" V "пусто" = "пусто".
Проверим, что S ^ M не пусто.
S ^ M = S^M^P V S^M^-P = f(111) V f(110) = "пусто" V "не пусто" = "не пусто".
Предпосылки выполняются.
Вычисляем S^P, S^-P, -S^P и -S^-P. Рассмотрим, например, S^P.
S^P = S^P^M V S^P^-M = S^M^P V S^-M^P = f(111) V f(101) = "пусто" V "не пусто" = "не пусто".
Итак, только что получен результат: существует возможность того, что предпосылки выполняются, и S^P не пусто.
Если потом, для других вариантов заполнения матрицы (всего их 2^8), будет получен результат, существует возможность того, что предпосылки выполняются, и S^P пусто, это будет означать, что из данного силлогизма нельзя однозначно сказать, пусто ли S^P.
То же самое проделываем для S^-P, -S^P и -S^-P.
В результате получаем выводы, которые толкуем по той же таблице:
Код
Все А суть В - A^B = A - -A^ B пусто
Все А не суть В - A^-B = A - -A^-B пусто
Некоторые А суть В - A^ B не пусто
Некоторые А не суть В - A^-B не пусто
Некоторые А суть не В - A^-B не пусто
Ни один А не суть В - А^ B пусто
Ни один А не суть не В - А^-B = A - A^ B = не пусто
Твой препод довольно крут, если ему это всё (с классификацией) писать часа 3 ;)
Может он все таки хочет чтобы ты просто всё if'ами расписал? Это будет проще.