В С# не понимаю АБСОЛЮТНО ничего.
но надо запустить програму...
Програма робочая, но ее надо правильно запустить в Visual Studio 2010... она переводит логическое выражение в алгебру Жегалкина или Буля.
Не подскажите что да как..? Пожалуйста! Очень надо.
Примечание:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace convert
{
public partial class Form1 : Form
{
string x1; // перша змінна формули
string x2; // друга змінна формули
string sign; // операція
public Form1()
{
InitializeComponent();
}
public void arrange() // функція аналізування введеної стрічки
{
int k = 0;
if (textBox1.Text[k] != '!')
{
while ((k < textBox1.Text.Length) && (textBox1.Text[k] != ' '))
{
x1 = x1 + textBox1.Text[k];
k++;
}
k++;
if (k < textBox1.Text.Length) sign = sign + textBox1.Text[k];
k = k+2;
while ((k < textBox1.Text.Length) && (textBox1.Text[k] != ' '))
{
x2 = x2 + textBox1.Text[k];
k++;
}
}
else
{
sign = "!";
k = k + 2;
while ((k < textBox1.Text.Length) && (textBox1.Text[k] != ' '))
{
x1 = x1 + textBox1.Text[k];
k++;
}
}
}
Примечание:
private void button1_Click(object sender, EventArgs e) // перетворення виразу в алгебру Жегалкіна
{
x1 = "";
x2 = "";
sign = "";
arrange(); // виклик функції для розділення виразу на змінні та операцію
if (sign == "!") // якщо операція унарна
{
if ((x2 != "") || (x1 == "")) MessageBox.Show("Ви припустились помилки при вводі");
else label1.Text = x1 + "+1";
}
else // якщо операція бінарна
{
if ((x2 == "") || (x1 == "")) MessageBox.Show("Ви припустились помилки при вводі");
else
{
switch (sign) // визанчення операції
{
case "+":
if (x1 == "0") label1.Text = x2;
else
{
if (x2 == "0") label1.Text = x1;
else label1.Text = textBox1.Text;
}
break;
case "V":
if (x1 == "0") label1.Text = x2;
else
{
if (x2 == "0") label1.Text = x1;
else label1.Text = x1 + x2 + "+" + x1 + "+" + x2;
}
break;
case "&":
if ((x1 == "0") || (x2 == "0")) label1.Text = "0";
else
{
if (x1 == "1") label1.Text = x2;
else
{
if (x2 == "1") label1.Text = x1;
else label1.Text = x1 + " && " + x2;
}
}
break;
case ">":
label1.Text = x1 + "&" + x2 + " + " + x1 + " + 1";
break;
case "<":
label1.Text = x1 + "&" + x2 + " + " + x2 + " + 1";
break;
case "|":
label1.Text = x1 + "&" + x2 + " +1 ";
break;
case "^":
label1.Text = x1 + x2 + " + " + x1 + " + " + x2 + "+1";
break;
case "~":
label1.Text = x1 + " + " + x2 + "+1";
break;
default:
MessageBox.Show("Ви припустились помилки при вводі");
break;
}
}
}
}
Примечание:
private void button2_Click(object sender, EventArgs e) // перетворення виразу в алгебру Буля
{
x1 = "";
x2 = "";
sign = "";
arrange(); // виклик функції для розділення виразу на змінні та операцію
if (sign == "!") // якщо операція унарна
{
if ((x2 != "") || (x1 == "")) MessageBox.Show("Ви припустились помилки при вводі");
else label1.Text = textBox1.Text;
}
else // якщо операція бінарна
{
if ((x2 == "") || (x1 == "")) MessageBox.Show("Ви припустились помилки при вводі");
else
{
switch (sign)
{
case "+":
if (x1 == "0") label1.Text = x2;
else
{
if (x2 == "0") label1.Text = x1;
else label1.Text="!" + x1 + x2 +"V"+ x1 +"!"+ x2;
}
break;
case "V":
if (x1 == "0") label1.Text = x2;
else
{
if (x2 == "0") label1.Text = x1;
else label1.Text = textBox1.Text;
}
break;
case "&":
if ((x1 == "0") || (x2 == "0")) label1.Text = "0";
else
{
if (x1 == "1") label1.Text = x2;
else
{
if (x2 == "1") label1.Text = x1;
else label1.Text = x1 + " && " + x2;
}
}
break;
case ">":
label1.Text = "!" + x1 + " V " + x2;
break;
case "<":
label1.Text = x1 + " V " + "!" + x2;
break;
case "|":
label1.Text = "!"+ x1 + " V " + "!" + x2;
break;
case "^":
label1.Text = "!" + x1 + "&" + "!" + x2;
break;
case "~":
label1.Text = "!" + x1 + "!" + x2 + " V " + x1 + x2;
break;
default:
MessageBox.Show("Ви припустились помилки при вводі");
break;
}
}
}
}
private void button3_Click(object sender, EventArgs e) // виклик другого вікна з переліком правил
{
Form2 f = new Form2();
f.Owner = this;
f.ShowDialog();
}
}
}
Примечание:
Sciko , чего?