Написать программу, выводящую таблицу истинности логической функции - C#
Формулировка задачи:
Доброго времени суток!
Помогите, пожалуйста, решить задачу:
Напишите программу, выводящую таблицу истинности логической функции (a and not b) or c
[ and - логическое умножение
not - отрицание
or - логическое сложение
]
Решение задачи: «Написать программу, выводящую таблицу истинности логической функции»
textual
Листинг программы
using System;
using System.Reflection;
namespace cyb36 {
class Program {
static bool f(bool a, bool b, bool c) {
return (a && !b) || c;
}
static void Main(string[] args) {
//сведения о методе
MethodInfo inf= typeof(Program).GetMethod("f",BindingFlags.Static|BindingFlags.NonPublic);
//Количество параметров (если будут не булевы, то глюкнет)
int cnt=inf.GetParameters().Length;
int max=1;
//Шапка
for(int i=0;i<cnt;i++){
Console.Write("{0,9}", (char)('a' + i));
max*=2;
}
Console.WriteLine("{0,9}", "rez");
//Строка
for(int i = 0; i < max; i++) {
object[] param=new object[cnt];
int k=i;
for(int j = 0; j < cnt; j++) {
param[j] = k % 2 == 0 ? true : false;
Console.Write("{0,9}", param[j]);
k /= 2;
}
Console.WriteLine("{0,9}",inf.Invoke(null, param));
}
Console.ReadLine();
}
}
}