Если условие выполняется, то начинается обработка заявок из БПЗ.
28. v:=0; Переменная v будет использоваться для обращения к записям в БПЗ.
29. v:= v+1; увеличиваем значение переменной v на 1 для обращения к v-той ячейке БПЗ.
30. i:=kv; Читаем из БПЗ номер линейки в которой произошли изменения состояний КТ.
31. Randomize. Инициализация датчика случайных чисел. Осуществляется для того, чтобы датчик случайных чисел не генерировал постоянно одни и те же последовательности случайных чисел.
32. Формируем СОС2, используя СОС1 и датчик случайных чисел. sos2j=sosij*random(2); j=1-m;
33. Формируем СПС аналогично пунктам 9, 10, 11, 12.
34. si2j=sos2j*spsinj; j=1-m; Формируем СИ2.
35. ssij=bpzvj*si2j; j=1-m; Формируем ССИ.
36. Записываем в файл СОС2, СИ2, ССИ.
37. s:=0; С помощью переменной s мы будем определять равно ли ССИ нулю. Первоначально обнуляем эту переменную, чтобы накапливать в ней сумму элементов ССИ.
38. Задаем цикл for j:=1 to m do для накопления суммы элементов ССИ. Накопление суммы элементов ССИ необходимо для того, чтобы определить равно ли ССИ нулю.
39. s:=s+ ssij; Накопление суммы элементов СCИ.
40. Проверяем условие if s¹0 then< > else< >; Определяем равно ли значение переменной s нулю, то есть равно ли СCИ нулю.
Если это условие не выполняется, то есть s=0 (СCИ=0), то тогда переходим к шагу 49, где будем проверять есть ли еще заявки в БПЗ.
Если это условие выполняется, то есть s¹0 (ССИ¹0), то тогда переходим к следующему шагу алгоритма:
41. Задаем цикл for j:=1 to m do для того, чтобы проверить все элементы ССИ.
42. Проверяем условие if ssij = 1 then< > else< >; Проверяем по очереди все элементы ССИ равны ли они 1.
Если это условие не выполняется, то есть ssij =0, то тогда переходим к проверке следующего элемента ССИ.
Если это условие выполняется, то есть ssij =1, то тогда начинаем записывать заявки в БЗО:
43. u:=u+1; увеличиваем значение переменной u на 1 для того, чтобы осуществить запись в u-ую ячейку БЗО.
44. nak= (i-1)*m + j –1; По этой формуле определяем номер комплекта, который сгенерировал заявку.
bzou = naku; Записываем в u-ю ячейку БЗО номер u-го комплекта, который требует обслуживания.
Цикл, заданный на 41-м шаге включает в себя шаги 42, 43, 44.
После завершения цикла переходим к шагу 45:
Шаги 45, 46, 47 и 48 обеспечивают формирование измененного с учетом посткпивших заявок массива МСКТ.
45. Задаем цикл for j:=1 to m do для того, чтобы сформировать все элементы измененного МСКТ.
46. msktij = msktij + ssij; Изменяем значение элемента msktij с учетом ССИ.
47. Так как для изменения значений элементов МСКТ применяем операцию сложения вместо операции «сложение по модулю 2», то чтобы учесть вариант 1Å1=0 (в нашем случае будет 1+1=2) ставим условие if msktij =2 then< > else< >;
Если это условие не выполняется, то есть msktij =0 или 1, то тогда возвращаемся в цикл (на шаг 45) и формируем следующий элемент МСКТ.
Если это условие выполняется, то тогда чтобы учесть вариант 1Å1=0 (в нашем случае будет 1+1=2) обнуляем значение этого элемента МСКТ:
48. msktij:=0;
После завершения цикла, а также в случае невыполнения условия на шаге 40 переходим к шагу 49:
49. Проверяем условие repeat … until v=t; На этом шаге проверяем есть ли еще заявки в БПЗ.
Если есть (значение FALSE), то переходим на шаг 29 и начиная с 29-го шага повторяем все выше описанные действия.
Если заявок в БПЗ больше нет (значение TRUE), то переходим к пункту 50.
50. Записываем в файл содержимое БЗО и измененный МСКТ.
На этом работа программы ПСК2 заканчивается.
В случае невыполнения условия на шаге 27 также переходим к шагу 51:
51. Производим запрос: следует ли продолжить сканирование? При этом предлагается ввести с клавиатуры y или n (то есть да или нет).
52. Требуется ввести с клавиатуры y или n (да или нет). Это осуществляется путем назначения переменной g значения y или n.
53. Проверяем условие repeat … until g¹’y’; На этом шаге проверяем равно ли значение переменной g символу y.
Если условие не выполняется (значение FALSE), то есть g=’y’ то переходим на шаг 5 и начиная с 5-го шага повторяем все выше описанные действия, но уже имея измененный МСКТ.
Если условие выполняется (значение TRUE), то завершаем сканирование и:
54. Закрываем файл.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.