Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
bb:redbook:202 [2017/08/30 16:50] prospero78 [2.4 Вывод данных на экран] |
bb:redbook:202 [2020/10/29 07:08] (текущий) |
||
|---|---|---|---|
| Строка 94: | Строка 94: | ||
| Часть символов ("#" | Часть символов ("#" | ||
| <code oberon2> | <code oberon2> | ||
| - | PROCEDURE Сиг_Вывести; | + | PROCEDURE Сигнал_Печать; |
| CONST | CONST | ||
| _п = " "; (* пауза в передаче сигнала *) | _п = " "; (* пауза в передаче сигнала *) | ||
| Строка 111: | Строка 111: | ||
| END; | END; | ||
| мЛог.Ln; | мЛог.Ln; | ||
| - | END Сиг_Вывести; | + | END Сигнал_Печать; |
| </ | </ | ||
| ==== 2.5 Общий вид программы ==== | ==== 2.5 Общий вид программы ==== | ||
| Для запуска всей программы нужно определить запускающую процедуру с признаком экспорта. Пусть она по традиции будет называться " | Для запуска всей программы нужно определить запускающую процедуру с признаком экспорта. Пусть она по традиции будет называться " | ||
| + | |||
| + | Привет9.odc | ||
| + | |||
| <code oberon2> | <code oberon2> | ||
| - | MODULE | + | MODULE |
| (* это программа на языке | (* это программа на языке | ||
| Компонетный Паскаль. Она показывает | Компонетный Паскаль. Она показывает | ||
| как можно вводить данные и обрабатывать их*) | как можно вводить данные и обрабатывать их*) | ||
| - | IMPORT In, Log, Math; | + | IMPORT |
| + | мЛог := Log, | ||
| + | Math; | ||
| CONST | CONST | ||
| - | _sig_max | + | _разм |
| + | |||
| VAR | VAR | ||
| - | p1: SHORTINT; | + | цШум_низ: SHORTINT; |
| - | p2: SHORTINT; | + | цШум_верх: SHORTINT; |
| - | sig: ARRAY _sig_max | + | мцСигнал: ARRAY _разм |
| - | i: INTEGER; | + | цИтер: INTEGER; |
| - | tmp: INTEGER; | + | цВрем: INTEGER; |
| - | PROCEDURE | + | PROCEDURE |
| BEGIN | BEGIN | ||
| - | FOR i := 0 TO ( _sig_max | + | FOR цИтер |
| - | sig[i] := 0 | + | мцСигнал[цИтер] := 0 |
| END; | END; | ||
| - | i := 0; | + | цИтер |
| - | In.Open; | + | мВв.Open; |
| - | WHILE (In.Done) & ( i < _sig_max | + | WHILE (мВв.Done) & (цИтер |
| - | In.Int(tmp); | + | мВв.Int(цВрем); |
| - | sig[i] := SHORT(tmp); | + | мцСигнал[цИтер] := SHORT(цВрем); |
| - | INC(i) | + | INC(цИтер) |
| END; | END; | ||
| - | END GetSignal; | + | END Сигнал_Получ; |
| - | PROCEDURE | + | PROCEDURE |
| BEGIN | BEGIN | ||
| - | p1 := 50; | + | цШум_низ |
| - | p2 := 1000; | + | цШум_верх |
| - | FOR i := 0 TO _sig_max | + | FOR цИтер |
| - | IF sig[i] < p1 THEN | + | IF мцСигнал[цИтер] < цШум_низ |
| - | sig[i] := 0 | + | мцСигнал[цИтер] := 0 |
| - | ELSIF | + | ELSIF |
| - | sig[i] := 600 | + | мцСигнал[цИтер] := 600 |
| ELSE | ELSE | ||
| - | sig[i] := 500 | + | мцСигнал[цИтер] := 500 |
| END; | END; | ||
| END; | END; | ||
| - | END LimitSig; | + | END Сигнал_Ограничить; |
| - | PROCEDURE | + | PROCEDURE |
| CONST | CONST | ||
| - | _p = " | + | _п = " |
| _s = "#"; | _s = "#"; | ||
| - | _m = " | + | _м = " |
| BEGIN | BEGIN | ||
| - | Log.String(' | + | мЛог.String(' |
| - | FOR i := 0 TO _sig_max | + | FOR цИтер |
| - | IF sig[i] = 0 THEN | + | IF мцСигнал[цИтер] = 0 THEN |
| - | Log.String(_p) | + | мЛог.String(_п) |
| - | ELSIF | + | ELSIF |
| - | Log.String(_s) | + | мЛог.String(_s) |
| ELSE | ELSE | ||
| - | Log.String(_m) | + | мЛог.String(_м) |
| END; | END; | ||
| END; | END; | ||
| - | Log.Ln; Log.String(' | + | мЛог.Ln; мЛог.String(' |
| - | END OutSig; | + | END Сигнал_Печать; |
| - | PROCEDURE | + | PROCEDURE |
| VAR | VAR | ||
| BEGIN | BEGIN | ||
| - | GetSignal; | + | Сигнал_Получ; |
| - | LimitSig; | + | Сигнал_Ограничить; |
| - | OutSig | + | Сигнал_Печать |
| - | END Start; | + | END Старт; |
| BEGIN | BEGIN | ||
| - | END TestHello9. | + | END КнигаПривет9. |
| </ | </ | ||
| - | В процедуре '' | + | В процедуре '' |
| + | Кроме того, обратите внимание, | ||
| + | И обратите внимание, | ||
| ==== 2.6 Исходные данные и результат ==== | ==== 2.6 Исходные данные и результат ==== | ||
| Строка 209: | Строка 216: | ||
| В результате компиляции и выполнения программы будет выведена следующая информация: | В результате компиляции и выполнения программы будет выведена следующая информация: | ||
| - | < | + | |
| - | компилируется "TestHello9" | + | компилируется "КнигаПривет9" |
| - | старый модуль | + | старый модуль |
| - | [Начало приёма] | + | [Начало приёма] |
| - | ..# | + | ..# |
| - | ........................................................................................................... | + | |
| - | .......................................... | + | |
| - | [Конец приёма] | + | [Конец приёма] |
| - | </ | + | |
| Обратите внимание на размер всей программы: | Обратите внимание на размер всей программы: | ||
| Из выведенного сигнала видно, что была передана комбинация букв: "SOS SOS O". В первом случае сигнал был детектирован(выделен) точно. Во втором случае, | Из выведенного сигнала видно, что была передана комбинация букв: "SOS SOS O". В первом случае сигнал был детектирован(выделен) точно. Во втором случае, | ||
| + | |||
| + | ==== Задание ==== | ||
| + | * Сделайте так, чтобы литера " | ||
| + | * Доработайте так, чтобы вместо морзянки выводились литеры | ||
| + | * Попробуйте сделать с помощью типа '' | ||