Лаб1
.docxВыполнение задания:
-
В соответствии с 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