[06.10.11] Лекция №6 (1051923)
Текст из файла
Лекция №6 [06.10.11]
Операторы языка:
1)
присвоение. Слева переменные, справа выражение (арифметическое или логическое):
<список переменных> := <выражение>;
::= ждать B; // ждать, пока переменная B не станет равной чему-нибудь
Можно записать в смешанном виде: ждать (A > 10) \/ (ВРЕМЯ = 100);
Навигационные операторы (с которыми инициатор сцепляется мгновенно, результат – указание метки, куда инициатор пойдёт дальше):
1) безусловные
направить инициатор на метку <метка> [блока <блок>]; // [] - необязательно
2) условный
если B то направить инициатор на метку <метка> [иначе направить инициатор на
метку <метка>];
или
если B1 то направить инициатор на метку <метка>
B2 то направить инициатор на метку <метка>
..........................................
иначе направить инициатор на метку <метка>;
На самого себя направлять нельзя, потому что так как всё мгновенно, то будет бесконечный переход. Да даже и без мгновенности нельзя, в общем-то.
А ещё можно ждать замешанность навигации:
ждать B1 \/ B2 \/ B3;
если B1 то направить инициатор на метку <метка>
B2 то направить инициатор на метку <метка>
B3 то направить инициатор на метку <метка>;
Такая тройная если называется векторный "если" (логический "если")
Объединим связку их этих двух в один и назовём его векторный "ждать":
ждать B1 то направить инициатор на метку <метка>
B2 то направить инициатор на метку <метка>
B3 то направить инициатор на метку <метка>;
Работа со ссылками (для инициатора):
1) создание
S := ссылка на <тип объекта> <имя объекта>;
S := ссылка на вектор W;
2) разыменование
S -> <тип объекта> // а имени нет, только тип
(S -> вектор(4));
(S -> скаляр); // а что хотим, то и вытащим
Обозначение текущего инициатора: ИНИЦИАТОР. Он всегда ссылка (на локальную среду).
Оператор создания объекта:
создать <тип объекта> <имя>;
создать ссылку S;
создать W типа вектор(1-6 - скаляр); // то есть, можно сначала имя, потом тип
Оператор уничтожения объекта:
уничтожить <имя> <тип>; // потому что можно разные типы с одинаковыми именами
Операции работы с инициатором:
1) пассивизация
пассивизировать инициатор в параметр <имя>; // а параметр – всегда типа ссылка
2) активизация
активизировать инициатор из <имя> на метку <метка> [блока <блок>];
Введём ещё фиксированную штуку – случайное число в интервале [0..1] по равномерному закону – RAND.
Итого у нас три жёстко фиксированных штуки: ВРЕМЯ, ИНИЦИАТОР и RAND.
Теперь ввёдем понятие блока:
БЛОК <имя> <тип>
описание
// тут переменные
всё описание;
алгоритм
// тут трек
всё алгоритм;
всё БЛОК.
Инициатор в блоках-агрегатах описывать не будем, он по умолчанию уже в нём находится и располагается в самом начале трека.
Пример:
Из времени возьмём интервал 10-30 (это для RAND). Ещё возьмём интервал 100-300, это для объёма (ну вот просто будет у нас объём). В ОБРАБОТКЕ занимает процессор, потом диск, и на этом всё.
БЛОК ГЕНЕРАТОР;
описание
Тож – скаляр;
всё описание;
алгоритм
НАЧ: создать S типа ссылка;
создать W типа вектор(1-3 скаляр);
W(1) := ВРЕМЯ;
W(2) := RAND * 200 + 100; // из 0-1 растянуть на диапазон и смещение
S := ссылка на вектор W;
активизировать инициатор из S на метку НАЧ блока ОБРАБОТКА;
Тож := ВРЕМЯ + (RAND * 20 + 10);
ждать ВРЕМЯ = Тож;
направить ИНИЦИАТОР на метку НАЧ;
всё алгоритм;
всё БЛОК.
А вот кстати, элементарных операторов в этом блоке выполняется только один – он в ждать, он
, это там раньше написано.
БЛОК ОБРАБОТКА;
описание
СЕМцпу, СЕМдиск – скаляр;
ВРЕМреш, ВРЕМдиск – скаляр;
всё описание;
алгоритм
НАЧ: ждать СЕМцпу = ‘свободен’;
СЕМцпу := ‘занят’;
ВРЕМреш := ВРЕМЯ + (RAND * 5 + 3); // да просто любое время
ждать ВРЕМЯ = ВРЕМреш;
СЕМцпу := ‘свободен’;
ждать СЕМдиск = ‘свободен’;
СЕМдиск := ‘занят’;
ВРЕМдиск := ВРЕМЯ + (RAND * 10 + 2); // чтобы сумма не превысила
ждать ВРЕМЯ = ВРЕМдиск;
СЕМдиск := ‘свободен’;
уничтожить ИНИЦИАТОР;
всё алгоритм;
всё БЛОК.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.














