Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Реалізація алгоритму симплекс-методу з довільними вільними членами

Реферат Реалізація алгоритму симплекс-методу з довільними вільними членами





який у подальшому буде инициализирован як матриця, що відповідає за розміром системі обмежень поставленого завдання ( num_l x num_v ).

int * sign зберігає в собі знак кожного обмеження системи. Є покажчиком типу int, який буде инициализирован як одновимірний масив типу з розміром num_l . Раціонально використовувати в даному випадку цілочисельний тип а не строковий. т.к. У нас є три знаки: lt; =,=і gt; =, які храняться в * sign як 0, 1 і 2 відповідно.

bool way зберігає в собі напрямок цільової функції задачі (min/max). При вирішенні завдання на максимум ця змінна-член буде зберігати в собі значення істини (true). А при вирішенні на мінімум, відповідно, брехня (false). Такий спосіб зберігання даних дуже раціональний у даному випадку, оскільки напрямків у функції мети може бути тільки два. Тому тип bool ідеально підходить для цього.

Функція void get_data_from_user () , власне запитує у користувача дані, які обробляє належним чином і поміщає в захищені змінні-члени даного класу, наведені вище. У заголовному файлі зберігається тільки прототип даної функції. Саме визначення функції знаходиться у файлі user_data.cpp . Розглянемо вміст цього файлу.


Лістинг 2. user_data.cpp


# include lt; iostream gt;

# include lt; string gt;

# include lt; cstdlib gt;


# include user_data.h std :: cout; std :: cin; std :: endl; std :: string;

error (int err_no)

{(err_no) {0: lt; lt; nВи ввели некоректне значення. n lt; lt; endl;

break; 1: lt; lt; nВи не можете задати менше двох обмежень. n lt; lt; endl ;; 2: lt; lt; nВи не можете задати більше 500 обмежень. n lt; lt; endl ;; 3: lt; lt; nВи не можете задати менше двох змінних. n lt; lt; endl ;; 4: lt; lt; nВи не можете задати більш 500 рівнянь. n lt; lt; endl;

break;

}

}

user_data :: get_data_from_user ()

{num_limits, num_vars, s_var, fr_m, sn, func, w; i, j; validator=false;


do { lt; lt; Введіть кількість обмежень у системі: raquo ;;

getline (cin, num_limits); (atoi (num_limits.c_str ()) lt; 2) (1); if (atoi (num_limits.c_str ()) gt; 500) (2); =true;

} while (! validator);

_ l=atoi (num_limits.c_str ());

validator=false;

{ lt; lt; Введіть кількість змінних в системі обмежень: raquo ;;

getline (cin, num_vars); (atoi (num_vars.c_str ()) lt; 2) (3); if (atoi (num_vars.c_str ()) gt; 500) (4); =true;


} while (! validator);

_ v=atoi (num_vars.c_str ());=false;=new double [num_v];=new double * [num_l]; (i=0; i lt; num_l; i ++) [ i]=new double [num_v];=new double [num_l];=new int [num_l];


cout lt; lt; nЗаполніте коефіцієнти при цільовій функції. n lt; lt; endl;


for (i=0; i lt; num_v; i ++) {

do { lt; lt; Введіть коефіцієнт цільової фукнции при x lt; lt; i + 1 lt; lt; laquo ;: raquo ;;

getline (cin, func); (atof (func.c_str ()) == 0) (0); {= true; [i]=atof (func.c_str ());

}

} while (! validator);=false;

} {

cout lt; lt; Введіть напрямок цільової функції (min, max): raquo ;;

getline (cin, w); (w == max || w == MAX || w == min || w == MIN ) {= true; (w == max || w == MAX )=true;=false;

} (0);


} while (! validator); lt; lt; nЗаполніте систему обмежень. n lt; lt; endl;

(i=0; i lt; num_l; i ++) {

cout lt; lt; Заповніть lt; lt; i + 1 lt; lt; -е обмеження. n lt; lt; endl;

for (j=0; j lt; num_v; j ++) {

do { lt; lt; Введіть коефіцієнти при x lt; lt; j + 1 lt; lt; laquo ;: raquo ;;

getline (cin, s_var); (atof (s_var.c_str ()) == 0) (0); {= true;

}

} while (! validator); [i] [j]=atof (s_var.c_str ());

validator=false;

}

<...


Назад | сторінка 2 з 7 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Програмна реалізація графічного методу розв'язання задач нелінійного пр ...
  • Реферат на тему: Прямий пошук без обмежень. Метод пошуку Хука-Дживса для функції Розенброка ...
  • Реферат на тему: Визначення цільової функції симплекс-методом
  • Реферат на тему: Реалізація обмежень в СУБД MySQL
  • Реферат на тему: Реалізація обмежень прав і свобод громадян в практичному аспекті