Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Текст програми. 
Задача Джонсона

РефератПомощь в написанииУзнать стоимостьмоей работы

End. {Конец вычислений}. Begin smin: =t; ii: =i; jj: =j end; Begin smin: =t; ii: =1; jj: =2 end. If tKP2 >tKP1 then tHP2: =tKP2. Else begin lo: =ii; l: =l+1 end; Assign (inf,'a: est3_in. pas'); Readln (inf); writeln (outf); Program Algorithm_of_Johnson; THP1, tHP2,tKP1,tKP2,lo: vec; Assign (outf,'a: ez3. pas'); Type vec=array of integer; T: =10 000; t: =10 000; If (l+k) (n+2) then goto 1; For k… Читать ещё >

Текст програми. Задача Джонсона (реферат, курсовая, диплом, контрольная)

{Алгоритм оптимальной обработки изделий на двух машинах (алгоритм Джонсона)

Алгоритм выбирает такой порядок обработки изделий, при котором суммарное время

обработки изделий будет минимальным}

program Algorithm_of_Johnson;

ses crt;

type vec=array [1.50] of integer;

matr=array [1.50,1.2] of integer;

var t, s: matr;

tHP1,tHP2,tKP1,tKP2,lo: vec;

i, j, ii, jj, k, l, smin, n, th1,th2: integer;

{inf — файл исходных данных;

outf — файл результатов}

inf, outf: text;

sw: string;

label 1;

BEGIN {Начало программы}

clrscr;

assign (inf,'a: est3_in. pas');

reset (inf);

{Ввод количества изделий}

readln (inf, sw);

readln (inf, n);

assign (outf,'a: ez3. pas');

rewrite (outf);

writeln (outf,' ИСХОДНЫЕ ДАННЫЕ: ');

writeln (outf);

writeln (outf, 'Количество изделий, подлежащих обработке: ', n);

readln (inf, sw);

writeln (outf,'‚Время обработки изделий соответственно на первой и второй машинах');

for i: =1 to n do begin

for j: =1 to 2 do begin

{Ввод времени обработки каждого изделия на 1-ой и 2-ой машинах}

read (inf, t [i, j]);

write (outf,' t (', i,',', j,') =', t [i, j]);

end;

readln (inf); writeln (outf);

end;

close (inf);

writeln (outf,' РЕЗУЛЬТАТЫ ВЫЧИСЛЕНИЙ: ');

writeln (outf);

for i: =1 to n do

for j: =1 to 2 do

s [i, j]: =t [i, j];

k: =1;

l: =1;

1: if t [1,1] >t [1,2] then

begin smin: =t [1,2]; ii: =1; jj: =2 end

else begin smin: =t [1,1]; ii: =1; jj: =1 end;

for i: =2 to n do

for j: =1 to 2 do begin

if t [i, j]

begin smin: =t [i, j]; ii: =i; jj: =j end;

end;

{lo [i] - порядковый номер цикла обработки i-го изделия}

if jj=1 then begin lo [k]: =ii; k: =k+1 end

else begin lo [n-l+1]: =ii; l: =l+1 end;

t [ii, 1]: =10 000; t [ii, 2]: =10 000;

if (l+k) (n+2) then goto 1;

{tHP1 [i] - время начала обработки i-го изделия на 1-ой машине;

tHP2 [i] - время начала обработки i-го изделия на 2-ой машине;

tKP1 [i] - время окончания обработки i-го изделия на 1-ой машине;

tKP2 [i] - время окончания обработки i-го изделия на 2-ой машине; }

tHP1 [1]: =0;

tKP1 [1]: =s [lo [1], 1];

tHP2 [1]: =tKP1 [1];

tKP2 [1]: =tHP2 [1] +s [lo [1], 2];

{th2 — время простоя 2-ой машины}

th2: =tHP2 [1];

for k: =2 to n do begin

tHP1 [k]: =tKP1 [k-1];

tKP1 [k]: =tHP1 [k] +s [lo [k], 1];

if tKP2 [k-1] >tKP1 [k] then tHP2 [k]: =tKP2 [k-1]

else begin

tHP2 [k]: =tKP1 [k];

th2: =th2+tKP1 [k] - tKP2 [k-1];

end;

tKP2 [k]: =tHP2 [k] +s [lo [k], 2];

end;

th1: =tKP2 [n] - tKP1 [n];

writeln (outf, 'Оптимальный порядок обслуживания требований: ');

for i: =1 to n do

write (outf,' ', lo [i]);

writeln (outf);

writeln (outf, 'Общее время обслуживания требований: ', tKP2 [n]);

writeln (outf,'Время простоя машины 2: ', th2);

close (outf);

writeln ('Конец вычислений');

readln;

end. {Конец вычислений}

Показать весь текст
Заполнить форму текущей работой