Написать программу, выводящую таблицу истинности логической функции - 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();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д