Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева
Предыдущая версия
|
Следующая версия
Следующая версия справа и слева
|
bb:redbook:107 [2017/08/30 14:28] prospero78 [5. Вызов процедуры с параметрами] |
bb:redbook:107 [2017/08/30 14:29] prospero78 [5. Вызов процедуры с параметрами] |
Этот вариант программы делает всё тоже самое, что и предыдущая, но с использованием дополнительной процедуры ''Вещ_ Печать'' описанной выше. Передаваемый аргумент ''вПерем'' должен иметь тот же тип, что и требуемый параметр в объявлении процедуры. В противном случае, **КП** посчитает это ошибкой. Теперь вместо двух инструкций ''мЛог.Real(вПерем); Log.Ln'' можно писать только одну, что приводит к сокращению набираемого кода. В этом примере заключается одна из ключевых идей процедурного стиля. Но обратите внимание, что для вызова процедуры компьютеру требуется выполнить ряд дополнительный служебных действий, и при возврате из процедуры также выполняются некоторые действия, что приводит к дополнительным небольшим затратам времени. Поэтому, //вызов процедуры должен быть оправдан//. Само тело процедуры не должно состоять из одной инструкции, так как в этом //нет никакого смысла//. | Этот вариант программы делает всё тоже самое, что и предыдущая, но с использованием дополнительной процедуры ''Вещ_ Печать'' описанной выше. Передаваемый аргумент ''вПерем'' должен иметь тот же тип, что и требуемый параметр в объявлении процедуры. В противном случае, **КП** посчитает это ошибкой. Теперь вместо двух инструкций ''мЛог.Real(вПерем); Log.Ln'' можно писать только одну, что приводит к сокращению набираемого кода. В этом примере заключается одна из ключевых идей процедурного стиля. Но обратите внимание, что для вызова процедуры компьютеру требуется выполнить ряд дополнительный служебных действий, и при возврате из процедуры также выполняются некоторые действия, что приводит к дополнительным небольшим затратам времени. Поэтому, //вызов процедуры должен быть оправдан//. Само тело процедуры не должно состоять из одной инструкции, так как в этом //нет никакого смысла//. |
| |
Ещё один момент на который необходимо обратить внимание — это порядок размещения процедур. Если процедуру ''Вещ Печать'' разместить позже процедуры ''Старт'' компилятор **КП** не сможет понять, что за процедуру вызывает инструкция ''Вещ_Печать(вПерем)''. Компиляция завершится ошибкой. Поэтому, объявление процедур должно быть упреждающим. | Ещё один момент на который необходимо обратить внимание — это порядок размещения процедур. Если процедуру ''Вещ Печать'' разместить позже процедуры ''Старт'' компилятор **КП** не сможет понять, что за процедуру вызывает инструкция ''Вещ Печать(вПерем)''. Компиляция завершится ошибкой. Поэтому, объявление процедур должно быть упреждающим. |
| |
==== 6. Возврат значения из процедуры ==== | ==== 6. Возврат значения из процедуры ==== |