Программный продукт, реализующий сравнительный анализ методов линейного целочисленного программирования
Требования к программному изделию, составу и параметрам технических средств (аппаратные ограничения). Технико-экономическое обоснование целесообразности разработки. Функция, реализующая метод "Северо-западного угла". Модуль Sz, Nst, Venger-m, М1.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 30.09.2013 |
Размер файла | 1,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Image2->Canvas->LineTo(hh*i,0);
}
for(int i=1;i<=yn/hh;i++)
{
Image2->Canvas->MoveTo(0,hh*i);
Image2->Canvas->LineTo(xn,hh*i);
}
for(int i=1;i<=10;i++)
{
int ms;
ms=((i*(n+3)/10)/(mast/100));
Image2->Canvas->TextOut(i*xn/10,yn/2,ms);
}
for(int i=1;i<=10;i++)
{
float ms;
ms=i; ///(mast/100)
if(i!=5)
Image2->Canvas->TextOut(hh,yn-i*yn/10,ms/10);
}
Image2->Canvas->Pen->Width=2;
Image2->Canvas->Pen->Color=clGreen;
Image2->Canvas->MoveTo(0,yn/2);
Image2->Canvas->LineTo(xn,yn/2);
Image2->Canvas->Pen->Width=3;
Image2->Canvas->Pen->Color=clGray;
Image2->Canvas->MoveTo(xh,yn);
Label19->Caption=1;
int d;
d=(n+3)%10;
if (d>4) d=(n+3)/10;
else d=0;
for(int i=0;i<=(n+3)-d;i=i+(n+3)/10)
{
Label18->Caption=StrToInt(i);
Form1->Edit1->Text=i;
Form1->Edit1Change(Sender);
//int tmm=0;
int *mas3_1=new int [i*i];
int *mas3_2=new int [i*i];
opt=0;
if((CheckBox10->Checked==true)&& (CheckBox14->Checked==false)) //С-З
{
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button1Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
}
if((CheckBox11->Checked==true)&& (CheckBox14->Checked==false)) //Наимен
{
//opt=0;
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button2Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
}
if((CheckBox12->Checked==true)&& (CheckBox14->Checked==false)) //Фогель
{
// opt=0;
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button3Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
}
if((CheckBox13->Checked==true)&& (CheckBox14->Checked==false)) //Нер(1)
{
// opt=0;
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button7Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
}if((CheckBox10->Checked==true)&& (CheckBox14->Checked==true)) //С-З - Нер(2)
{
//opt=0;
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button1Click(Sender);
Form1->Button8Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
}
if((CheckBox11->Checked==true)&& (CheckBox14->Checked==true)) //Наимен - Нер(2)
{
// opt=0;
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button2Click(Sender);
Form1->Button8Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
}
if((CheckBox12->Checked==true)&& (CheckBox14->Checked==true)) //Фогель - Нер(2)
{
// opt=0;
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button3Click(Sender);
Form1->Button8Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
}
if((CheckBox13->Checked==true)&& (CheckBox14->Checked==true)) //Нер(1) - Нер(2)
{
// opt=0;
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button7Click(Sender);
Form1->Button8Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
}
opt=opt/tc;
opt_f=opt;
opt_f=opt_f/i ;
delete [] mas3_1;
mas3_1=NULL;
delete [] mas3_2;
mas3_2=NULL;
if(i==0)
Image2->Canvas->MoveTo(0,yn);
else
Image2->Canvas->LineTo(xh*(mast/100),yn-(opt_f*yn)); //*(mast/100)
xh=xh+xn/10;
Refresh();
}
//int t;
//t=opt_f*1000;
Image2->Canvas->TextOut((xh-xn/10+hh)*(mast/100),yn-hh-(opt_f*yn),FloatToStr(opt_f));//*(mast/100)
Label18->Caption="OK";
Button12->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox10Click(TObject *Sender)
{
if(CheckBox10->Checked==true)
{
ComboBox5->Clear();
ComboBox5->AddItem("Метод Нереализ. приб(2)",ComboBox5);
}
if(CheckBox10->Checked==true)
{
CheckBox11->Checked=false;
CheckBox12->Checked=false;
CheckBox13->Checked=false;
CheckBox14->Checked=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox4Change(TObject *Sender)
{
if(ComboBox4->ItemIndex==0)
CheckBox10->Checked=true;
if(ComboBox4->ItemIndex==1)
CheckBox11->Checked=true;
if(ComboBox4->ItemIndex==2)
CheckBox12->Checked=true;
if(ComboBox4->ItemIndex==3)
CheckBox13->Checked=true;
Button11->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox11Click(TObject *Sender)
{
if(CheckBox11->Checked==true)
{
ComboBox5->Clear();
ComboBox5->AddItem("Метод Нереализ. приб(2)",ComboBox5);
}
if(CheckBox11->Checked==true)
{
CheckBox10->Checked=false;
CheckBox12->Checked=false;
CheckBox13->Checked=false;
CheckBox14->Checked=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox12Click(TObject *Sender)
{
if(CheckBox12->Checked==true)
{
ComboBox5->Clear();
ComboBox5->AddItem("Метод Нереализ. приб(2)",ComboBox5);
}
if(CheckBox12->Checked==true)
{
CheckBox11->Checked=false;
CheckBox10->Checked=false;
CheckBox13->Checked=false;
CheckBox14->Checked=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox13Click(TObject *Sender)
{
if(CheckBox13->Checked==true)
{
ComboBox5->Clear();
ComboBox5->AddItem("Метод Нереализ. приб(2)",ComboBox5);
}
if(CheckBox13->Checked==true)
{
CheckBox11->Checked=false;
CheckBox12->Checked=false;
CheckBox10->Checked=false;
CheckBox14->Checked=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox5Change(TObject *Sender)
{
if(ComboBox5->ItemIndex==0)
CheckBox14->Checked=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button12Click(TObject *Sender)
{
int xn,yn,n,hh,xh,yh,opt,tc;
float mast,opt_f;
mast=StrToFloat(Edit8->Text);
n=StrToInt(Edit9->Text)-3;
hh=StrToInt(Edit7->Text);
xh=0;
xn=Image2->Width;
yn=Image2->Height;
tc=StrToInt(Edit10->Text);
Image2->Canvas->Pen->Width=2;
Image2->Canvas->Pen->Color=clGreen;
Image2->Canvas->Pen->Width=3;
Image2->Canvas->Pen->Color=clRed;
Image2->Canvas->MoveTo(xh,yn);
switch(StrToInt(Label19->Caption))
{
case 1: {Image2->Canvas->Pen->Color=clBlack;Label19->Caption=2;}break;
case 2: {Image2->Canvas->Pen->Color=clGreen;Label19->Caption=3;}break;
case 3: {Image2->Canvas->Pen->Color=clWhite;Label19->Caption=4;}break;
case 4: {Image2->Canvas->Pen->Color=clYellow;Label19->Caption=5;}break;
case 5: {Image2->Canvas->Pen->Color=clBlue;Label19->Caption=6;}break;
case 6: {Image2->Canvas->Pen->Color=clMoneyGreen;Label19->Caption=7;}break;
case 7: {Image2->Canvas->Pen->Color=clRed;Label19->Caption=8;}break;
case 8: {Image2->Canvas->Pen->Color=clGray;Label19->Caption=1;}break;
}
int d;
d=(n+3)%10;
if (d>4) d=(n+3)/10;
else d=0;
for(int i=0;i<=(n+3)-d;i=i+(n+3)/10)
{
Label18->Caption=StrToInt(i);
Form1->Edit1->Text=i;
Form1->Edit1Change(Sender);
//int tmm=0;
int *mas3_1=new int [i*i];
int *mas3_2=new int [i*i];
opt=0;
if((CheckBox10->Checked==true)&& (CheckBox14->Checked==false)) //С-З
{
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button1Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
}
if((CheckBox11->Checked==true)&& (CheckBox14->Checked==false)) //Наимен
{
//opt=0;
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button2Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
}
if((CheckBox12->Checked==true)&& (CheckBox14->Checked==false)) //Фогель
{
// opt=0;
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button3Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
}
if((CheckBox13->Checked==true)&& (CheckBox14->Checked==false)) //Нер(1)
{
// opt=0;
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button7Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
}
if((CheckBox10->Checked==true)&& (CheckBox14->Checked==true)) //С-З - Нер(2)
{
//opt=0;
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button1Click(Sender);
Form1->Button8Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
if((CheckBox11->Checked==true)&& (CheckBox14->Checked==true)) //Наимен - Нер(2)
{
// opt=0;
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button2Click(Sender);
Form1->Button8Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
}
if((CheckBox12->Checked==true)&& (CheckBox14->Checked==true)) //Фогель - Нер(2)
{
// opt=0;
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button3Click(Sender);
Form1->Button8Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
if((CheckBox13->Checked==true)&& (CheckBox14->Checked==true)) //Нер(1) - Нер(2)
{
// opt=0;
for(int s=1;s<=tc;s++)
{
Form1->RandomClick(Sender);
Form1->Button7Click(Sender);
Form1->Button8Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_1[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
Form1->Button4Click(Sender);
//запись в массив
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
{
mas3_2[ii*i+j]=StrToInt(SG3->Cells[ii][j]);
}
//сравнение
for (int ii=0; ii<i-1; ii++)
for (int j=0; j<i-1; j++)
if((mas3_1[ii*i+j]==mas3_2[ii*i+j])&&(mas3_1[ii*i+j]==1))
opt++;
}
}
opt=opt/tc;
opt_f=opt;
opt_f=opt_f/i ;
delete [] mas3_1;
mas3_1=NULL;
delete [] mas3_2;
mas3_2=NULL;
if(i==0)
Image2->Canvas->MoveTo(0,yn);
else
Image2->Canvas->LineTo(xh*(mast/100),yn-(opt_f*yn)); //*(mast/100)
xh=xh+xn/10;
Refresh();
}
//int t;
//t=opt_f*1000;
Image2->Canvas->TextOut((xh-xn/10+hh)*(mast/100),yn-hh-(opt_f*yn),FloatToStr(opt_f));//*(mast/100)
Label18->Caption="OK";
Button12->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit11Change(TObject *Sender)
{
//Button9->Enabled=false;
//Button12->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit10Change(TObject *Sender)
{
//Button12->Enabled=false;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Fogel.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
int fogel_m(int *mas2, int *mas3, int n)
{
int ix=0;
int jy=0;
int min1,min2,t;
//решение
for(int ii=0;ii<n-1;ii++)
{
//строка
for (int i=0; i<n-1; i++)
{
min1=100000;
min2=100000;
for (int j=0; j<n-1; j++)
{
if((mas2[i*(n+1)+n-1]==1) && (mas2[(n-1)*(n+1)+j]==1))
{
if(min1>=mas2[i*(n+1)+j])
{
min2=min1;
min1=mas2[i*(n+1)+j];
}
if(min2>mas2[i*(n+1)+j] && min1<mas2[i*(n+1)+j])
min2=mas2[i*(n+1)+j];
}
}
mas2[i*(n+1)+n]=min2-min1;
}
//столбец
for (int j=0; j<n-1; j++)
{
min1=100000;
min2=100000;
for (int i=0; i<n-1; i++)
{
if((mas2[i*(n+1)+n-1]==1) && (mas2[(n-1)*(n+1)+j]==1))
{
if(min1>=mas2[i*(n+1)+j])
{
min2=min1;
min1=mas2[i*(n+1)+j];
}
if(min2>mas2[i*n+j] && min1<mas2[i*n+j])
min2=mas2[i*n+j];
}
}
mas2[n*(n+1)+j]=min2-min1;
}
//штрафы
min1=-1;
for (int j=0; j<n-1; j++)
{
if(mas2[(n-1)*n+j]==1)
if(min1<mas2[n*n+j])
{
min1=mas2[n*n+j];
ix=n;
jy=j;
}
}
for (int i=1; i<n-1; i++)
{
if(mas2[i*n+n-1]==1)
if(min1<mas2[i*n+n])
{
min1=mas2[i*n+n];
ix=i;
jy=n;
}
}
//наименьший
t=100000;
if(ix==n)
for (int i=0; i<n-1; i++)
{
if((mas2[i*n+n-1]==1) && (mas2[(n-1)*n+jy]==1))
{
if(t>mas2[i*n+jy])
{
t=mas2[i*n+jy];
ix=i;
}
}
}
if(jy==n)
for (int j=0; j<n-1; j++)
{
if((mas2[ix*n+n-1]==1) && (mas2[(n-1)*n+j]==1))
{
if(t>mas2[ix*n+j])
{
t=mas2[ix*n+j];
jy=j;
}
}
}
mas3[ix*n+jy]= 1;
//вычеркивание
mas2[ix*n+n-1]=0;
mas2[(n-1)*n+jy]=0;
}
}
//---------------------------------------------------------------------------
#pragma hdrstop
#include "N_st.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
int nai_st(int *mas2, int *mas3, int n)
{
int ix=0;
int jy=0;
//решение
for(int ii=0;ii<n-1;ii++)
{
int t=1000000;
//следующий элемент
for (int i=0; i<n-1; i++)
for (int j=0; j<n-1; j++)
{
if((SG2->Cells[i][n-1]==1) && (SG2->Cells[n-1][j]==1))
{
if(t>StrToInt(SG2->Cells[i][j]))
{
t=StrToInt(SG2->Cells[i][j]);
ix=i;
jy=j;
}
}
}
mas3[ix*n+jy]= 1;
//вычеркивание
mas2[ix*n+n-1]=0;
mas2[(n-1)*n+jy]=0;
}
}
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Ner_p1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
int ner_pr1(int *mas2, int *mas3, int n)
{
int ix=0;
int jy=0;
int sum1,sum2;
int t1=0;
int t2=0;
//решение
for(int ii=0;ii<n-1;ii++)
{
sum1=1000000;
sum2=1000000;
//следующий элемент
for (int i=0; i<n-1; i++)
for (int j=0; j<n-1; j++)
{
if((mas2[i*n+n-1]==1) && (mas2[(n-1)*n+j]==1))
{
t1=0;
t2=0;
for(int ff=0;ff<n-1;ff++)
{
// for(int ii=0;ii<n-1;ii++)
if((mas2[ff*n+n-1]==1) && (mas2[(n-1)*n+j]==1))
t1=t1+mas2[ff*n+j];
// for(int jj=0;jj<n-1;jj++)
if((mas2[i*n+n-1]==1) && (mas2[(n-1)*n+ff]==1))
t2=t2+mas2[i*n+ff];
}
sum1=3*mas2[i*n+j]-t1-t2;
if(sum1<sum2)
{
sum2=sum1;
ix=i;
jy=j;
}
}
}
mas3[ix*n+jy]= 1;
//вычеркивание
mas2[ix*n+n-1]=0;
mas2[(n-1)*n+jy]=0;
}
}
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Ner_p2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
int ner_pr2(int *mas2, int *mas3, int n)
{
int ix=0;
int jy=0;
int sum1,sum2,x1,y1,x2,y2;
bool fl;
//решение
fl=true;
while(fl)
{
fl=false;
sum1=1000000;
sum2=1000000;
//следующий элемент
for (int i=0; i<n-1; i++)
for (int j=0; j<n-1; j++)
{
// if((mas2[(n-1)*n+j]==1)||(mas2[i*n+n-1]==1))
// {
for(int ii=0;ii<n-1;ii++)
if(mas3[ii*n+j]==1)
ix=ii;
for(int jj=0;jj<n-1;jj++)
if(mas3[i*n+jj]==1)
jy=jj;
sum1=mas2[i*n+j]+mas2[ix*n+jy]-mas2[ix*n+j]-mas2[i*n+jy];
if(sum1<sum2)
{
sum2=sum1;
x1=i;
y1=j;
x2=ix;
y2=jy;
}
// }
}
if(sum2<0)
{
mas3[x1*n+y1]= 1;
mas3[x2*n+y2]= 1;
mas3[x1*n+y2]= 0;
mas3[x2*n+y1]= 0;
//mas2[(n-1)*n+y1]=1;
//mas2[x1*n+n-1]=1 ;
//mas2[(n-1)*n+y2]=1;
//mas2[x2*n+n-1]=1 ;
fl=true;
}
}
}
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Ner_p3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
int ner_pr3(int *mas2, int *mas3, int n)
{
int ix=0;
int jy=0;
int t1,x1,y1,x2,y2,min,min_t,mn;
bool fl,fm,flag;
int *m2=new int [(n+1)*(n+1)];
//решение
for (int i=0; i<n-1; i++)
{
mn=mas2[i*n+0];
for (int j=0; j<n-1; j++)
if(mn>mas2[i*n+j])
mn=mas2[i*n+j];
for (int jj=0; jj<n-1; jj++)
m2[i*n+jj]=mas2[i*n+jj]-mn;
}
for (int j=0; j<n-1; j++)
{
mn=m2[0*n+j];
for (int i=0; i<n-1; i++)
if(mn>m2[i*n+j])
mn=m2[i*n+j];
for (int ii=0; ii<n-1; ii++)
m2[ii*n+j]=m2[ii*n+j]-mn;
}
//следующий элемент
for (int i=0; i<n-1; i++) //матрица м2
{
for(int j=0;j<n-1;j++)
if(mas3[i*n+j]==1)
t1=m2[i*n+j];
for(int j=0;j<n-1;j++)
m2[i*n+j]=m2[i*n+j]-t1;
}
min=m2[0*n+0]; //минимум в м2
for(int i=0;i<n-1;i++)
for (int j=0; j<n-1; j++)
if(min>m2[i*n+j])
{
min=m2[i*n+j];
ix=i;
jy=j;
}
flag=true;
while(flag)
{
flag=false;
if(min<0)//условие
{
mas3[ix*n+jy]=7;//начало
for(int i=0;i<n-1;i++)
if(mas3[i*n+jy]==1)
{
mas3[i*n+jy]=5; //хвост
ix=i;
}
x1=ix;
y1=jy;
fl=true;
fm=true;
mas2[(n-1)*n+y1]=0;
while(fl && fm)
{
min_t=10000000;
for(int j=0;j<n-1;j++)
if((mas2[(n-1)*n+j]==1)||(mas3[x1*n+j]==7))
if((min_t>m2[x1*n+j]+min)&&((mas3[x1*n+j]==0)||(mas3[x1*n+j]==7)))
{
min_t=m2[x1*n+j]+min;
y1=j;
}
if(min_t>=0)
fm=false;
if(mas3[x1*n+y1]==7)
fl=false;
mas3[x1*n+y1]=3; //новый элемент
mas2[(n-1)*n+y1]=0;
min=min_t;
for (int i=0; i<n-1; i++)
if((mas3[i*n+y1]==1)||(mas3[i*n+y1]==5))
{
x1=i;
}
mas3[x1*n+y1]=2; //ноль
}
if(fm==false)
{
for (int i=0; i<n-1; i++)
for (int j=0; j<n-1; j++)
{
if(mas3[i*n+j]==2)
mas3[i*n+j]=1;
if(mas3[i*n+j]==3)
mas3[i*n+j]=0;
if(mas3[i*n+j]==5)
mas3[i*n+j]=1;
if(mas3[i*n+j]==7)
mas3[i*n+j]=0;
fl=true;
}
}
if(fl==false)
{
for (int i=0; i<n-1; i++)
for (int j=0; j<n-1; j++)
{
if(mas3[i*n+j]==2)
mas3[i*n+j]=0;
if(mas3[i*n+j]==3)
mas3[i*n+j]=1;
if(mas3[i*n+j]==5)
mas3[i*n+j]=0;
if(mas3[i*n+j]==7)
mas3[i*n+j]=1;
}
}
}
for (int j=0; j<n-1; j++)
mas2[(n-1)*n+j]=1;
}
delete [] m2;
}
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Potenc_m.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
void sb(int i,int j,int *u,int *v,int n,int *mas2, int *mas3,int *ux,int *vx);
//
void st(int i,int j,int *u,int *v,int n,int *mas2, int *mas3,int *ux,int *vx)
{
for(int ii=0;ii<n-1;ii++)
if((mas3[ii*n+j]!=0)&&(vx[ii]==0))
{
v[ii]=mas2[ii*n+j]-u[j];
vx[ii]=1;
sb(ii,j,u,v,n,mas2,mas3,ux,vx);
}
return ;
}
//
void sb(int i,int j,int *u,int *v,int n,int *mas2, int *mas3,int *ux,int *vx)
{
for(int jj=0;jj<n-1;jj++)
if((mas3[i*n+jj]!=0)&&(ux[jj]==0))
{
u[jj]=mas2[i*n+jj]-v[i];
ux[jj]=1;
st(i,jj,u,v,n,mas2,mas3,ux,vx);
}
return ;
}
//
int stb(int i,int j,int *, int *, int n,int *c);
//
int strk(int i,int j,int *mas2, int *mas3, int n,int *c)
{
for(int ii=0;ii<n-1;ii++)
if((mas3[ii*n+j]!=0)&&(ii!=i)&&(mas2[(n-1)*n+j]==1)&&(mas2[ii*n+n-1]==1))
{
//mas2[ii*n+n-1]=1;
if(*c<mas3[ii*n+j])
*c=mas3[ii*n+j];
stb(ii,j,mas2,mas3,n,c);
ii=n-1;
}
return *c;
}
//
int stb(int i,int j,int *mas2, int *mas3, int n,int *c)
{
for(int jj=0;jj<n-1;jj++)
//if((mas2[i*n+jj]==0)&&(mas3[i*n+jj]==0)&&(mas2[(n-1)*n+jj]==1))
if((mas3[i*n+jj]!=0)&&(jj!=j)&&(mas2[(n-1)*n+jj]==1)&&(mas2[i*n+n-1]==1))
{
if(mas3[i*n+jj]!=3)
strk(i,jj,mas2,mas3,n,c);
jj=n-1;
}
return *c;
}
//
int stb_z(int i,int j,int *, int *, int n,int *c);
//
int strk_z(int i,int j,int *mas2, int *mas3, int n,int *c)
{
for(int ii=0;ii<n-1;ii++)
if((mas3[ii*n+j]!=0)&&(ii!=i)&&(mas2[(n-1)*n+j]==1)&&(mas2[ii*n+n-1]==1))
{
// if(*c<mas3[ii*n+j])
// *c=mas3[ii*n+j];
if(*c==1)
mas3[ii*n+j]=2;
stb_z(ii,j,mas2,mas3,n,c);
ii=n-1;
}
return *c;
}
//
int stb_z(int i,int j,int *mas2, int *mas3, int n,int *c)
{
for(int jj=0;jj<n-1;jj++)
//if((mas2[i*n+jj]==0)&&(mas3[i*n+jj]==0)&&(mas2[(n-1)*n+jj]==1))
if((mas3[i*n+jj]!=0)&&(jj!=j)&&(mas2[(n-1)*n+jj]==1)&&(mas2[i*n+n-1]==1))
{
if(mas3[i*n+jj]!=3)
{
if(*c==1)
mas3[i*n+jj]=1;
strk_z(i,jj,mas2,mas3,n,c);
}
jj=n-1;
}
return *c;
}
int potenc(int *mas2, int *mas3, int n)
{
int ix=0;
int jy=0;
int ix1=0;
int jy1=0;
int ix2=0;
int jy2=0;
int *v=new int [n-1];
int *u=new int [n-1];
int *ux=new int [n-1];
int *vx=new int [n-1];
int cc,m,sums,sumt,c,fl;
int ijc[2][3];
//int oix1=0,ojy1=0,oix2=0,ojy2=0;
cc=1;
while(cc>0)
{
//восстановление нулей
for (int i=0; i<n-1; i++)
{
mas2[i*n+n-1]=1;
u[i]=0;
v[i]=0;
ux[i]=0;
vx[i]=0;
}
for (int j=0; j<n-1; j++)
mas2[(n-1)*n+j]=1;
//нахождение потенциалов
//u[0]=0;
//ux[0]=1;
//for (int j=0; j<n-1; j++)
//for (int i=0; i<n-1; i++)
//{
//if((mas3[i*n+j]!=0))//&&((mas2[i*n+n-1]==1) || (mas2[(n-1)*n+j]==1))
//{
//if(ux[j]==1)
//{
// v[i]=mas2[i*n+j]-u[j];
// for (int x=0; x<n-1; x++)
// if((mas3[i*n+x]!=0))
//{
// u[x]=mas2[i*n+x]-v[i];
// ux[x]=1;
// for (int y=0; y<n-1; y++)
// if((mas3[y*n+x]!=0))
// {
// v[y]=mas2[y*n+x]-u[x];
//}
//}
st(0,0,u,v,n,mas2,mas3,ux,vx);
// }
// }
// }
// 2раза
//for (int j=0; j<n-1; j++)
// for (int i=0; i<n-1; i++)
// {
//if((mas3[i*n+j]!=0))//&&((mas2[i*n+n-1]==1) || (mas2[(n-1)*n+j]==1))
// {
//if(ux[j]==1)
// {
// v[i]=mas2[i*n+j]-u[j];
// for (int x=0; x<n-1; x++)
// if((mas3[i*n+x]!=0))
//{
// u[x]=mas2[i*n+x]-v[i];
// ux[x]=1;
// for (int y=0; y<n-1; y++)
// if((mas3[y*n+x]!=0))
//{
// v[y]=mas2[y*n+x]-u[x];
//}
//}
// st(0,0,u,v,n,mas2,mas3);
//}
// }
// }
//матрица C
cc=0;
for (int i=0; i<n-1; i++)
for (int j=0; j<n-1; j++)
{
//if(mas3[i*n+j]==0)
if(cc<(v[i]+u[j]-mas2[i*n+j])) //&&((mas2[i*n+n-1]==1) || (mas2[(n-1)*n+j]==1))
{
cc=v[i]+u[j]-mas2[i*n+j];
ix=i;
jy=j;
}
}
if(cc>0)
{
mas3[ix*n+jy]=3;
//вычеркивание строк и столбцов
m=1;
while(m>0)
{
m=0;
for (int i=0; i<n-1; i++)//строки
{
sums=0;
for (int j=0; j<n-1; j++)
{
if(((mas3[i*n+j]==1)||(mas3[i*n+j]==2)||(mas3[i*n+j]==3))&&(mas2[i*n+n-1]==1)&&(mas2[(n-1)*n+j]==1))
sums=sums+1;
}
if(sums==1)
{
mas2[i*n+n-1]=0;
//mas2[(n-1)*n+j]=0;
m=m+1;
}
}
for (int j=0; j<n-1; j++)//столбцы
{
sumt=0;
for (int i=0; i<n-1; i++)
{
if(((mas3[i*n+j]==1)||(mas3[i*n+j]==2)||(mas3[i*n+j]==3))&&(mas2[(n-1)*n+j]==1)&&(mas2[i*n+n-1]==1))
sumt=sumt+1;
}
if(sumt==1)
{
//mas2[i*n+n-1]=0;
mas2[(n-1)*n+j]=0;
m=m+1;
}
}
}
//цикл и обмен
c=0;
strk(ix,jy,mas2,mas3,n,&c);
strk_z(ix,jy,mas2,mas3,n,&c);
if(c==1)
mas3[ix*n+jy]=1;
if(c==2)
mas3[ix*n+jy]=2;
fl=0;
for(int ii=0;ii<n-1;ii++)
if((mas3[ii*n+jy]!=0)&&(ii!=ix)&&(mas2[(n-1)*n+jy]==1)&&(mas2[ii*n+n-1]==1))
{
if(mas3[ii*n+jy]==2)
{
mas3[ii*n+jy]=0;
fl=1;
}
}
if(fl==0)
for(int jj=0;jj<n-1;jj++)
if((mas3[ix*n+jj]!=0)&&(jj!=jy)&&(mas2[(n-1)*n+jj]==1)&&(mas2[ix*n+n-1]==1))
{
if(mas3[ix*n+jj]==2)
mas3[ix*n+jj]=0;
}
}
}
delete [] v;
delete [] u;
delete [] ux;
delete [] vx;
}
//---------------------------------------------------------------------------
#pragma hdrstop
#include "S_z.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
int s_zy(int *mas2, int *mas3, int n)
{
int ix=0;
int jy=0;
//for(int ii=0;ii<n-1;ii++)
//{
//следующий элемент
//for (int i=0; i<n-1; i++)
// for (int j=0; j<n-1; j++)
// {
// if((mas2[i*n+n-1]==1) && (mas2[(n-1)*n+j]==1))
// {
// ix=i;
// jy=j;
// i=n;
// j=n;
// }
// }
//mas3[ix*n+jy]= 1;
//вычеркивание
//mas2[ix*n+n-1]=0;
//ms2[(n-1)*n+jy]=0;
//}
for (int i=0; i<n-1; i++)
{
mas3[i*n+i]= 1;
}
}
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Venger_m.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//
int stb(int i,int j,int *, int *, int n,int *c,int *x,int *y);
//
int strk(int i,int j,int *mas2, int *mas3, int n,int *c,int *x,int *y)
{
int z=0;
for(int ii=0;ii<n-1;ii++)
if(mas3[ii*n+j]==1)
{
mas2[ii*n+n-1]=1;
z=stb(ii,j,mas2,mas3,n,c,x,y);
if(*c==0)
*c=3;
ii=n-1;
}
return *c;
}
//
int stb(int i,int j,int *mas2, int *mas3, int n,int *c,int *x,int *y)
{
int z=0;
for(int jj=0;jj<n-1;jj++)
if((mas2[i*n+jj]==0)&&(mas3[i*n+jj]==0)&&(mas2[(n-1)*n+jj]==1))
{
mas2[(n-1)*n+jj]=0;
mas3[i*n+jj]=2;
strk(i,jj,mas2,mas3,n,c,x,y);
z=1;
if(*c==0)
*c=2;
if((*x==-1)&&(*y==-1))
{
*x=i;
*y=jj;
}
jj=n-1;
return *c;
}
//
int stb2(int i,int j,int *, int *, int n);
//
int strk2(int i,int j,int *mas2, int *mas3, int n)
{
int x=0;
for(int ii=0;ii<n-1;ii++)
if(mas3[ii*n+j]==2)
{
mas3[ii*n+j]=1;
tb2(ii,j,mas2,mas3,n);
ii=n-1;
}
return x;
}
//
int stb2(int i,int j,int *mas2, int *mas3, int n)
{
int x=0;
for(int jj=0;jj<n-1;jj++)
if((mas3[i*n+jj]==1)&&(jj!=j))
{
mas3[i*n+jj]=0;
strk2(i,jj,mas2,mas3,n);
x=1;
jj=n-1;
}
return x;
}
int venger(int *mas2, int *mas3, int n)
{
int ix=0;
int jy=0;
int min,zvt,zvs;
int e3,e2;
int c;
//
//минус по столбцам
for (int i=0; i<n-1; i++)
{
min=mas2[i*n+0];
for (int j=1; j<n-1; j++)
{
if(min>mas2[i*n+j])
min=mas2[i*n+j];
}
for (int j=0; j<n-1; j++)
{
mas2[i*n+j]=mas2[i*n+j]-min;
}
}
//минус по строкам
for (int j=0; j<n-1; j++)
{
min=mas2[0*n+j];
for (int i=1; i<n-1; i++)
{
if(min>mas2[i*n+j])
min=mas2[i*n+j];
}
for (int i=0; i<n-1; i++)
{
mas2[i*n+j]=mas2[i*n+j]-min;
}
}
// 0->*
int ns=0;
for (int i=0; i<n-1; i++)
{
zvt=0;
for (int j=0; j<n-1; j++)
{
if((mas2[i*n+j]==0)&&(zvt==0))
{
zvs=0;
for (int ii=0; ii<n-1; ii++)
if(mas3[ii*n+j]==1)
zvs=1;
if(zvs==0)
{
mas3[i*n+j]=1;
zvt=1;
ns=ns+1;
}
}
}
}
//ns=0;
while(ns<n-1)
{
ix=-1;
jy=-1;
//выделение столбцов
for (int i=0; i<n-1; i++)
for (int j=0; j<n-1; j++)
if(mas3[i*n+j]==1)
mas2[i*n+n-1]=0;
//первый этап
//e3=0;
e2=0;
for (int i=0; i<n-1; i++)
{
if(mas2[i*n+n-1]==1)
for (int j=0; j<n-1; j++)
{
if((mas2[i*n+j]==0)&&(mas3[i*n+j]==0))
{
mas2[(n-1)*n+j]=0;
mas3[i*n+j]=2;
// for (int ii=0; ii<n-1; ii++)
// if(mas3[ii*n+j]==1)
// {mas2[ii*n+n-1]=1; e3=1; i=0; e2=0;}
// else {if(e3==0) {e2=1; i=n-1;}}
c=0;
e3=strk(i,j,mas2,mas3,n,&c,&ix,&jy);
if(c==0)
{ix=i; jy=j;}
if(c%2==0)
{
i=n-1;
j=n-1;
}
else {ix=-1; jy=-1;}
}
}
}
//проверка на свободные нули
if(c%2==1)
{
for (int i=0; i<n-1; i++)
for (int j=0; j<n-1; j++)
{
if((mas2[i*n+n-1]==1)&&(mas2[(n-1)*n+j]==1))
if((mas2[i*n+j]==0)&&(mas3[i*n+j]==0))
{
c=2;
ix=i;
jy=j;
}
}
}
//третий этап
if(c%2==1)
{
min=1000000;
for (int i=0; i<n-1; i++)
for (int j=0; j<n-1; j++)
if((mas2[i*n+n-1]==1) && (mas2[(n-1)*n+j]==1))
if(min>mas2[i*n+j])
min=mas2[i*n+j];
for (int i=0; i<n-1; i++)
for (int j=0; j<n-1; j++)
{
if(mas2[i*n+n-1]==0)
mas2[i*n+j]=mas2[i*n+j]+min;
if(mas2[(n-1)*n+j]==1)
mas2[i*n+j]=mas2[i*n+j]-min;
}
}
//второй этап
if(c%2==0)
{
mas3[ix*n+jy]=1;
stb2(ix,jy,mas2,mas3,n);
ns++;
}
// очисткапо стр и стб выделений
for (int i=0; i<n-1; i++)
for (int j=0; j<n-1; j++)
if(mas3[i*n+j]==2)
mas3[i*n+j]=0;
for (int i=0; i<n-1; i++)
mas2[i*n+n-1]=1;
for (int j=0; j<n-1; j++)
mas2[(n-1)*n+j]=1;
}
}
Размещено на Allbest.ru
Подобные документы
Функциональное и эксплуатационное назначение изделия. Перечень требований пользователя к программному изделию. Программные ограничения, совместимость. Требования к параметрам технических средств. Безопасность и секретность, требования к надежности.
курсовая работа [574,6 K], добавлен 27.04.2011Функциональное и эксплуатационное назначение изделия, методологические ограничения. Требования к составу и параметрам технических средств. Описание алгоритма, входные и выходные данные. Стадии и этапы разработки, технико-экономическое обоснование.
курсовая работа [564,4 K], добавлен 18.01.2014Требования к программному изделию и параметрам технических средств. Описание пользовательского интерфейса для автоматизированной системы учёта товаров на оптовом складе. Обоснование выбора языков программирования, организации входных и выходных данных.
дипломная работа [3,4 M], добавлен 02.04.2013Системный анализ предметной области. Требования к программе и программному изделию, к функциональным характеристикам, к надежности, составу и параметрам технических средств. Обоснование выбора средств выбора для хранения и обработки базы данных.
реферат [403,8 K], добавлен 02.02.2014Число линейно независимых уравнений. Отрицательная базисная переменная. Симплекс-метод решения задач линейного программирования. Экстремальное значение целевой функции. Метод северо-западного угла. Задачи нелинейного программирования. Функция Лагранжа.
контрольная работа [257,5 K], добавлен 29.09.2008Исследование методов интерполяции функции и разработка программного продукта для автоматизации расчётов, выполняемых в данных методах. Обоснование выбора языка программирования. Требования к программе и программному изделию. Организация работы с ПЭВМ.
дипломная работа [2,1 M], добавлен 16.06.2017Назначение и цели создания системы. Требования к программе или программному изделию, к информационной и программной совместимости, к составу и параметрам технических средств. Алгоритм Rijndael. Назначение и условия применения программного продукта.
дипломная работа [1,3 M], добавлен 01.03.2009Анализ использования разработки, обзор средств программирования и описание языков. Требования к составу и параметрам технических средств. Построение алгоритма и требования к его функциональности. Описание рабочего места на вычислительном центре.
дипломная работа [2,6 M], добавлен 19.06.2017Математическая модель задачи. Симплекс-таблица. Решение задачи линейного программирования. коэффициенты при переменных в целевой функции. Метод северо-западного угла. Система неравенств в соответствии с теоремой Куна-Таккера. Функция Лагранжа.
контрольная работа [59,5 K], добавлен 29.09.2008Допустимый план методом северо-западного угла. Два алгоритмических шага: предварительный и общеповторяющийся. Нахождение допустимого ациклического плана. Анализ системы на потенциальность. Изменение значения целевой функции. Перемещение по циклу.
контрольная работа [27,1 K], добавлен 16.02.2009