Модель распределения ресурсов
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 │
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности