Модель распределения ресурсов

gotoxy(tx+63,new_y); cout << "│";

gotoxy(tx+65,new_y); cout << a7;

gotoxy(tx+78,new_y); cout << "│";

new_y++;

if(new_y>24)

{

gotoxy(tx,new_y); cout << "└";

for (int i=0;i<c_x;i++)

cout << "─";

cout << "┘";

gotoxy(tx+7,ty+2);

cout << "┴";

gotoxy(tx+14,ty+2); cout << "┴";

gotoxy(tx+19,ty+2); cout << "┴";

gotoxy(tx+26,ty+2); cout << "┴";

gotoxy(tx+26,ty+2); cout << "┴";

gotoxy(tx+40,ty+2); cout << "┴";

gotoxy(tx+63,ty+2); cout << "┴";

new_y=ty+3;

}

}

void Table::EndOfTable()

{

int i,j;

gotoxy(tx,new_y); cout << "└";

for (i=0;i<c_x;i++)

cout << "─";

cout << "┘";

gotoxy(tx+7,ty+2); cout << "┴";

gotoxy(tx+14,ty+2); cout << "┴";

gotoxy(tx+19,ty+2); cout << "┴";

gotoxy(tx+26,ty+2); cout << "┴";

gotoxy(tx+26,ty+2); cout << "┴";

gotoxy(tx+40,ty+2); cout << "┴";

gotoxy(tx+63,ty+2); cout << "┴";

gotoxy(tx,new_y+1);

for(j=new_y+1;j<26;j++)

{

for(i=tx;i<c_x+4;i++)

{

gotoxy(i,j);

cout << " ";

}

}

gotoxy(1,24);

}

//------------Сообщения-----------------------------------------

void MessageSend(char *MessageForFunc)

{

cout << MessageForFunc << endl;

getch();

}

//----Определения функций, характеризующих выпуск продукции-----

double f3(int arg1, int arg2)

{

if((arg1<0 || arg1>ksi_0) || (arg2<0 || arg2>ksi_0))

return (double)MAXINT;

double Values[ksi_0+1][ksi_0+1]={ 0, 3.4, 3.8, 4.2, 5.0, 5.0, 0,

0, 3.7, 4.1, 4.5, 5.3, 5.3, 0,

0, 3.7, 4.1, 4.5, 5.4, 0, 0,

0, 4.0, 4.5, 4.8, 0, 0, 0,

0, 4.2, 4.8, 0, 0, 0, 0,

0, 4.6, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0 };

return Values[arg2][arg1];

}

double f2(int arg1, int arg2)

{

if((arg1<0 || arg1>ksi_0) || (arg2<0 || arg2>ksi_0))

return (double)MAXINT;

double Values[ksi_0+1][ksi_0+1]={ 0, 2.2, 2.8, 3.1, 4.3, 6, 0,

0, 3.1, 4.2, 5.3, 7.1, 8, 0,

0, 3.3, 4.5, 6.1, 7.3, 0, 0,

0, 3.5, 4.8, 6.7, 0, 0, 0,

0, 5.4, 5.9, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0 };

return Values[arg2][arg1];

}

double f1(int arg1)

{

if(arg1<0 || arg1>ksi_0)

return (double)MAXINT;

double Values[ksi_0+1]={ 0, 2.1, 3.2, 4.3, 5.1, 5.1, 0 };

return Values[arg1];

}

int main(void)

{

clrscr();

Table ob;

int ksi, eta, x, i, j, Indexes[6][5], IndexOfMax = -1, X_opt[3];

double Z_2[6][5], Max=0, MayBeMax=0, Z_max;

for(i=0; i<6; i++)

for(j=0; j<5; j++)

{

Z_2[i][j]=0;

Indexes[i][j]=-1;

}

for(ksi=1; ksi<7; ksi++)

{

for(eta=0; eta<5; eta++)

{

Max = MayBeMax = 0;

for(x=0; x<ksi + 1; x++)

{

if((ksi + eta) > 6)

break;

MayBeMax = f2(x, eta) + f3(ksi - x, x + eta);

if(Max < MayBeMax)

{

Max = MayBeMax;

IndexOfMax = x;

}

ob.NewString(ksi, eta, x, ksi-x, f2(x, eta), f3(ksi - x, x + eta), MayBeMax);

getch();

}

if(Max>0)

{

Z_2[ksi-1][eta] = Max;

Indexes[ksi-1][eta] = IndexOfMax;

}

}

}

ob.EndOfTable();

getch();

Max = MayBeMax = 0;

for(x = 0; x<ksi_0; x++)

{

MayBeMax = f1(x) + Z_2[ksi_0 - 1 - x][x];

if(Max < MayBeMax)

{

Max = MayBeMax;

X_opt[0] = x;

}

}

Z_max = Max;

X_opt[1] = Indexes[ksi_0 - 1 - X_opt[0]][X_opt[0]];

Max = MayBeMax = 0;

for(i=0; i<ksi_0 + 1; i++)

{

MayBeMax = f3(i,X_opt[0]+1);

if(Max < MayBeMax)

{

Max = MayBeMax;

X_opt[2] = i;

}

}

cout << "Максимальный выпуск продукции: " << Z_max << endl;

cout << "достигается при распределении средств: ";

cout << "x1=" << X_opt[0] << ", x2=" << X_opt[1] << ", x3=" << X_opt[2];

getch();

getch();

return 0;

}

Результаты работы программы

┌──┬───┬──┬──┬───────┬────────────┬───────┬

│ksi1│eta1│x1│ksi2│f2(x2,eta1)│Z3_max(ksi2,eta1+x1)│ Z2(ksi1,eta1)│

├───┴───┴──┴──┴───────┴───────────┴───────┴

│ 1 │ 0 │ 0 │ 1 │ 0 │ 3.4 │ 3.4 │

│ 1 │ 0 │ 1 │ 0 │ 2.2 │ 0 │ 2.2 │

│ 1 │ 1 │ 0 │ 1 │ 0 │ 3.7 │ 3.7 │

│ 1 │ 1 │ 1 │ 0 │ 3.1 │ 0 │ 3.1 │

│ 1 │ 2 │ 0 │ 1 │ 0 │ 3.7 │ 3.7 │

│ 1 │ 2 │ 1 │ 0 │ 3.3 │ 0 │ 3.3 │

│ 1 │ 3 │ 0 │ 1 │ 0 │ 4 │ 4 │

│ 1 │ 3 │ 1 │ 0 │ 3.5 │ 0 │ 3.5 │

│ 1 │ 4 │ 0 │ 1 │ 0 │ 4.2 │ 4.2 │

│ 1 │ 4 │ 1 │ 0 │ 5.4 │ 0 │ 5.4 │

│ 2 │ 0 │ 0 │ 2 │ 0 │ 3.8 │ 3.8 │

│ 2 │ 0 │ 1 │ 1 │ 2.2 │ 3.7 │ 5.9 │

│ 2 │ 0 │ 2 │ 0 │ 2.8 │ 0 │ 2.8 │

│ 2 │ 1 │ 0 │ 2 │ 0 │ 4.1 │ 4.1 │

│ 2 │ 1 │ 1 │ 1 │ 3.1 │ 3.7 │ 6.8 │

│ 2 │ 1 │ 2 │ 0 │ 4.2 │ 0 │ 4.2 │

│ 2 │ 2 │ 0 │ 2 │ 0 │ 4.1 │ 4.1 │

│ 2 │ 2 │ 1 │ 1 │ 3.3 │ 4 │ 7.3 │

│ 2 │ 2 │ 2 │ 0 │ 4.5 │ 0 │ 4.5 │

Страница:  1  2  3  4  5  6  7  8  9  10  11  12  13  14 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы