IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Система(или теорема..) Джонсона
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


Серия из N различных деталей обрабатывается на 2-х станках за Ai и Bi времени. Оптимальный порядок обработки достигается правилом:i-ое изделие предшествует j-му, если min(Ai, Bj)<min(Aj,Bi).Осуществить итакое упорядочивание.

Проверьте пж-та, правильно ли работает?=) Я с этой системой никогда не сталкивался, поэтому...
Но вроде всё правильно выполняет...

Program Johnson_method;
Uses Crt;
Const r=30;
Var n,i,Min_j,Min_i,Temp_1,Temp_2:Integer;
ch:Char;
isChange:Boolean;
A:Array [0..100,0..100] of Integer;
Begin
Repeat
ClrScr;
Randomize;
WriteLn('');
WriteLn;
WriteLn('Write a number of details');
ReadLn(n);
WriteLn;

WriteLn('Time:');
Write('A: ');
For i:=1 to n do begin
A[i,1]:=random®;
Write(A[i,1]:3);
end;
WriteLn;

Write('B: ');
For i:=1 to n do begin
A[i,2]:=random®;
Write(A[i,2]:3);
end;
WriteLn;
{начинается прелбразование}
Repeat
isChange:=False;
For i:=1 to n-1 do begin
Min_i:=A[i,1];
Min_j:=A[i+1,1];
{ WriteLn('Min_i=',Min_i,' Min_j=',Min_j); }
If A[i,1]>A[i+1,2] then Min_i:=A[i+1,2];
If A[i+1,1]>A[i,2] then Min_j:=A[i,2];
{ WriteLn('Min_i=',Min_i,' Min_j=',Min_j); }
If Min_i>Min_j then
begin
Temp_1:=A[i,1];
A[i,1]:=A[i+1,1];
A[i+1,1]:=Temp_1;
Temp_2:=A[i,2];
A[i,2]:=A[i+1,2];
A[i+1,2]:=Temp_2;
isChange:=True;
end;
end;
Until isChange=False;

WriteLn('Yahoo:');{Ответ}
Write('A: ');
For i:=1 to n do Write(A[i,1]:3);
WriteLn;

Write('B: ');
For i:=1 to n do Write(A[i,2]:3);
WriteLn;

WriteLn('If you want to quit press <ESC>, else any key.');
ch:=ReadKey;
Until ord(ch)=27;
END.



Сообщение отредактировано: DFooz -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






James_Bond, ссылку на источник теста - в студию... Самопальные тесты здесь не пойдут...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 6.09.2025 12:52
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name