До появления Unicode было много распространённых 7-8-битных кодировок. Ввиду малого количества доступных символов (не больше 2^8 = 256) такие кодировки не могли вместить все возможные символы разных языков, поэтому создавались различные кодировки для разных языков, причём для одного языка могло быть множество разных не совместимых друг с другом кодировок. При попытке открыть текст не в "родной" кодировке вместо осмысленного текста возникал непонятный набор символов.
Чтобы разрешить противоречия, некоммерческая организация "Консорциум Юникода" предложила ввести единую кодировку. По соглашению сейчас максимальное количество символов, которые можно закодировать юникодом, немного более 1 миллиона – и этого количества хватает не только для того, чтобы закодировать латиницу, кириллицу и множество других языков, но и даже emoji – небольшие картинки, как правило выражающие эмоции, и выдуманные языки из фантастических произведений.
Для того, чтобы эта программа заработала надо добавить перед описанием процедуры F следующую строчку: procedure G(n: integer);forward; Так как в процедуре F есть вызов процедуры G описанной дальше по тексту программы. После исправления кода и запуска программы с F(12) получим 17 звездочек. По шагам это будет выглядеть так:
Вызов процедуры F и выполнение * n = 12 * n = 12 Вызов процедуры G и выполнение * n = 11 * n = 11 Вызов процедуры F и выполнение * n = 9 * n = 9 Вызов процедуры G и выполнение * n = 8 * n = 8 Вызов процедуры Fи выполнение * n = 6 * n = 6 Вызов процедуры G и выполнение * n = 5 * n = 5 Вызов процедуры F и выполнение * n = 3 * n = 3 Вызов процедуры G и выполнение * n = 2 * n = 2 Вызов процедуры F и выполнение * n = 0
До появления Unicode было много распространённых 7-8-битных кодировок. Ввиду малого количества доступных символов (не больше 2^8 = 256) такие кодировки не могли вместить все возможные символы разных языков, поэтому создавались различные кодировки для разных языков, причём для одного языка могло быть множество разных не совместимых друг с другом кодировок. При попытке открыть текст не в "родной" кодировке вместо осмысленного текста возникал непонятный набор символов.
Чтобы разрешить противоречия, некоммерческая организация "Консорциум Юникода" предложила ввести единую кодировку. По соглашению сейчас максимальное количество символов, которые можно закодировать юникодом, немного более 1 миллиона – и этого количества хватает не только для того, чтобы закодировать латиницу, кириллицу и множество других языков, но и даже emoji – небольшие картинки, как правило выражающие эмоции, и выдуманные языки из фантастических произведений.
procedure G(n: integer);forward;
Так как в процедуре F есть вызов процедуры G описанной дальше по тексту программы.
После исправления кода и запуска программы с F(12) получим 17 звездочек. По шагам это будет выглядеть так:
Вызов процедуры F и выполнение
* n = 12
* n = 12
Вызов процедуры G и выполнение
* n = 11
* n = 11
Вызов процедуры F и выполнение
* n = 9
* n = 9
Вызов процедуры G и выполнение
* n = 8
* n = 8
Вызов процедуры Fи выполнение
* n = 6
* n = 6
Вызов процедуры G и выполнение
* n = 5
* n = 5
Вызов процедуры F и выполнение
* n = 3
* n = 3
Вызов процедуры G и выполнение
* n = 2
* n = 2
Вызов процедуры F и выполнение
* n = 0