Автор: Пользователь скрыл имя, 12 Ноября 2011 в 09:20, реферат
Жалпы алғанда буль функцияларының жалған және елеулі айнымалыларының дискреттік математикада ойнайтын рөлі өте зор. Бірінші оларды теориялық тұрғыдан қарастырайық. Буль функцияларының жалған және елеулі айнымалылары деп .............. атайды.
Бұл айнымалылардың маңызы өте зор. Мысалы, функция көп айнымалы болса, кейбір айнымалыларын (жалған айнымалыларды) алып тастауға болады. Ол бізге барлық параметрлер бойынша үнемдеуге мүмкіндік береді. Сондықтан осы үнемдеуді жүзеге асыратын программдық пакет құру актуалды мәселе. Бұл жұмыста қойылған мақсат бойынша бірінші теориялық, одан кейін программалық жүзеге асыру жүргізілді.
Кіріспе..................................................................................3
Мазмұны 1
Кіріспе 2
Буль функцияларының жалған және елеулі айнымалылары 10
Есеп шығару мысалы 10
Буль функцияларының жалған және елеулі 12
айнымалыларын программада жүзеге асыру 12
Try
intVar:=StrToInt(Edit1.Text);
Except
ShowMessage('Ввведите, все-таки, кол-во переменных');
Exit;
End;
StringGrid1.Visible:=True;
StringGrid1.ColCount:=intVar+
StringGrid1.RowCount:=Power(2,
For i:=1 to StringGrid1.ColCount-1 do
StringGrid1.Cells[i,0]:='x'+
For i:=1 to StringGrid1.RowCount-1 do
StringGrid1.Cells[0,i]:=
StringGrid1.ColCount:=
StringGrid1.Cells[StringGrid1.
Button2.Visible:=True;
For i:=1 to StringGrid1.RowCount-1 do
For j:=1 to StringGrid1.ColCount-2 do
StringGrid1.Cells[j,i]:=
StringGrid1.Options:=[
End;
RadioGroup1.Visible:=False;
Button1.Visible:=False;
ComboBox1.Enabled:=True;
end;
procedure TForm1.Edit1Click(Sender: TObject);
begin
Edit1.SelectAll;
end;
procedure TForm1.Button2Click(Sender: TObject);
Var Ret, i, j, N, M, p, k: IntType;
Bol : Boolean;
mT1 : Mas;
begin
//Main Algorythm Block
If ComboBox1.ItemIndex=-1 then
Begin
ShowMessage('Выберите функцию');
Exit;
End;
If ComboBox1.ItemIndex=0 then
Begin
For i:=1 to StringGrid1.RowCount-1 do
Begin
Ret:=0;
For j:=1 to StringGrid1.ColCount-2 do
Ret:=Ret or StrToInt(StringGrid1.Cells[j,
StringGrid1.Cells[StringGrid1.
End;
End;
If ComboBox1.ItemIndex=1 then
Begin
For i:=1 to StringGrid1.RowCount-1 do
Begin
Ret:=1;
For j:=1 to StringGrid1.ColCount-2 do
Ret:=Ret and StrToInt(StringGrid1.Cells[j,
StringGrid1.Cells[StringGrid1.
End;
End;
//Finding Fictive Vars
M:=StringGrid1.ColCount-2;
N:=StringGrid1.RowCount-1;
For i:=1 to N do
mT[i]:=StrToInt(StringGrid1.
k:=0;
For i:=1 to M do
Begin
FillChar(mT1, SizeOf(mT1), 0);
For j:=1 to N do
Begin
p:=Power(2,i-1);
If ((j=1)or(mT1[j]<>-1))and(j+p<=
Begin
Bol:=(mT[j]=mT[j+p]);
If not Bol then
Begin
Label1.Caption:=Label1.
k:=1;
mT1[j]:=-1;
mT1[j+p]:=-1;
Break;
End;
End;
End;
If k=0 then
Begin
Label2.Caption:=Label2.
End
Else
k:=0;
End;
// End Of Finding Fictive Vars
end;
procedure TForm1.Button3Click(Sender: TObject);
Var j, i, n, m, p, k : IntType;
Bol : Boolean;
mT1 : Mas;
begin
ComboBox1.Enabled:=False;
//Finding Fictive
Vars
M:=StringGrid1.ColCount-2;
N:=StringGrid1.RowCount-1;
For i:=1 to N do
mT[i]:=StrToInt(StringGrid1.
k:=0;
Label1.Caption:='Vulnerable:';
Label2.Caption:='Fictive:';
For i:=1 to M do
Begin
FillChar(mT1, SizeOf(mT1), 0);
For j:=1 to N do
Begin
p:=Power(2,i-1);
If ((j=1)or(mT1[j]<>-1))and(j+p<=
Begin
Bol:=(mT[j]=mT[j+p]);
If not Bol then
Begin
Label1.Caption:=Label1.
k:=1;
Break;
End;
mT1[j]:=-1;
mT1[j+p]:=-1;
End;
End;
If k=0 then
Begin
Label2.Caption:=Label2.
End
Else
k:=0;
End;
// End Of Finding Fictive
Vars
end;
end.
Қорытындылай келе жасалған жұмыстың нәтижелерін белгілейік:
Авторлармен жұмыс барысында келесі ескертулер енгізілді:
Қолданылған
әдебиеттер тізімі: