Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int n, m, t;
float l[10][10], c[10][10], a[10], b[10];
float l1[10], max;
cout<<"Vvedite kolichestvo stankov: ";
cin>>n;
cout<<"Vvedite kolichestvo tipov vipuskaemoy tkani: ";
cin>>m;
cout<<"\n";
for (int i=1; i<=n; i++)
{
cout<<"Vvedite koeffitsient proizvoditelnosti "<<i<<"-go stanka: ";
cin>>l1[i];
}
cout<<"\n";
clrscr();
for (int j=1; j<=m; j++)
{
cout<<"Vvedite proizvoditelnost 1-go stanka\
\npo "<<j<<"-mu vidu tkani: ";
cin>>l[1][j];
}
clrscr();
cout<<"\n";
for (int i=2; i<=n; i++)
{
cout<<"\n";
for (int j=1; j<=m; j++)
{
l[i][j]=l[1][j]/(l1[1]/l1[i]);
cout<<"Proizvoditelnost "<<i<<"-go stanka\
\npo "<<j<<"-mu vidu tkani (m/ch): "<<l[i][j]<<endl;
}
}
getch();
clrscr();
cout<<"\n";
for (int i=1; i<=n; i++)
{
cout<<"\n";
for (int j=1; j<=m; j++)
{
cout<<"Vvedite sebestoimost "<<j<<"-go vida tkani\
\nna "<<i<<"-m stanke (rub/m): ";
cin>>c[i][j];
}
}
getch();
clrscr();
cout<<"\n";
for (int i=1; i<=n; i++)
{
cout<<"Vvedite fond rabochego vremeni "<<i<<"-go stanka (ch): ";
cin>>a[i];
}
cout<<"\n";
for (int j=1; j<=m; j++)
{
cout<<"Vvedite planiruemiy obyem vipuska "<<j<<"-y tkani (m): ";
cin>>b[j];
}
clrscr();
float aL[10];
for (int i=1; i<=n; i++)
{
aL[i]=1/(l1[1]/l1[i]);
// cout<<aL[i]<<" ";
}
int a1[10];
for (int i=1; i<=n; i++)
{
a1[i]=aL[i]*a[i];
// cout<<a1[i]<<" ";
}
cout<<"\n";
int b1[10];
for (int j=1; j<=m; j++)
{
b1[j]=b[j]/l[1][j];
// cout<<b1[j]<<" ";
}
cout<<"\n";
int c1[10][10];
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
c1[i][j]=c[i][j]*l[1][j];
clrscr();
/*int x=0, y=0;
for (int i=1; i<=n; i++)
{
x=1;
y++;
for (int j=1; j<=m; j++)
{
gotoxy(x+=5,y);
cout<<c1[i][j];
}
} */
int xs[10][10];
int matr[10][10];
int min=xs[1][1];
int p, q;
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
matr[i][j]=0;
int s1=0;
for (int i=1; i<=n; i++)
s1=s1+a1[i];
int s2=0;
for (int j=1; j<=m; j++)
s2=s2+b1[j];
if (s1>s2)
{
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
xs[i][j]=c1[i][j];
int j=m+1;
for (int i=1; i<=n; i++)
xs[i][j]=0;
b1[m+1]=s1-s2;
// ----------------
while (min!=10000)
{
min=10000;
for (int i=1; i<=n; i++)
for (int j=1; j<=m+1; j++)
if (xs[i][j]<min)
{
min=xs[i][j];
p=i;
q=j;
}
if ((b[q]==0) || (a[p]==0))
xs[p][q]=10000;
else
if (a[p]>b[q])
{
matr[p][q]=b[q];
a[p]=a[p]-b[q];
b[q]=0;
xs[p][q]=10000;
}
else
{
matr[p][q]=a[p];
b[q]=b[q]-a[p];
a[p]=0;
xs[p][q]=10000;
}
}
// ----------------
}
else if (s1<s2)
{
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
xs[i][j]=c1[i][j];
int i=n+1;
for (int j=1; j<=m; j++)
xs[i][j]=0;
a1[n+1]=s2-s1;
// ----------------
while (min!=10000)
{
min=10000;
for (int i=1; i<=n+1; i++)
for (int j=1; j<=m; j++)
if (xs[i][j]<min)
{
min=xs[i][j];
p=i;
q=j;
}
if ((b[q]==0) || (a[p]==0))
xs[p][q]=10000;
else
if (a[p]>b[q])
{
matr[p][q]=b[q];
a[p]=a[p]-b[q];
b[q]=0;
xs[p][q]=10000;
}
else
{
matr[p][q]=a[p];
b[q]=b[q]-a[p];
a[p]=0;
xs[p][q]=10000;
}
}
// ----------------
}
else
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
xs[i][j]=c1[i][j];
// ----------------
while (min!=10000)
{
min=10000;
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
if (xs[i][j]<min)
{
min=xs[i][j];
p=i;
q=j;
}
if ((b[q]==0) || (a[p]==0))
xs[p][q]=10000;
else
if (a[p]>b[q])
{
matr[p][q]=b[q];
a[p]=a[p]-b[q];
b[q]=0;
xs[p][q]=10000;
}
else
{
matr[p][q]=a[p];
b[q]=b[q]-a[p];
a[p]=0;
xs[p][q]=10000;
}
}
// ----------------
/*int x=0, y=0;
for (int i=1; i<=n; i++)
{
x=1;
y++;
for (int j=1; j<=m+1; j++)
{
gotoxy(x+=5,y);
cout<<xs[i][j];
}
}
cout<<endl;
for (int j=1; j<=m+1; j++)
cout<<" "<<b1[j]; */
cout<<"Reshenie: skolko metrov dolzhen proizvodit kakoy tkani kazhdiy stanok\
\n(stroki - stanki, stolbtsi - vidi tkaney)";
int x=3, y=3;
for (int i=1; i<=n; i++)
{
x=1;
y++;
for (int j=1; j<=m; j++)
{
gotoxy(x+=5,y);
cout<<matr[i][j];
}
}
getch();
return 0;
}
//---------------------------------------------------------------------------