Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб1

.docx
Скачиваний:
5
Добавлен:
11.02.2015
Размер:
479.29 Кб
Скачать

Выполнение задания:

  • В соответствии с 7м номером компьютера ввели следующие значения:

с1 =7

с2=5

L10= 9

L20=10

Т0 = 2.4778

dT= 1.7

Координата по оси абсцисс X=0.3

Координата по оси ординат Y = 0.25

clear,clc,close all

disp('ВВЕДИТЕ ПАРАМЕТРЫ c1,c2,L10,L20 В КОМАНДНОЙ СТРОКЕ')

% АНАЛИЗ ВВОДА НОРМАТИВНОЙ ТРУДОЕМКОСТИ 1-Й ПОДСИСТЕМЫ В МИНУТАХ (ЧАСАХ)

c1=input('ВВЕДИТЕ c1: ');

if c1==0|c1<0|c1==inf|isreal(c1)==0

errordlg('ОШИБКА ВВОДА: c1 ДОЛЖНО БЫТЬ КОНЕЧНЫМ ДЕЙСТВИТЕЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ!ПОВТОРИТЕ ВВОД')

c1=input('ВВЕДИТЕ c1: ');

if c1==0|c1<0|c1==inf|isreal(c1)==0

errordlg(' ПОВТОРНАЯ ОШИБКА ВВОДА!ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

%---------------------------------------------------------------------------------------------------------------------

% АНАЛИЗ ВВОДА НОРМАТИВНОЙ ТРУДОЕМКОСТИ 2-Й ПОДСИСТЕМЫ В МИНУТАХ (ЧАСАХ)

c2=input('ВВЕДИТЕ c2: ');

if c2==0|c2<0|c2==inf|isreal(c2)==0

errordlg('ОШИБКА ВВОДА: c2 ДОЛЖНО БЫТЬ КОНЕЧНЫМ ДЕЙСТВИТЕЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ!ПОВТОРИТЕ ВВОД')

c2=input('ВВЕДИТЕ c2: ');

if c2==0|c2<0|c2==inf|isreal(c2)==0

errordlg(' ПОВТОРНАЯ ОШИБКА ВВОДА!ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

%-----------------------------------------------------------------------------------------------------------------

% ---------------------- АНАЛИЗ ВВОДА ЧИСЛА ЭВМ 1-Й ПОДСИСТЕМЫ -----------------------------------------------------

L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: ');

if L10==0|L10<0|isreal(L10)==0|L10-fix(L10)~=0

errordlg('ОШИБКА ВВОДА ЧИСЛО ЭВМ ДОЛЖНО БЫТЬ НАТУРАЛЬНЫМ ЧИСЛОМ И БОЛЬШЕ НУЛЯ.ПОВТОРИТЕ ВВОД')

L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: ');

if L10==0|L10<0|L10-fix(L10)~=0

errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ЧИСЛА ЭВМ.ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

%----------------------- АНАЛИЗ ВВОДА ЧИСЛА ЭВМ 2-Й ПОДСИСТЕМЫ ---------------------------------------------------

L20=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: ');

if L20==0|L20<0|L20-fix(L20)~=0

errordlg('ОШИБКА ВВОДА: ЧИСЛО ЭВМ ДОЛЖНО БЫТЬ НАТУРАЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ. ПОВТОРИТЕ ВВОД')

L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: ');

if L20==0|L20<0|L20-fix(L20)~=0

errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ЧИСЛА ЭВМ.ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

% -------------------------- АНАЛИЗ ИНТЕРВАЛА ВРЕМЕНИ -----------------------------

disp('---------------------------------------------------------------------')

disp('Tmin - МИНИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ')

Tmin=c1/L10+c2/L20

disp('Tmax - МАКСИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ')

Tmax=c1+c2

disp('---------------------------------------------------------------------')

T0=input('ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T0) ');

if isempty(T0)==1|T0<=0|isreal(T0)==0|T0==inf

errordlg('ОШИБКА ВВОДА ВРЕМЕНИ ОБРАБОТКИ (Т0). ВРЕМЯ ДОЛЖНО БЫТЬ ДЕЙСТВИТЕЛЬНЫМ КОНЕЧНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ. ПОВТОРИТЕ ВВОД')

T0=input('ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T0) ');

if isempty(T0)==1|T0<=0|isreal(T0)==0|T0==inf

errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ВРЕМЕНИ ОБРАБОТКИ.ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

% ДОБАВИТЬ АНАЛИЗ ИНТЕРВАЛА ВРЕМЕНИ ОПЕРЕЖЕНИЯ

dT=input('ВВЕДИТЕ dT - ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ: ');

if isempty(dT)==1|dT<0|isreal(dT)==0|dT==inf

errordlg('ОШИБКА ВВОДА ВРЕМЕНИ dT, ВРЕМЯ ДОЛЖНО БЫТЬ ДЕЙСТВИТЕЛЬНЫМ КОНЕЧНЫМ ЧИСЛОМ НЕ МЕНЬШЕ НУЛЯ.ПОВТОРИТЕ ВВОД')

dT=input('ВВЕДИТЕ dT – ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ: ');

if isempty(dT)==1|dT<0|isreal(dT)==0|dT==inf

errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ВРЕМЕНИ ОПЕРЕЖЕНИЯ.ПРОГРАММАПРЕРЫВАЕТСЯ')

break

end

end

T=T0+dT;

if (T<Tmin|T>Tmax)

errordlg('ОШИБКА ВВОДА ИНТЕРВАЛА Т0+dT. ПОВТОРИТЕ ВВОД T0, dT')

T0=input('ВВЕДИТЕ T0 МЕЖДУ Tmin И Tmax ');

dT=input('ВВЕДИТЕ dT - ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ; T0+dT ДОЛЖНО БЫТЬ В ИНТЕРВАЛЕ (Tmin, Tmax): ');

if (T<Tmin|T>Tmax)

errordlg('ОШИБКА ВВОДА ИНТЕРВАЛА Т0+dT. ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

%--------------------------- РАСЧЕТ ПАРАМЕТРОВ ---------------------------------

XL=1/L10; % ПРЕДЕЛ СЛЕВА, ПРЕДЕЛ СПРАВА=1

yy=(T-c1*XL)/c2;

if yy>1

XL=(T-c2)/c1;

end

yy=1/L20;

XR=(T-c2*yy)/c1;

if XR>1

XR=1;

end

a=rand(1);

a=a*(XR-XL)+XL;

ALPHA1=0;

while ALPHA1 <1,

L1=rand(1);

L1=L1*(L10-1)+1;

L1=round(L1);

ALPHA1=a*L1;

end

b=(T-c1*a)/c2;

ALPHA2=0;

while ALPHA2 <1,

L2=rand(1);

L2=L2*(L20-1)+1;

L2=round(L2);

ALPHA2=b*L2;

end

%----------------- ЗНАЧЕНИЯ ПАРАМЕТРОВ -------------------------

disp('---------------------------------------------------------------------')

disp('L1 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ В 1-Й ПОДСИСТЕМЕ')

L1

disp('---------------------------------------------------------------------')

disp('L2 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ ВО 2-Й ПОДСИСТЕМЕ')

L2

disp('---------------------------------------------------------------------')

disp('---------------------------------------------------------------------')

disp('ALPHA1 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ В 1-Й ПОДСИСТЕМЕ:')

ALPHA1

disp('---------------------------------------------------------------------')

% L2

disp('ALPHA2 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ ВО 2-Й ПОДСИСТЕМЕ:')

ALPHA2

disp('---------------------------------------------------------------------')

%--------------------------------------------------------------

%------------------------------------------------------------------------------

x=T/c1;y=T/c2;

x0=[0 x];y0=[y 0];

xmin=1/L10;ymin=1/L20;

disp('kvadrat - КООРДИНАТЫ ДОПУСТИМОГО РАБОЧЕГО ПРЯМОУГОЛЬНИКА НА ПЛОСКОСТИ: ')

kvadrat=[xmin ymin; 1 1]

disp('-----------------------------------------------------------------------')

kvadratx=[xmin 1 1 xmin xmin];

kvadraty=[1 1 ymin ymin 1];

x0min=[0 Tmin/c1];y0min=[Tmin/c2 0];

x0max=[0 Tmax/c1];y0max=[Tmax/c2 0];

%----------------- ПРОВЕРКА РЕЗУЛЬТАТОВ -------------------------

if ALPHA1*c1/L1+ALPHA2*c2/L2==T

helpdlg('РЕЗУЛЬТАТЫ ВЕРНЫ')

else errordlg('РЕЗУЛЬТАТЫ НЕВЕРНЫ')

end

%-----------------ВЫБОР ТОЧКИ НА ЗАДАННОЙ ПРЯМОЙ-----------------------

ymax=1;

xmax=1;

x1=(T-c2*ymax)/c1

if x1<xmin

x1=xmin

x2=(T-c2*ymin)/c1

if x2>xmax

x2=xmax

else x2=x2

end

else x1=x1

end

n=x1+(x2-x1)*rand(1)

m=(T-n*c1)/c2

disp('АБСЦИССА ВЫБРАННОЙ ТОЧКИ')

n

disp('ОРДИНАТА ВЫБРАННОЙ ТОЧКИ')

m

% ------------ГРАФИЧЕСКИЕПОСТРОЕНИЯ--------------------------

figure(1);

plot(kvadratx,kvadraty,'linewidth',2), grid on, hold on,

plot(x0min,y0min,'m:','linew',3),

plot(x0max,y0max,'g:','linew',3),

plot(x0,y0,'r','linew',2),

plot(a,b,'r*','linew',2),

plot(n,m,'b*','linew',2),

n=[n n 0];

m=[0 m m];

plot(n,m,'b:','linew',2),

xlabel('\bf\alpha_1/L_1'),ylabel('\bf\alpha_2/L_2'),

text(0.05,1.3,'Look for Command Window of MATLAB'),

legend('Valid square','Tmin','Tmax','T','Random point','Сhoice point'),

set(gcf,'color','w'),hold off

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

xx=input('ВВЕДИТЕ КООРДИНАТУ (Х) ПО ОСИ АБСЦИСС: ');

if xx>1|xx<(1/L10)|isreal(xx)==0

errordlg('ОШИБКА ВЫБОРА: КООРДИНАТА (Х) НЕ В РАБОЧЕМ ПРЯМОУГОЛЬНИКЕ. ПОВТОРИТЕ ВВОД ДЕЙСТВИТЕЛЬНОГО ЧИСЛА')

xx=input('ВВЕДИТЕ КООРДИНАТУ (Х) ПО ОСИ АБСЦИСС: ');

if xx>1|xx<(1/L10)|isreal(xx)==0

errordlg('ПОВТОРНАЯ ОШИБКА ВЫБОРА: КООРДИНАТА (Х) НЕ В РАБОЧЕМ ПРЯМОУГОЛЬНИКЕ. ПРОГРАММА ПРЕРЫВАЕТСЯ')

close all

break

end

end

yy=input('ВВЕДИТЕТЕ КООРДИНАТУ (Y) ПО ОСИ ОРДИНАТ ');

if yy>1|yy<(1/L20)|isreal(yy)==0

errordlg('ОШИБКА ВЫБОРА: КООРДИНАТА (Y) НЕ В РАБОЧЕМ ПРЯМОУГОЛЬНИКЕ. ПОВТОРИТЕ ВВОД ДЕЙСТВИТЕЛЬНОГО ЧИСЛА')

yy=input('ВВЕДИТЕТЕ КООРДИНАТУ (Y) ПО ОСИ ОРДИНАТ ');

if (yy>1)|(yy<(1/L20))|isreal(yy)==0

errordlg('ПОВТОРНАЯ ОШИБКА ВЫБОРА: КООРДИНАТА (Y) НЕ В РАБОЧЕМ ПРЯМОУГОЛЬНИКЕ. ПРОГРАММАПРЕРЫВАЕТСЯ')

closeall

break

end

end

disp('--------------------------------------------------------------------------------------------------')

disp('Tpoint - ВРЕМЯОБРАБОТКИ')

Tpoint=c1*xx+c2*yy

TALPHA1=0;

while TALPHA1 <1,

TL1=rand(1);

TL1=TL1*(L10-1)+1;

TL1=round(TL1);

TALPHA1=xx*TL1;

end

TALPHA2=0;

while TALPHA2 <1,

TL2=rand(1);

TL2=TL2*(L20-1)+1;

TL2=round(TL2);

TALPHA2=yy*TL2;

end

disp('TL1 - ЧИСЛО КОМПЬЮТЕРОВ 1-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TL1

disp('TALPHA1 – КОЭФФИЦИЕНТ ПОТЕРЬ 1-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TALPHA1

disp('TL2 – ЧИСЛО КОМПЬЮТЕРОВ 2-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TL2

disp('TALPHA2 – КОЭФФИЦИЕНТ ПОТЕРЬ 2-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TALPHA2

disp('--------------------------------------------------------------------------------------')

xpoint=[0 Tpoint/c1];ypoint=[Tpoint/c2 0];

figure(2);

plot(kvadratx,kvadraty,'linewidth',3),grid on,hold on,

plot(x0min,y0min,'m:','linewidth',3),

plot(x0max,y0max,'g:','linewidth',3),

plot(xpoint,ypoint,'k','linewidth',2),

plot(xx,yy,'k*','linewidth',3),

xlabel('\bf\alpha_1/L_1'),ylabel('\bf\alpha_2/L_2'),

text(0.05,1.3,'Look for Command Window of MATLAB'),

legend('Valid square','Tmin','Tmax','Tpoint','Selected point'),

set(gcf,'color','w'),hold off

В результате получили:

ВВЕДИТЕ ПАРАМЕТРЫ c1,c2,L10,L20 В КОМАНДНОЙ СТРОКЕ

ВВЕДИТЕ c1: 7

ВВЕДИТЕ c2: 5

ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: 9

ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: 10

---------------------------------------------------------------------

Tmin - МИНИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ

Tmin =

1.2778

Tmax - МАКСИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ

Tmax =

12

---------------------------------------------------------------------

ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T0) 2.4778

ВВЕДИТЕ dT - ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ: 1.7

---------------------------------------------------------------------

L1 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ В 1-Й ПОДСИСТЕМЕ

L1 =

7

---------------------------------------------------------------------

L2 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ ВО 2-Й ПОДСИСТЕМЕ

L2 =

5

---------------------------------------------------------------------

---------------------------------------------------------------------

ALPHA1 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ В 1-Й ПОДСИСТЕМЕ:

ALPHA1 =

2.1854

---------------------------------------------------------------------

ALPHA2 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ ВО 2-Й ПОДСИСТЕМЕ:

ALPHA2 =

1.9924

---------------------------------------------------------------------

kvadrat - КООРДИНАТЫ ДОПУСТИМОГО РАБОЧЕГО ПРЯМОУГОЛЬНИКА НА ПЛОСКОСТИ:

kvadrat =

0.1111 0.1000

1.0000 1.0000

-----------------------------------------------------------------------

x1 =

-0.1175

x1 =

0.1111

x2 =

0.5254

x2 =

0.5254

n =

0.4905

m =

0.1489

АБСЦИССА ВЫБРАННОЙ ТОЧКИ

n =

0.4905

ОРДИНАТА ВЫБРАННОЙ ТОЧКИ

m =

0.1489

ВВЕДИТЕ КООРДИНАТУ (Х) ПО ОСИ АБСЦИСС: 0.3

ВВЕДИТЕТЕ КООРДИНАТУ (Y) ПО ОСИ ОРДИНАТ 0.25

--------------------------------------------------------------------------------------------------

Tpoint - ВРЕМЯ ОБРАБОТКИ

Tpoint =

3.3500

TL1 - ЧИСЛО КОМПЬЮТЕРОВ 1-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ

TL1 =

7

TALPHA1 – КОЭФФИЦИЕНТ ПОТЕРЬ 1-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ

TALPHA1 =

2.1000

TL2 – ЧИСЛО КОМПЬЮТЕРОВ 2-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ

TL2 =

10

TALPHA2 – КОЭФФИЦИЕНТ ПОТЕРЬ 2-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ

TALPHA2 =

2.5000

--------------------------------------------------------------------

  • Произвели проверку полученных данных по формуле (1.1):

clear,clc,close all

disp('ВВЕДИТЕ ПАРАМЕТРЫ c1,c2,L10,L20 В КОМАНДНОЙ СТРОКЕ')

% АНАЛИЗ ВВОДА НОРМАТИВНОЙ ТРУДОЕМКОСТИ 1-Й ПОДСИСТЕМЫ В МИНУТАХ (ЧАСАХ)

c1=input('ВВЕДИТЕ c1: ');

if c1==0|c1<0|c1==inf|isreal(c1)==0

errordlg('ОШИБКА ВВОДА: c1 ДОЛЖНО БЫТЬ КОНЕЧНЫМ ДЕЙСТВИТЕЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ!ПОВТОРИТЕ ВВОД')

c1=input('ВВЕДИТЕ c1: ');

if c1==0|c1<0|c1==inf|isreal(c1)==0

errordlg(' ПОВТОРНАЯ ОШИБКА ВВОДА!ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

%---------------------------------------------------------------------------------------------------------------------

% АНАЛИЗ ВВОДА НОРМАТИВНОЙ ТРУДОЕМКОСТИ 2-Й ПОДСИСТЕМЫ В МИНУТАХ (ЧАСАХ)

c2=input('ВВЕДИТЕ c2: ');

if c2==0|c2<0|c2==inf|isreal(c2)==0

errordlg('ОШИБКА ВВОДА: c2 ДОЛЖНО БЫТЬ КОНЕЧНЫМ ДЕЙСТВИТЕЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ!ПОВТОРИТЕ ВВОД')

c2=input('ВВЕДИТЕ c2: ');

if c2==0|c2<0|c2==inf|isreal(c2)==0

errordlg(' ПОВТОРНАЯ ОШИБКА ВВОДА!ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

%-----------------------------------------------------------------------------------------------------------------

% ---------------------- АНАЛИЗ ВВОДА ЧИСЛА ЭВМ 1-Й ПОДСИСТЕМЫ -----------------------------------------------------

L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: ');

if L10==0|L10<0|isreal(L10)==0|L10-fix(L10)~=0

errordlg('ОШИБКА ВВОДА ЧИСЛО ЭВМ ДОЛЖНО БЫТЬ НАТУРАЛЬНЫМ ЧИСЛОМ И БОЛЬШЕ НУЛЯ.ПОВТОРИТЕ ВВОД')

L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: ');

if L10==0|L10<0|L10-fix(L10)~=0

errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ЧИСЛА ЭВМ.ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

%----------------------- АНАЛИЗ ВВОДА ЧИСЛА ЭВМ 2-Й ПОДСИСТЕМЫ ---------------------------------------------------

L20=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: ');

if L20==0|L20<0|L20-fix(L20)~=0

errordlg('ОШИБКА ВВОДА: ЧИСЛО ЭВМ ДОЛЖНО БЫТЬ НАТУРАЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ. ПОВТОРИТЕ ВВОД')

L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: ');

if L20==0|L20<0|L20-fix(L20)~=0

errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ЧИСЛА ЭВМ.ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

% -------------------------- АНАЛИЗ ИНТЕРВАЛА ВРЕМЕНИ -----------------------------

disp('---------------------------------------------------------------------')

disp('Tmin - МИНИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ')

Tmin=c1/L10+c2/L20

disp('Tmax - МАКСИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ')

Tmax=c1+c2

disp('---------------------------------------------------------------------')

T0=input('ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T0) ');

if isempty(T0)==1|T0<=0|isreal(T0)==0|T0==inf

errordlg('ОШИБКА ВВОДА ВРЕМЕНИ ОБРАБОТКИ (Т0). ВРЕМЯ ДОЛЖНО БЫТЬ ДЕЙСТВИТЕЛЬНЫМ КОНЕЧНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ. ПОВТОРИТЕ ВВОД')

T0=input('ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T0) ');

if isempty(T0)==1|T0<=0|isreal(T0)==0|T0==inf

errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ВРЕМЕНИ ОБРАБОТКИ.ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

% ДОБАВИТЬ АНАЛИЗ ИНТЕРВАЛА ВРЕМЕНИ ОПЕРЕЖЕНИЯ

dT=input('ВВЕДИТЕ dT - ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ: ');

if isempty(dT)==1|dT<0|isreal(dT)==0|dT==inf

errordlg('ОШИБКА ВВОДА ВРЕМЕНИ dT, ВРЕМЯ ДОЛЖНО БЫТЬ ДЕЙСТВИТЕЛЬНЫМ КОНЕЧНЫМ ЧИСЛОМ НЕ МЕНЬШЕ НУЛЯ.ПОВТОРИТЕ ВВОД')

dT=input('ВВЕДИТЕ dT – ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ: ');

if isempty(dT)==1|dT<0|isreal(dT)==0|dT==inf

errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ВРЕМЕНИ ОПЕРЕЖЕНИЯ.ПРОГРАММАПРЕРЫВАЕТСЯ')

break

end

end

T=T0+dT;

if (T<Tmin|T>Tmax)

errordlg('ОШИБКА ВВОДА ИНТЕРВАЛА Т0+dT. ПОВТОРИТЕ ВВОД T0, dT')

T0=input('ВВЕДИТЕ T0 МЕЖДУ Tmin И Tmax ');

dT=input('ВВЕДИТЕ dT - ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ; T0+dT ДОЛЖНО БЫТЬ В ИНТЕРВАЛЕ (Tmin, Tmax): ');

if (T<Tmin|T>Tmax)

errordlg('ОШИБКА ВВОДА ИНТЕРВАЛА Т0+dT. ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

%--------------------------- РАСЧЕТ ПАРАМЕТРОВ ---------------------------------

XL=1/L10; % ПРЕДЕЛ СЛЕВА, ПРЕДЕЛ СПРАВА=1

yy=(T-c1*XL)/c2;

if yy>1

XL=(T-c2)/c1;

end

yy=1/L20;

XR=(T-c2*yy)/c1;

if XR>1

XR=1;

end

a=rand(1);

a=a*(XR-XL)+XL;

ALPHA1=0;

while ALPHA1 <1,

L1=rand(1);

L1=L1*(L10-1)+1;

L1=round(L1);

ALPHA1=a*L1;

end

b=(T-c1*a)/c2;

ALPHA2=0;

while ALPHA2 <1,

L2=rand(1);

L2=L2*(L20-1)+1;

L2=round(L2);

ALPHA2=b*L2;

end

%----------------- ЗНАЧЕНИЯ ПАРАМЕТРОВ -------------------------

disp('---------------------------------------------------------------------')

disp('L1 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ В 1-Й ПОДСИСТЕМЕ')

L1

disp('---------------------------------------------------------------------')

disp('L2 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ ВО 2-Й ПОДСИСТЕМЕ')

L2

disp('---------------------------------------------------------------------')

disp('---------------------------------------------------------------------')

disp('ALPHA1 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ В 1-Й ПОДСИСТЕМЕ:')

ALPHA1

disp('---------------------------------------------------------------------')

% L2

disp('ALPHA2 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ ВО 2-Й ПОДСИСТЕМЕ:')

ALPHA2

disp('---------------------------------------------------------------------')

%--------------------------------------------------------------

%------------------------------------------------------------------------------

x=T/c1;y=T/c2;

x0=[0 x];y0=[y 0];

xmin=1/L10;ymin=1/L20;

disp('kvadrat - КООРДИНАТЫ ДОПУСТИМОГО РАБОЧЕГО ПРЯМОУГОЛЬНИКА НА ПЛОСКОСТИ: ')

kvadrat=[xmin ymin; 1 1]

disp('-----------------------------------------------------------------------')

kvadratx=[xmin 1 1 xmin xmin];

kvadraty=[1 1 ymin ymin 1];

x0min=[0 Tmin/c1];y0min=[Tmin/c2 0];

x0max=[0 Tmax/c1];y0max=[Tmax/c2 0];

%----------------- ПРОВЕРКА РЕЗУЛЬТАТОВ -------------------------

if ALPHA1*c1/L1+ALPHA2*c2/L2==T

helpdlg('РЕЗУЛЬТАТЫ ВЕРНЫ')

else errordlg('РЕЗУЛЬТАТЫ НЕВЕРНЫ')

end

%-----------------ВЫБОР ТОЧКИ НА ЗАДАННОЙ ПРЯМОЙ-----------------------

ymax=1;

xmax=1;

x1=(T-c2*ymax)/c1

if x1<xmin

x1=xmin

x2=(T-c2*ymin)/c1

if x2>xmax

x2=xmax

else x2=x2

end

else x1=x1

end

n=x1+(x2-x1)*rand(1)

m=(T-n*c1)/c2

disp('АБСЦИССА ВЫБРАННОЙ ТОЧКИ')

n

disp('ОРДИНАТА ВЫБРАННОЙ ТОЧКИ')

m

% ------------ГРАФИЧЕСКИЕПОСТРОЕНИЯ--------------------------

figure(1);

plot(kvadratx,kvadraty,'linewidth',2), grid on, hold on,

plot(x0min,y0min,'m:','linew',3),

plot(x0max,y0max,'g:','linew',3),

plot(x0,y0,'r','linew',2),

plot(a,b,'r*','linew',2),

plot(n,m,'b*','linew',2),

n=[n n 0];

m=[0 m m];

plot(n,m,'b:','linew',2),

xlabel('\bf\alpha_1/L_1'),ylabel('\bf\alpha_2/L_2'),

text(0.05,1.3,'Look for Command Window of MATLAB'),

legend('Valid square','Tmin','Tmax','T','Random point','Сhoice point'),

set(gcf,'color','w'),hold off

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

xx=input('ВВЕДИТЕ КООРДИНАТУ (Х) ПО ОСИ АБСЦИСС: ');

if xx>1|xx<(1/L10)|isreal(xx)==0

errordlg('ОШИБКА ВЫБОРА: КООРДИНАТА (Х) НЕ В РАБОЧЕМ ПРЯМОУГОЛЬНИКЕ. ПОВТОРИТЕ ВВОД ДЕЙСТВИТЕЛЬНОГО ЧИСЛА')

xx=input('ВВЕДИТЕ КООРДИНАТУ (Х) ПО ОСИ АБСЦИСС: ');

if xx>1|xx<(1/L10)|isreal(xx)==0

errordlg('ПОВТОРНАЯ ОШИБКА ВЫБОРА: КООРДИНАТА (Х) НЕ В РАБОЧЕМ ПРЯМОУГОЛЬНИКЕ. ПРОГРАММА ПРЕРЫВАЕТСЯ')

close all

break

end

end

yy=input('ВВЕДИТЕТЕ КООРДИНАТУ (Y) ПО ОСИ ОРДИНАТ ');

if yy>1|yy<(1/L20)|isreal(yy)==0

errordlg('ОШИБКА ВЫБОРА: КООРДИНАТА (Y) НЕ В РАБОЧЕМ ПРЯМОУГОЛЬНИКЕ. ПОВТОРИТЕ ВВОД ДЕЙСТВИТЕЛЬНОГО ЧИСЛА')

yy=input('ВВЕДИТЕТЕ КООРДИНАТУ (Y) ПО ОСИ ОРДИНАТ ');

if (yy>1)|(yy<(1/L20))|isreal(yy)==0

errordlg('ПОВТОРНАЯ ОШИБКА ВЫБОРА: КООРДИНАТА (Y) НЕ В РАБОЧЕМ ПРЯМОУГОЛЬНИКЕ. ПРОГРАММАПРЕРЫВАЕТСЯ')

closeall

break

end

end

disp('--------------------------------------------------------------------------------------------------')

disp('Tpoint - ВРЕМЯОБРАБОТКИ')

Tpoint=c1*xx+c2*yy

TALPHA1=0;

while TALPHA1 <1,

TL1=rand(1);

TL1=TL1*(L10-1)+1;

TL1=round(TL1);

TALPHA1=xx*TL1;

end

TALPHA2=0;

while TALPHA2 <1,

TL2=rand(1);

TL2=TL2*(L20-1)+1;

TL2=round(TL2);

TALPHA2=yy*TL2;

end

disp('TL1 - ЧИСЛО КОМПЬЮТЕРОВ 1-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TL1

disp('TALPHA1 – КОЭФФИЦИЕНТ ПОТЕРЬ 1-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TALPHA1

disp('TL2 – ЧИСЛО КОМПЬЮТЕРОВ 2-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TL2

disp('TALPHA2 – КОЭФФИЦИЕНТ ПОТЕРЬ 2-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TALPHA2

disp('--------------------------------------------------------------------------------------')

xpoint=[0 Tpoint/c1];ypoint=[Tpoint/c2 0];

figure(2);

plot(kvadratx,kvadraty,'linewidth',3),grid on,hold on,

plot(x0min,y0min,'m:','linewidth',3),

plot(x0max,y0max,'g:','linewidth',3),

plot(xpoint,ypoint,'k','linewidth',2),

plot(xx,yy,'k*','linewidth',3),

xlabel('\bf\alpha_1/L_1'),ylabel('\bf\alpha_2/L_2'),

text(0.05,1.3,'Look for Command Window of MATLAB'),

legend('Valid square','Tmin','Tmax','Tpoint','Selected point'),

set(gcf,'color','w'),hold off

%----------------ПРОВЕРКА РЕЗУЛЬТАТА №2-----------------------------

if TALPHA1*c1/TL1+TALPHA2*c2/TL2==Tpoint

helpdlg('РЕЗУЛЬТАТЫ ВЕРНЫ')

else errordlg('РЕЗУЛЬТАТЫ НЕВЕРНЫ')

end

disp('TL1 - ЧИСЛО КОМПЬЮТЕРОВ 1-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TL1

disp('TALPHA1 – КОЭФФИЦИЕНТ ПОТЕРЬ 1-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TALPHA1

disp('TL2 – ЧИСЛО КОМПЬЮТЕРОВ 2-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TL2

disp('TALPHA2 – КОЭФФИЦИЕНТ ПОТЕРЬ 2-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TALPHA2

disp('---------------------------------------------------------------------------')

xpoint=[0 Tpoint/c1];ypoint=[Tpoint/c2 0];

figure(2);

plot(kvadratx,kvadraty,'linewidth',3),grid on,hold on,

plot(x0min,y0min,'m:','linewidth',3),

plot(x0max,y0max,'g:','linewidth',3),

plot(xpoint,ypoint,'k','linewidth',2),

plot(xx,yy,'k*','linewidth',3),

xlabel('\bf\alpha_1/L_1'),ylabel('\bf\alpha_2/L_2'),

text(0.05,1.3,'Look for Command Window of MATLAB'),

legend('Valid square','Tmin','Tmax','Tpoint','Selected point'),

set(gcf,'color','w'),hold off

helpdlg('РЕЗУЛЬТАТЫ №2 ВЕРНЫ')

else errordlg('РЕЗУЛЬТАТЫ №2 НЕВЕРНЫ')

end

Результат сходится.

  • Произвести вывод диаграмм в одном графическом окне с разбивкой на два подокна.

clear,clc,close all

helpdlg('c1 - НОРМАТИВНАЯ ТРУДОЕМКОСТЬ РАБОТЫ С МАССИВАМИ В МИНУТАХ 1-Й ПОДСИСТЕМЫ; c2 - НОРМАТИВНАЯ ТРУДОЕМКОСТЬ РАБОТЫ С МАССИВАМИ В МИНУТАХ 2-Й ПОДСИСТЕМЫ; L10 - ПРЕДЕЛЬНО ДОПУСТИМОЕ КОЛИЧЕСТВО ЭВМ В 1-Й ПОДСИСТЕМЕ; L20 - ПРЕДЕЛЬНО ДОПУСТИМОЕ КОЛИЧЕСТВО ЭВМ ВО 2-Й ПОДСИСТЕМЕ','НАЗНАЧЕНИЕ ПАРАМЕТРОВ')

disp('ВВЕДИТЕ ПАРАМЕТРЫ c1,c2,L10,L20 В КОМАНДНОЙ СТРОКЕ')

% АНАЛИЗ ВВОДА НОРМАТИВНОЙ ТРУДОЕМКОСТИ 1-Й ПОДСИСТЕМЫ В МИНУТАХ (ЧАСАХ)

c1=input('ВВЕДИТЕ c1: ');

if c1==0|c1<0|c1==inf|isreal(c1)==0

errordlg('ОШИБКА ВВОДА: c1 ДОЛЖНО БЫТЬ КОНЕЧНЫМ ДЕЙСТВИТЕЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ!ПОВТОРИТЕ ВВОД')

c1=input('ВВЕДИТЕ c1: ');

ifc1==0|c1<0|c1==inf|isreal(c1)==0

errordlg(' ПОВТОРНАЯ ОШИБКА ВВОДА!ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

%---------------------------------------------------------------------------------------------------------------------

% АНАЛИЗ ВВОДА НОРМАТИВНОЙ ТРУДОЕМКОСТИ 2-Й ПОДСИСТЕМЫ В МИНУТАХ (ЧАСАХ)

c2=input('ВВЕДИТЕ c2: ');

if c2==0|c2<0|c2==inf|isreal(c2)==0

errordlg('ОШИБКА ВВОДА: c2 ДОЛЖНО БЫТЬ КОНЕЧНЫМ ДЕЙСТВИТЕЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ!ПОВТОРИТЕ ВВОД')

c2=input('ВВЕДИТЕ c2: ');

ifc2==0|c2<0|c2==inf|isreal(c2)==0

errordlg(' ПОВТОРНАЯ ОШИБКА ВВОДА!ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

%-----------------------------------------------------------------------------------------------------------------

% ---------------------- АНАЛИЗ ВВОДА ЧИСЛА ЭВМ 1-Й ПОДСИСТЕМЫ -----------------------------------------------------

L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: ');

if L10==0|L10<0|isreal(L10)==0|L10-fix(L10)~=0

errordlg('ОШИБКА ВВОДА ЧИСЛО ЭВМ ДОЛЖНО БЫТЬ НАТУРАЛЬНЫМ ЧИСЛОМ И БОЛЬШЕ НУЛЯ.ПОВТОРИТЕ ВВОД')

L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: ');

if L10==0|L10<0|L10-fix(L10)~=0

errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ЧИСЛА ЭВМ.ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

%----------------------- АНАЛИЗ ВВОДА ЧИСЛА ЭВМ 2-Й ПОДСИСТЕМЫ ---------------------------------------------------

L20=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: ');

if L20==0|L20<0|L20-fix(L20)~=0

errordlg('ОШИБКА ВВОДА: ЧИСЛО ЭВМ ДОЛЖНО БЫТЬ НАТУРАЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ. ПОВТОРИТЕ ВВОД')

L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: ');

if L20==0|L20<0|L20-fix(L20)~=0

errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ЧИСЛА ЭВМ.ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

% -------------------------- АНАЛИЗ ИНТЕРВАЛА ВРЕМЕНИ -----------------------------

disp('---------------------------------------------------------------------')

disp('Tmin - МИНИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ')

Tmin=c1/L10+c2/L20

disp('Tmax - МАКСИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ')

Tmax=c1+c2

disp('---------------------------------------------------------------------')

T0=input('ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T0) ');

if isempty(T0)==1|T0<=0|isreal(T0)==0|T0==inf

errordlg('ОШИБКА ВВОДА ВРЕМЕНИ ОБРАБОТКИ (Т0). ВРЕМЯ ДОЛЖНО БЫТЬ ДЕЙСТВИТЕЛЬНЫМ КОНЕЧНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ. ПОВТОРИТЕ ВВОД')

T0=input('ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T0) ');

if isempty(T0)==1|T0<=0|isreal(T0)==0|T0==inf

errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ВРЕМЕНИ ОБРАБОТКИ.ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

% ДОБАВИТЬ АНАЛИЗ ИНТЕРВАЛА ВРЕМЕНИ ОПЕРЕЖЕНИЯ

dT=input('ВВЕДИТЕ dT - ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ: ');

if isempty(dT)==1|dT<0|isreal(dT)==0|dT==inf

errordlg('ОШИБКА ВВОДА ВРЕМЕНИ dT, ВРЕМЯ ДОЛЖНО БЫТЬ ДЕЙСТВИТЕЛЬНЫМ КОНЕЧНЫМ ЧИСЛОМ НЕ МЕНЬШЕ НУЛЯ.ПОВТОРИТЕ ВВОД')

dT=input('ВВЕДИТЕ dT – ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ: ');

if isempty(dT)==1|dT<0|isreal(dT)==0|dT==inf

errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ВРЕМЕНИ ОПЕРЕЖЕНИЯ.ПРОГРАММАПРЕРЫВАЕТСЯ')

break

end

end

T=T0+dT;

if (T<Tmin|T>Tmax)

errordlg('ОШИБКА ВВОДА ИНТЕРВАЛА Т0+dT. ПОВТОРИТЕ ВВОД T0, dT')

T0=input('ВВЕДИТЕ T0 МЕЖДУ Tmin И Tmax ');

dT=input('ВВЕДИТЕ dT - ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ; T0+dT ДОЛЖНО БЫТЬ В ИНТЕРВАЛЕ (Tmin, Tmax): ');

if (T<Tmin|T>Tmax)

errordlg('ОШИБКА ВВОДА ИНТЕРВАЛА Т0+dT. ПРОГРАММА ПРЕРЫВАЕТСЯ')

break

end

end

%--------------------------- РАСЧЕТ ПАРАМЕТРОВ ---------------------------------

XL=1/L10; % ПРЕДЕЛ СЛЕВА, ПРЕДЕЛ СПРАВА=1

yy=(T-c1*XL)/c2;

if yy>1

XL=(T-c2)/c1;

end

yy=1/L20;

XR=(T-c2*yy)/c1;

if XR>1

XR=1;

end

a=rand(1);

a=a*(XR-XL)+XL;

ALPHA1=0;

while ALPHA1 <1,

L1=rand(1);

L1=L1*(L10-1)+1;

L1=round(L1);

ALPHA1=a*L1;

end

b=(T-c1*a)/c2;

ALPHA2=0;

while ALPHA2 <1,

L2=rand(1);

L2=L2*(L20-1)+1;

L2=round(L2);

ALPHA2=b*L2;

end

%----------------- ЗНАЧЕНИЯ ПАРАМЕТРОВ -------------------------

disp('---------------------------------------------------------------------')

disp('L1 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ В 1-Й ПОДСИСТЕМЕ')

L1

disp('---------------------------------------------------------------------')

disp('L2 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ ВО 2-Й ПОДСИСТЕМЕ')

L2

disp('---------------------------------------------------------------------')

disp('---------------------------------------------------------------------')

disp('ALPHA1 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ В 1-Й ПОДСИСТЕМЕ:')

ALPHA1

disp('---------------------------------------------------------------------')

% L2

disp('ALPHA2 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ ВО 2-Й ПОДСИСТЕМЕ:')

ALPHA2

disp('---------------------------------------------------------------------')

%--------------------------------------------------------------

%------------------------------------------------------------------------------

x=T/c1;y=T/c2;

x0=[0 x];y0=[y 0];

xmin=1/L10;ymin=1/L20;

disp('kvadrat - КООРДИНАТЫ ДОПУСТИМОГО РАБОЧЕГО ПРЯМОУГОЛЬНИКА НА ПЛОСКОСТИ: ')

kvadrat=[xmin ymin; 1 1]

disp('-----------------------------------------------------------------------')

kvadratx=[xmin 1 1 xmin xmin];

kvadraty=[1 1 ymin ymin 1];

x0min=[0 Tmin/c1];y0min=[Tmin/c2 0];

x0max=[0 Tmax/c1];y0max=[Tmax/c2 0];

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

xx=input('ВВЕДИТЕ КООРДИНАТУ (Х) ПО ОСИ АБСЦИСС: ');

if xx>1|xx<(1/L10)|isreal(xx)==0

errordlg('ОШИБКА ВЫБОРА: КООРДИНАТА (Х) НЕ В РАБОЧЕМ ПРЯМОУГОЛЬНИКЕ. ПОВТОРИТЕ ВВОД ДЕЙСТВИ-ТЕЛЬНОГО ЧИСЛА')

xx=input('ВВЕДИТЕ КООРДИНАТУ (Х) ПО ОСИ АБСЦИСС: ');

if xx>1|xx<(1/L10)|isreal(xx)==0

errordlg('ПОВТОРНАЯ ОШИБКА ВЫБОРА: КООРДИНАТА (Х) НЕ В РАБОЧЕМ ПРЯМОУГОЛЬНИКЕ. ПРОГРАММА ПРЕРЫВАЕТСЯ')

close all

break

end

end

yy=input('ВВЕДИТЕТЕ КООРДИНАТУ (Y) ПО ОСИ ОРДИНАТ ');

if yy>1|yy<(1/L20)|isreal(yy)==0

errordlg('ОШИБКА ВЫБОРА: КООРДИНАТА (Y) НЕ В РАБОЧЕМ ПРЯМОУГОЛЬНИКЕ. ПОВТОРИТЕ ВВОД ДЕЙСТВИ-ТЕЛЬНОГО ЧИСЛА')

yy=input('ВВЕДИТЕТЕ КООРДИНАТУ (Y) ПО ОСИ ОРДИНАТ ');

if (yy>1)|(yy<(1/L20))|isreal(yy)==0

errordlg('ПОВТОРНАЯ ОШИБКА ВЫБОРА: КООРДИНАТА (Y) НЕ В РАБОЧЕМ ПРЯМОУГОЛЬНИКЕ. ПРОГРАММАПРЕРЫВАЕТСЯ')

closeall

break

end

end

disp('--------------------------------------------------------------------------------------------------')

disp('Tpoint - ВРЕМЯОБРАБОТКИ')

Tpoint=c1*xx+c2*yy

TALPHA1=0;

while TALPHA1 <1,

TL1=rand(1);

TL1=TL1*(L10-1)+1;

TL1=round(TL1);

TALPHA1=xx*TL1;

end

TALPHA2=0;

while TALPHA2 <1,

TL2=rand(1);

TL2=TL2*(L20-1)+1;

TL2=round(TL2);

TALPHA2=yy*TL2;

end

disp('TL1 - ЧИСЛО КОМПЬЮТЕРОВ 1-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TL1

disp('TALPHA1 – КОЭФФИЦИЕНТ ПОТЕРЬ 1-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TALPHA1

disp('TL2 – ЧИСЛО КОМПЬЮТЕРОВ 2-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TL2

disp('TALPHA2 – КОЭФФИЦИЕНТ ПОТЕРЬ 2-Й ПОДСИСТЕМЫ ДЛЯ ЗАДАННОГО ВРЕМЕНИ ОБРАБОТКИ')

TALPHA2

disp('--------------------------------------------------------------------------------------')

xpoint=[0 Tpoint/c1];ypoint=[Tpoint/c2 0];

% ГРАФИЧЕСКИЕПОСТРОЕНИЯ

figure(1);

subplot(2,1,1);

plot(kvadratx,kvadraty,'linewidth',2), grid on, hold on,

plot(x0min,y0min,'m:','linew',3),

plot(x0max,y0max,'g:','linew',3),

plot(x0,y0,'r','linew',2),

plot(a,b,'r*','linew',2),

xlabel('\bf\alpha_1/L_1'),ylabel('\bf\alpha_2/L_2'),

text(0.05,1.3,'Look for Command Window of MATLAB'),

legend('Valid square','Tmin','Tmax','T','Random point'),

set(gcf,'color','w'),hold off

subplot(2,1,2);

plot(kvadratx,kvadraty,'linewidth',3),grid on,hold on,

plot(x0min,y0min,'m:','linewidth',3),

plot(x0max,y0max,'g:','linewidth',3),

plot(xpoint,ypoint,'k','linewidth',2),

plot(xx,yy,'k*','linewidth',3),

xlabel('\bf\alpha_1/L_1'),ylabel('\bf\alpha_2/L_2'),

text(0.05,1.3,'Look for Command Window of MATLAB'),

legend('Valid square','Tmin','Tmax','Tpoint','Selected point'),

set(gcf,'color','w'),hold off

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]