Реферати українською » Экономико-математическое моделирование » Завдання складання оптимального графіка ремонту інструмента


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

Страница 1 из 2 | Следующая страница

Міністерство освіти і науки Російської Федерації

Федеральне агентство за освітою

>ИРКУТСКИЙ ДЕРЖАВНИЙТЕХНИЧЕСКИЙ УНІВЕРСИТЕТ

КафедраАвтоматизированних систем

>ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

до курсовому проекту з дисципліни

Теорія Прийняття Рішення

ЗАВДАННЯСОСТАВЛЕНИЯ ОПТИМАЛЬНОГОГРАФИКАРЕМОНТАИНСТРУМЕНТА


Іркутськ 2009 р


Зміст

1. ПОСТАНОВКА ЗАВДАННЯ

2.ОБОСНОВАНИЕМАТЕМАТИЧЕСКОЙ МОДЕЛІ

3.КРАТКИЕ ДАНІ ПроМЕТОДЕ РІШЕННЯ ЗАВДАННЯ

3.1ТАБЛИЧНЫЙСИМПЛЕКС-МЕТОД

3.2 МЕТОДИСКУССТВЕННЫХПЕРЕМЕННЫХ

4. ПЕРЕВІРКАДОСТОВЕРНОСТИПОЛУЧЕННЫХ РЕЗУЛЬТАТІВ

5. АЛГОРИТМ РІШЕННЯ ЗАВДАННЯ

6.ЛИСТИНГ ПРОГРАМИ,РЕАЛИЗУЮЩИЙ АЛГОРИТМ ЗАВДАННЯ

7. КЕРІВНИЦТВОПОЛЬЗОВАТЕЛЯ

7.1СИСТЕМНЫЕ ВИМОГИ

7.2ОПИСАНИЕ МОЖЛИВОСТЕЙ

7.3ОСНОВНОЕ ВІКНО ПРОГРАМИ

7.4 ГОЛОВНЕ МЕНЮ ПРОГРАМИ

7.5 ВИКОРИСТАННЯ

7.5.1 Введення даних

7.5.2 Розрахунок графіка ремонту й купівлі

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

7.6 ВИКОРИСТАННЯИНЖЕНЕРНОГО РЕЖИМУ     

8. РІШЕННЯ ЗАВДАННЯКУРСОВОЙ РОБОТИ НА ПЕОМ ПОИСХОДНЫМДАННЫМ ІНДИВІДУАЛЬНОГО ВАРІАНТА

9. СПИСОКИСПОЛЬЗОВАННОЙ ЛІТЕРАТУРИ


1. Постановка завдання

Нехай до виконання деякою виробничої програми, розрахованої на послідовних днів, потрібно до початку го дня одиниць спеціального інструмента, який до кінця дня весь зношується.

Тому частина (чи весь) цього інструмента наприкінці го дня можна здавати у звичайний ремонт, частина (чи весь) в терміновий ремонт, а частина (чи весь) зношеного інструмента може здаватися в ремонт, залишаючись, наприклад, складі використаного інструмента. Звичайний ремонт інструмента триває днів і слід  рублів за одиницю інструмента, а терміновий ремонт інструмента триває днів і слід рублів за одиницю інструмента. Новий інструмент стоїть рублів.

Потрібна так скласти графік ремонту й купівлі інструмента, щоб за мінімальних витратах забезпечити підприємство інструментом протягом послідовних днів.

Конкретні числові умови завдання:

 добу

 у одиниць

 добу

 рублів

 добу

 рублів

 рублів

7

40  

0

20  

3 2 2 4 6

Вирішити це завдання методомсимплекс-таблиц, заснованому на методі повного винятку Гаусса, застосувавши перебування початкового припустимого базисного рішення метод штучних змінних.

Розроблений програмний продукт повинен обробляти числові значення з заданого діапазону:

а) кількість послідовних днів може або 6, чи 7, чи 8 днів; у своїй день, коли , може бути будь-якою з ухваленого діапазону;

б) кількість одиниць інструмента то, можливо взяте з діапазону 15..45;

в) тривалість звичайного ремонту може або 2 діб, чи 3 діб, чи 4 діб; яке вартість чи 1 крб. за одиницю інструмента, чи 2 крб. за одиницю інструмента, чи 3 крб. за одиницю інструмента;

р) тривалість термінового ремонту може або 1 добу, чи 2 діб, чи 3 діб; яке вартість чи 3 крб. за одиницю інструмента, чи 4 крб. за одиницю інструмента, чи 5 крб. за одиницю інструмента;

буд) вартість нового інструмента чи 5 крб. за одиницю інструмента, чи 6 крб. за одиницю інструмента, чи 7 крб. за одиницю інструмента.

модель рішення завдання графік ремонт


2. Обгрунтування математичну модель

Нехай до виконання деякою виробничої програми, розрахованої до 7 послідовних днів, потрібно до початку -го дня одиниць спеціального інструмента, який до кінця дня весь зношується, у своїй >r1=40; >r2=40; >r3=40; >r4=40; >r5=0; >r6=20; >r7=20 (>5-ий день – вихідний, тому >r5=0). Частина (весь) зношеного інструмента наприкінці -го дня може здаватися у звичайний ремонт, частина (весь) в терміновий, а частина (весь) може здаватися в ремонт, залишаючись наприклад складу використаного інструмента. Оскільки5-ий день є вихідним, то вона виробництво і ремонтні служби ж не працюють, тому математична модель буде побудовано для 6 днів, та був відповідь буде зміщений щодо вихідного (>r1=40; >r2=40; >r3=40; >r4=40; >r5=20; >r6=20 і j=6).

Нехай звичайний ремонт одного інструмента триває дні й стоїть крб., а терміновий ремонт одного інструмента триває що і стоїть рублів. З іншого боку, один новий інструмент стоїть рублів.

>Введем такі позначення:

 число інструментів, купованих від використання в і день;

 число інструментів,сдаваемих у звичайний ремонт наприкінці -го дня;

 число інструментів,сдаваемих в терміновий ремонт наприкінці го дня;

число зношених інструментів, решти не зданими в ремонт до кінця го дня. Тоді число інструментів, що у вживання у початку го дня, полягає:

з інструментів, зданих у звичайний ремонт днів тому і збереження одержаних з ремонту наприкінці го дня;

з інструментів, зданих в терміновий ремонт днів тому і збереження одержаних з ремонту наприкінці го дня;

з інструментів, придбаних до початку го дня, тобто.

 

де кількість інструмента, купленого від використання в 1-ї день; , оскільки на початок виконання виробничої програми в ремонт було надходити використаний інструмент й у перші днів (у разі 3 дня) ще надійде з ремонту у її слововжиток жодного інструмента, зданої навіть у терміновий ремонт, а перші днів (у разі 4 дня) вступить у її слововжиток жодного інструмента, зданої у звичайний ремонт.

Наприкінці го дня виявляться використаними інструментів, колишніх у вживанні цього дня і інструментів, решти не зданими в ремонт до кінця го дня, тобто. , їх одиниць вступає у звичайний ремонт, одиниць - в терміновий помешкання і залишилося не зданими в ремонт одиниць інструмента

 

У цьому слід врахувати, що інструмент, який повернеться з ремонту наприкінці го (у разі 6-го дня) і потім, не знадобиться. Тому сьогодні ще за днів (у разі дні) остаточно програми годі було здавати їх у звичайний ремонт, тобто.

і поза днів (у разі протягом двох) остаточно програми годі було здавати їх у терміновий ремонт, тобто.

За всі терміни виконання виробничої програми буде куплено інструментів, і витрачено цього рублів; буде здано у звичайний ремонт інструментів, і витрачено рублів; буде здано в терміновий ремонт інструментів, і витрачено цього рублів.

Тим самим було завдання залежить від мінімізації загальної вартості витрат

при обмеженнях

й нестерпні умови


Для конкретних числових значень цільова функція виглядає:

, при обмеженнях:

xj0 ( j = 1(1)5 );

yj0 ( j = 1(1)2 );

>zj0 ( j = 1(1)3 );

uj0 ( j = 1(1)6 );

Для зручності рішення xj (j=0(1)5 ); yj (j=1(1)2 );zj (j=1(1)3 ); uj (j=1(1)6 ) замінимо на x>k, деk=1(1)17. Обмеження приймуть вид:


x>k 0 (k = 1(1)17)

Аби вирішити завдання методом штучних змінних додамо в обмеження і цільову функцію перемінні x18, x19, x20, x21, x22:

,

при обмеженнях:


x>k 0 (k = 1(1)22)


3. Стислі інформацію про методі виконання завдання

 

3.1Табличнийсимплекс-метод

Основна ідеясимплекса-метода полягає у переході від однієї припустимого базисного рішення до іншого в такий спосіб, що значення цільової функції у своїй безупинно зростають (для завдань максимізації). Припустимо, що обмеження завдання було зведено до таких, що у матриці А є одиничнаподматрица і всі вільні члени позитивні. Інакше кажучи, нехай матриця обмежень має вигляд

A>1x1+...+Anxn+e1xn+e1xn+>1+…+e>mxn+>m=A0=[a>i0],

де

 . - одиничний базис, a>i0 ≥ 0

всім і = 1, 2,..., n.Применим одну ітерацію методу повного винятку до розширеній матриці обмежень A>p=[A1, ., An, e1, ., e>m, A0].

Перетворення Гаусса називаютьсимплексним перетворенням, коли спрямовує елемент визначають за такими правилам:

a) спрямовує стовпець j обирають з умови, що він є хоча б тільки позитивний елемент;

б) котра спрямовує рядок і вибирають те щоб ставлення було мінімально за умови, що a>ij>0.

За такої перетворення на базис вводиться вектор Aj і виводиться вектор Аі. Тепер потрібно визначити, як вибрати вектор, запроваджуваний в базис, щоб цьому значення цільової функції збільшилося.

І тому використовують звані оцінки векторів j:

 (2.2.21)

де Iб - безліч індексів базисних векторів; x>ij- визначають з умови

  (2.2.22)

>Величини {j} рівнісимплекс-разностям для змінних {xj} з протилежним знаком. Отже, щоб значення цільової функції збільшилося, необхідно вибрати спрямовує стовпець Аj із найбільшою по модулю негативною оцінкою, тобто

 .

Аби вирішити завданнясимплекс-методом з кожної ітерації заповнюютьсимплекс-таблицу 2.2.

Таблиця 2.2.


Останній рядок таблиці - індексна служить визначення подає шпальти. Її елементи j визначають за такою формулою (2.2.21). Вочевидь, всім базисних векторів {Aі}i=1,.,m оцінки і=a0і=0.

Значення цільової функції a00 визначається з співвідношення

 .

У стовпці Bx записуємо базисні перемінні {xі} і= 1, ..., т. Їх значення визначаються стовпчиком вільних членів a>i0, тобто xі = a>i0,i=1,2,.,m.

>Направляющие рядок Aі і стовпець Aj вказуються стрілками. Якщо ролі подає елемента обраний a>ij, то перехід від даної симплекс таблиці до наступній визначається співвідношеннями (2.2.16) - (2.2.18).

Алгоритм виконання завдання ЛЗтабличнимсимплексом-методом складається з етапів.

1.Рассчитивают і заповнюють початковусимплекс-таблицу з допустимим одиничним базисом, включаючииндексную рядок.

2. Як подає шпальти вибирають Aj, котрій .

3.Направляющая рядок Aй обирають з умови

4. Роблять крок (ітерацію) методу повного винятку Гаусса з котрі спрямовують елементом a>ij, навіщо використовують співвідношення (2.2.16) - (2.2.18). Зокрема, елементи індексної рядки нової таблиці обчислюють відповідно до формулою


  >l=1,2, ..., n.

Правильність обчислень контролюють по формулам безпосереднього рахунки:

 (2.2.23)

 (2.2.24)

У стовпці Bx нової таблиці заміняють xі на xj, а стовпці З зі на зj.

5. Якщо всі a>0l(>k+1)0,l=1,.,n, те нове базисне рішення xі= a>i0(>k+1), і ? Iб(>k+1) - оптимально. Інакше переходять етапу 2 виконують чергову ітерацію.

6. Другий, третій і четвертий етапи повторюють до того часу, поки одне з ітерацій не закінчиться однією з двох фіналів:

проте a>0l 0. Це ознака (критерій) оптимальності базисного рішення останньоїсимплекс-таблици;

б) знайдеться такий a>0j=∆j<0, що це елементи цього шпальти a>rj0, (>r = 1, .,m). Це ознака необмеженість цільової функціїz = зjxj на безлічі допустимих рішень завдання.

3.2 Метод штучних змінних

Нехай обмеження завдання ЛЗ мають вигляд AxA0.

Якщо всі bі 0, і = 1, 2,...,m, то вільні вектори, що утворюють одиничнуподматрицу, становлять базис, а відповідні їм перемінні - початкова базисне рішення.

У випадку, коли деякі обмеження мають знак «», наприклад aі1x1 + aі2x2 +...+ainxnbі ,i=1,2,....,m,

то тут для приведення цих обмежень до стандартної формі рівностей вільні перемінні треба відняти. Тоді розширена форма завдання матиме такий її різновид:

a11x1 + a12x2 +…+ a1nxn -1xn+1 +0xn+2 +…+>0xn+>m = b1;

a21x1 + a22x2 +…+ a2Nxn +>0xn+1->1x>n+2 +…+>0x>n+m = b2; (2.3.1)

. . . . . . . . . . . . . . . . . . . . . .

a>m1x1 + a>m2x2 +...+ a>mnxn +0xn+1 +0x>n+2 +...->1x>n+m = b>m.

Вільні перемінні {xn+1,…,xn+>m}у разі вже неможливо використати як початкового базису, оскільки xn+1<>0,...,xn+>m<0. Тож у рівняння (2.3.1) додатково вводять штучні перемінні xn+>m+1,…,xn+>m+>k. Ці перемінні немає нічого спільного з реальною завданням, і тому їх треба вивести ринок із базису якнайшвидше. І тому до початку ітерацій штучним змінним в цільової функції приписують для завдань максимізації дуже серйозні по модулю негативні коефіцієнти (-М), деM>>cі , (і = 1, 2, ..,>m).

Що стосується вирішення завдань мінімізації штучні перемінні вводять у цільову функцію з більшими на позитивними коефіцієнтами (+М).

Знаки штучних змінних xn+>m+1,...,xn+>m+>k мають співпадати зі знаками відповідних вільних членів. Штучні перемінні утворюють початкова базисне рішення. Застосувавшисимплекс-метод, необхідно вивести ринок із базису все штучні перемінні. Якщо вдасться довести (або показати), що штучні перемінні повністю вивести ринок із базису неможливо, це означатиме, що завдання має розв'язання, тобто її обмеження суперечливі.


4. Перевірка достовірності отриманих результатів

У випадку перевірка отриманих результатів після чергового ітерації обчислення здійснюється так:

· Значення елементів рядки, що містить j, обчислюються як елементисимплекс-таблици (крім першоїсимплекс-таблици, у яких такі обчислення неможливі).

· Значення елементів рядки, що містить j, обчислюються другим способом, саме по формулам безпосереднього рахунки:

 

 

· Значення, отримані цими двома шляхами, порівнюються. Якщо значення рівні, отже обчислення проведено вірно. У зворотному разі, користувачеві видається повідомлення про помилку обчислень.

Додатковим засобом перевірки достовірності є використання «>Инженерного режиму», реалізованого у програмі. У цьому режимі можна подивитися кожен етап обчислення завдання.

У конкурсній програмі також реалізовані такі методи обробки помилок обчислень:

1. Якщо ж відбувається «зациклення» програми (у програмі, якщо кількість ітерацій понад сотню), користувачеві видається повідомлення про помилку. Ця ситуація може виникнути у разівирожденности матриці – вектор, який був раніше виведено з базису, знову вводять у базис.

2. Якщо ж з базису вдається вивести штучні перемінні, користувачеві видається повідомлення про помилку. Це означає, що обмеження завдання суперечливі і завдання має розв'язання.


5. Алгоритм виконання завдання

1. Перевірка правильності введення даних.

2. Побудовасимплекс-таблици повведенним даним.

3. Додавання штучних змінних.

4. Вибір подає елемента.

5. Розподіл спрямовуючої рядки на спрямовує елемент.

6. Підрахунок інших елементів нової симплекс таблиці.

7. Якщо під час рішення достовірність результатів порушується, припиняються подальші обчислення, користувачеві видається інформація про помилку.

8. Якщо цикл розрахункусимплекс-таблиц точиться, примусово припиняється процес, користувачеві видається інформація про помилку.

9. Якщо з базисного рішення не виведені все штучні перемінні, користувачеві видається інформація про помилку.

10. Якщо рішення отримано, результати виводяться на екран.


6.Листинг програми, який реалізує алгоритм завдання

 

>const

>m=25;

>n=25;

>type

>TFirstKoef=array[1..m,1..n] of real; //початкова матрицякоефицентов

>Simplex=array[1..m,1..n+m] of real; //нова матрицякоефицентов з штучними перемінними

>FullSimplex=array[1..m+2,1..n+m+2] of real;

>TE=array[1..n] ofinteger; //початковий неповний базис

>TAddBas=array[1..m] ofinteger; //штучні перемінні запроваджувані щоб одержати базису

>TFullBas=array[1..m+n] ofinteger; //повний базис

>TTarFunc=array[1..60] ofinteger; //Цільова функція

>var

>Form1:TForm1;

>Fkoef:TFirstKoef;

>NumOfNewVars:integer;

>fullBasis:TFullBas;

>EngFull:FullSimplex;

F:File ofTrec;

>TarFunc:TTarFunc;

{------------------------------------------------------------------}

>functionSort(E:TE):TE; //сортування масиву типу ТІ

>var

>i,k,tmp,nn,p,q:integer;

>begin

>p:=strtoint(Form1.Edit1.Text);

>q:=strtoint(Form1.Edit3.Text);

>nn:=2*(Form1.TrackBar1.Position-1)+(Form1.TrackBar1.Position-2-p)+(Form1.TrackBar1.Position-2-q);

>fork:=nndownto 2do

>fori:=1 tok-1do

>ifE[i]>E[i+1]then

>begin

>tmp:=E[i];

>E[i]:=E[i+1];

>E[i+1]:=tmp;

end;

>Sort:=E;

end;

{------------------------------------------------------------------}

>functionNullCheck(j:integer;Fkoef:TFirstKoef):boolean; //функція перевірки шпальт матриці на наявність можливих базисних (одна "1" інші "0")

>var

>k,mm:integer;

>Summ: real;

>begin

>Summ:=0;

>mm:=2*(Form1.TrackBar1.Position-1);

>fork:=1 tommdo

>Summ :=Summ +Fkoef[k,j];

>ifsumm=1then

>NullCheck:=true

>else

>NullCheck:=false;

end;

{------------------------------------------------------------------}

>functionAddVars(Basis:TE):TFullBas; //функція додавання шпальт з штучними перемінними

>var

Base:TE;

>newBase:TAddBas;

>full:TFullBas;

>j,k,count,inc,i,maxel,ncols,mm,nn,p,q:integer;

>begin

>p:=strtoint(Form1.Edit1.Text);

>q:=strtoint(Form1.Edit3.Text);

>mm:=2*(Form1.TrackBar1.Position-1);

>nn:=1+2*(Form1.TrackBar1.Position-1)+(Form1.TrackBar1.Position-2-p)+(Form1.TrackBar1.Position-2-q);

>forj:=1 tommdo

>newBase[j]:=0;

>NumOfNewVars:=0;

>Base:=Sort(Basis);

>count:=1;

//код нижче реалізує пошук і освоєння додавання штучних змінних коли їх потрібно додати на початок і середину одиничної матриці

>forj:=2 tonndo

>begin

>k:=Base[j]-Base[j-1];

>if (>k<>0) and (>k<>1)then

>begin

>inc:=1;

>fori:=1 tok-1do

>begin

>newBase[count]:=Base[j-1]+inc;

>count:=count+1;

>inc:=inc+1;

>NumOfNewVars:=NumOfNewVars+1;

end;

end;

end;

//код нижче реалізує пошук штучної перемінної яка перебуває в максимальному наближенні до правому нижньому розі одиничної матриці

>maxEl:=newBase[1];

>fori:=2 tommdo

>if (>newBase[i]>newBase[i-1])then

>maxEl:=newBase[i];

 >ifmaxel<Base[nn]then

>maxel:=Base[nn];

//якщо одинична матриця неповна, то додаються додаткові перемінні

>ifmaxel<mmthen

>begin

>ncols:=mm-maxel;

>inc:=1;

>fori:=count toncols+count-1do

>begin

>newBase[i]:=maxel+inc;

>inc:=inc+1;

>NumOfNewVars:=NumOfNewVars+1;

end;

end;

//запис вектора що містить базисні перемінні

>fori:=1 tonndo

>full[i]:=Basis[i];

>j:=1;

>fori:=nn+1 tonn+mmdo

>begin

>full[i]:=newBase[j];

>j:=j+1;

end;

>AddVars:=full;

end;

{------------------------------------------------------------------}

>functionArtificialVars(Fkoef:TFirstKoef):Simplex; //реалізація методу штучних змінних

>var

>i,j,mm,nn,p,q:integer;

>Basis :TE;

>Simp:Simplex;

>begin

>p:=strtoint(Form1.Edit1.Text);

>q:=strtoint(Form1.Edit3.Text);

>mm:=2*(Form1.TrackBar1.Position-1);

>nn:=2*(Form1.TrackBar1.Position-1)+(Form1.TrackBar1.Position-2-p)+(Form1.TrackBar1.Position-2-q)+1;

>fori:=1 tonndo

>Basis[i]:=0;

>forj:=1 tonndo //

 >fori:=1 tommdo //перебір початковій матрицікоефицентов постолбцам згори донизу

>begin;

>Simp[i,j]:=Fkoef[i,j];

>ifFkoef[i,j]=1then //тоді як стовпці єеденица

>ifnullcheck(j,Fkoef)then //перевірка чи є даний стовпець базисним

>Basis[j]:=i;

end;

>fullBasis:=AddVars(Basis); //виклик функції для додавання штучних шпальт щоб отримати базисне рішення

>forj:=1 toNumOfNewVarsdo

>fori:=1 tommdo

>ifi=fullBasis[nn+j]then

>Simp[i,nn+j]:=1

>else

>Simp[i,nn+j]:=0;

>ArtificialVars:=Simp;

end;

{------------------------------------------------------------------}

>functionTForm1.SelectCol(fullSimp:FullSimplex):integer;

>var

>j,mm,nn,p,q,napravCol:integer;

>maxdelt:real;

>begin

>p:=strtoint(Form1.Edit1.Text);

>q:=strtoint(Form1.Edit3.Text);

>nn:=2*(Form1.TrackBar1.Position-1)+(Form1.TrackBar1.Position-2-p)+(Form1.TrackBar1.Position-2-q);

>mm:=2*(Form1.TrackBar1.Position-1);

>maxdelt:=fullSimp[mm+2,4];

>forj:=5 tonn+3+Numofnewvarsdo

>iffullSimp[mm+2,j]>maxdeltthen

>begin

>maxdelt:=fullSimp[mm+2,j];

>napravCol:=j;

end;

>ifmaxdelt>0then

>SelectCol:=napravCol

>else

>SelectCol:=-1;

end;

{------------------------------------------------------------------}

>functionSelectRow(fullSimp:FullSimplex;Col:integer):integer;

>var

>i,mm,napravRow:integer;

>minel,tmp:real;

>begin

>mm:=2*(Form1.TrackBar1.Position-1);

>tmp:=1000;

>fori:=2 tomm+1do

>iffullSimp[i,Col]>0then

>begin

>minel:=tmp;

>tmp:=fullSimp[i,3]/fullSimp[i,Col];

>iftmp<minelthen

>begin

>minel:=tmp;

>napravRow:=i;

end;

end;

>SelectRow:=napravRow;

end;

{------------------------------------------------------------------}

>functionDelta(fullSimp:FullSimplex;j:integer):real;

>var

>i,mm:integer;

>delt: real;

>begin

>delt:=0;

>mm:=2*(Form1.TrackBar1.Position-1);

>fori:=2 tommdo

>delt:=delt+fullSimp[i,j] *fullSimp[i,1];

>Delta:=delt-fullSimp[1,j];

end;

{------------------------------------------------------------------}

>functionTForm1.NewTable(fullSimp:FullSimplex;TarFunc:TTarFunc):FullSimplex;

>var

>p,q,mm,nn,NapravCol,NapravRow,i,j:integer;

>NapravEl:real;

>NewTab:FullSimplex;

>err:boolean;

>begin

>p:=strtoint(Form1.Edit1.Text);

>q:=strtoint(Form1.Edit3.Text);

>nn:=2*(Form1.TrackBar1.Position-1)+(Form1.TrackBar1.Position-2-p)+(Form1.TrackBar1.Position-2-q);

>mm:=2*(Form1.TrackBar1.Position-1);

>NapravCol:=SelectCol(fullSimp);

>NapravRow:=SelectRow(fullSimp,NapravCol);

>NapravEl:=fullSimp[NapravRow,NapravCol];

>forj:=4

Страница 1 из 2 | Следующая страница

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

Навігація