Задания 2 и 3.
ОТДЕЛ Задание2+;
ИСПОЛЬЗУЕТ Матем ИЗ "...\Отделы\Числа\", Вывод ИЗ "...\Отделы\Обмен\", Приём;
ПЕР
Массив: РЯД 3, 4 ИЗ ЦЕЛ;
сч1, сч2: ЦЕЛ;
УКАЗ
ОТ сч1 := 0 ДО 2 ВЫП
ОТ сч2 := 0 ДО 3 ВЫП
Массив[сч1, сч2] := Приём.Число();
Вывод.Цепь(" ")
КОН;
Вывод.Цепь("^")
КОН;
ОТ сч1 := 0 ДО 2 ВЫП
ОТ сч2 := 0 ДО 3 ВЫП
Вывод.ЧЦел("%8d ", Массив[сч1, сч2], 0, 0, 0)
КОН;
Вывод.Цепь("^")
КОН;
КОН Задание2.
ОТДЕЛ Задание3+;
ИСПОЛЬЗУЕТ Матем ИЗ "...\Отделы\Числа\", Вывод ИЗ "...\Отделы\Обмен\";
ПЕР
Массив: РЯД 3, 4 ИЗ ВЕЩ;
сч1, сч2: ЦЕЛ;
УКАЗ
ОТ сч1 := 0 ДО 2 ВЫП
ОТ сч2 := 0 ДО 3 ВЫП
Массив[сч1, сч2] := УЗК(Матем.случ())
КОН
КОН;
ОТ сч1 := 0 ДО 2 ВЫП
ОТ сч2 := 0 ДО 3 ВЫП
Вывод.ЧВещ("%.2f ", Массив[сч1, сч2], 0, 0, 0)
КОН;
Вывод.Цепь("^")
КОН
КОН Задание3.
Пример вывода 3-его задания:
D:\Разработки\Глагол\Приложения\Свои>Задание3
0,32 0,48 0,42 0,73
0,92 0,33 0,00 0,04
0,24 0,59 0,62 0,95
Цитирую код отдела "Приём", раз его ещё пока в стандартный выпуск среды разработки не включили, но, по-моему, это лишнее, алгоритм понятен и так. Задачи Приём.Строка() и Приём.Ждать() убрал, они тут не используются, а текста много.
ОТДЕЛ Приём;
ИСПОЛЬЗУЕТ
ОС ИЗ
"...\Отделы\Обмен\",
КОС ИЗ
"...\Отделы\Обмен\",
Ввод ИЗ
"...\Отделы\Обмен\",
Вывод ИЗ
"...\Отделы\Обмен\",
Знак ИЗ
"...\Отделы\Иное\";
ЗАДАЧА Число-(): ЦЕЛ;
(* Целое число *)
ПЕР
отКлавиш:
Ввод.ОтКлавиш;
отМышки:
Ввод.ОтМышки;
Счётчик, сч: ЦЕЛ;
Результат: ЦЕЛ;
Буфер: ДОСТУП К РЯД
ИЗ ЗНАК;
Отрицательное: КЛЮЧ;
УКАЗ
Результат := 0; Счётчик
:= 0; Отрицательное := ОТКЛ;
КОЛЬЦО
ЕСЛИ
КОС.Опрос(отКлавиш, отМышки) = Ввод.клавиши ТО
ЕСЛИ
отКлавиш.знак = 0DX ТО
ЕСЛИ
Отрицательное ТО ВОЗВРАТ -Результат ИНАЧЕ ВОЗВРАТ Результат КОН
АЕСЛИ
отКлавиш.код = 08H ТО
ЕСЛИ Счётчик
> 0 ТО
Результат :=
Результат ДЕЛИТЬ 10;
Вывод.ЗнакЦепи(отКлавиш.знак); Вывод.ЗнакЦепи(" ");
Вывод.ЗнакЦепи(отКлавиш.знак); УМЕНЬШИТЬ(Счётчик)
АЕСЛИ
Отрицательное ТО
Отрицательное := ОТКЛ;
Вывод.ЗнакЦепи(отКлавиш.знак);
Вывод.ЗнакЦепи(" "); Вывод.ЗнакЦепи(отКлавиш.знак)
КОН
АЕСЛИ
(отКлавиш.код = 2DH) И (ОС.РазмерЦепочкиОбменника() # 0) ТО
ПОКА Счётчик
> 0 ВЫП
УМЕНЬШИТЬ(Счётчик); Вывод.ЗнакЦепи(8X); Вывод.ЗнакЦепи(" ");
Вывод.ЗнакЦепи(8X)
КОН;
ЕСЛИ
Отрицательное ТО
Отрицательное := ОТКЛ; Вывод.ЗнакЦепи(8X); Вывод.ЗнакЦепи("
"); Вывод.ЗнакЦепи(8X)
КОН;
Результат :=
0;
СОЗДАТЬ(Буфер,
ОС.РазмерЦепочкиОбменника());
ОС.ЦепочкуИзОбменника(Буфер^);
ЕСЛИ (Буфер[0]
>= "0") И (Буфер[0] <= "9") ТО
Результат :=
Результат * 10 + (ВЦЕЛ(Буфер[0]) - ВЦЕЛ("0"));
Вывод.ЗнакЦепи(Буфер[0]); УВЕЛИЧИТЬ(Счётчик)
АЕСЛИ Буфер[0]
= "-" ТО Вывод.ЗнакЦепи("-"); Отрицательное := ВКЛ КОН;
ОТ сч := 1 ДО
РАЗМЕР(Буфер^)-1 ВЫП
ЕСЛИ
(Буфер[сч] >= "0") И (Буфер[сч] <= "9") ТО
Результат
:= Результат * 10 + (ВЦЕЛ(Буфер[сч]) - ВЦЕЛ("0"));
Вывод.ЗнакЦепи(Буфер[сч]); УВЕЛИЧИТЬ(Счётчик)
КОН
КОН;
Буфер := ПУСТО
АЕСЛИ
(отКлавиш.знак = "-") И (НЕ Отрицательное) ТО
ЕСЛИ Результат
= 0 ТО Отрицательное := ВКЛ; Вывод.ЗнакЦепи("-") КОН
АЕСЛИ
отКлавиш.знак = 0X ТО
АЕСЛИ (Результат
< МАКС(ЦЕЛ) ДЕЛИТЬ 10) И ((отКлавиш.знак >= "0") И
(отКлавиш.знак <= "9")) ТО
Результат :=
Результат * 10 + (ВЦЕЛ(отКлавиш.знак) - ВЦЕЛ("0"));
Вывод.ЗнакЦепи(отКлавиш.знак); УВЕЛИЧИТЬ(Счётчик)
КОН
ИНАЧЕ ОС.Спать(50)
КОН
КОН
КОН Число;
КОН Приём.