Скачиваний:
17
Добавлен:
02.05.2014
Размер:
365.06 Кб
Скачать

Транспортная матрица задачи №1

Станки

Ткани

Фонд времени

, ч

В1

В2

В3

В4

ВФ

А1

48

30

54

42

0

90

А2

72

60

72

42

0

110

А3

144

90

90

84

0

60

Объем выпуска , ч

50

30

100

20

60

4. Руководство для использования

Для запуска программы следует нажать клавишу Enter, после чего появится следующее окно. Следуя указаниям программы необходимо ввести соответствующие данные для получения конечного результата:

После ввода коэффициентов производительностей станков необходимо ввести производительность первого станка по выпуску всех видов тканей:

Затем на экране появится расчет производительностей остальных станков основанных на знании коэффициентов производительностей:

Затем необходимо ввести себестоимость производства каждого вида ткани на каждом станке:

Затем вводятся фонды рабочего времени и планируемые объемы выпуска:

Потом выводится результат: сколько часов должен работать каждый станок по выпуску соответствующей ткани:

Список использованной литературы:

1. Стивен Прата, «Язык программирования С++».

2. Б. М. Владимирский, А. Б. Горстко, Я. М. Ерусалимский, «Математика».

  1. Материал с математического портала www.allmath.ru.

  1. Подбельский В. В. «Язык С++».

  1. Скотт Мейерс. «Наиболее эффективное использование С++».

Текст программы

//---------------------------------------------------------------------------

#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=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<<matr[i][j];

}

}

getch();

return 0;

}

//---------------------------------------------------------------------------

Соседние файлы в папке поянилка