Задания 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:РазработкиГлаголПриложенияСвоиgt;Задание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 ТО
ЕСЛИ Счётчик
gt; 0 ТО
Результат :=
Результат ДЕЛИТЬ 10;
Вывод.ЗнакЦепи(отКлавиш.знак); Вывод.ЗнакЦепи(" ");
Вывод.ЗнакЦепи(отКлавиш.знак); УМЕНЬШИТЬ(Счётчик)
АЕСЛИ
Отрицательное ТО
Отрицательное := ОТКЛ;
Вывод.ЗнакЦепи(отКлавиш.знак);
Вывод.ЗнакЦепи(" "); Вывод.ЗнакЦепи(отКлавиш.знак)
КОН
АЕСЛИ
(отКлавиш.код = 2DH) И (ОС.РазмерЦепочкиОбменника() # 0) ТО
ПОКА Счётчик
gt; 0 ВЫП
УМЕНЬШИТЬ(Счётчик); Вывод.ЗнакЦепи(8X); Вывод.ЗнакЦепи(" ");
Вывод.ЗнакЦепи(8X)
КОН;
ЕСЛИ
Отрицательное ТО
Отрицательное := ОТКЛ; Вывод.ЗнакЦепи(8X); Вывод.ЗнакЦепи("
"); Вывод.ЗнакЦепи(8X)
КОН;
Результат :=
0;
СОЗДАТЬ(Буфер,
ОС.РазмерЦепочкиОбменника());
ОС.ЦепочкуИзОбменника(Буфер^);
ЕСЛИ (Буфер[0]
gt;= "0") И (Буфер[0] lt;= "9") ТО
Результат :=
Результат * 10 + (ВЦЕЛ(Буфер[0]) - ВЦЕЛ("0"));
Вывод.ЗнакЦепи(Буфер[0]); УВЕЛИЧИТЬ(Счётчик)
АЕСЛИ Буфер[0]
= "-" ТО Вывод.ЗнакЦепи("-"); Отрицательное := ВКЛ КОН;
ОТ сч := 1 ДО
РАЗМЕР(Буфер^)-1 ВЫП
ЕСЛИ
(Буфер[сч] gt;= "0") И (Буфер[сч] lt;= "9") ТО
Результат
:= Результат * 10 + (ВЦЕЛ(Буфер[сч]) - ВЦЕЛ("0"));
Вывод.ЗнакЦепи(Буфер[сч]); УВЕЛИЧИТЬ(Счётчик)
КОН
КОН;
Буфер := ПУСТО
АЕСЛИ
(отКлавиш.знак = "-") И (НЕ Отрицательное) ТО
ЕСЛИ Результат
= 0 ТО Отрицательное := ВКЛ; Вывод.ЗнакЦепи("-") КОН
АЕСЛИ
отКлавиш.знак = 0X ТО
АЕСЛИ (Результат
lt; МАКС(ЦЕЛ) ДЕЛИТЬ 10) И ((отКлавиш.знак gt;= "0") И
(отКлавиш.знак lt;= "9")) ТО
Результат :=
Результат * 10 + (ВЦЕЛ(отКлавиш.знак) - ВЦЕЛ("0"));
Вывод.ЗнакЦепи(отКлавиш.знак); УВЕЛИЧИТЬ(Счётчик)
КОН
ИНАЧЕ ОС.Спать(50)
КОН
КОН
КОН Число;
КОН Приём.