русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

П О Б О Ч Н Ы Е Э Ф Ф Е К Т Ы Ф У Н К Ц И Й


Дата добавления: 2014-11-27; просмотров: 475; Нарушение авторских прав


 

Основное назначение подпрограммы-функции - вычисление выходного значения. Это условно можно назвать ее главным эффектом.

Рассмотрим для примера стандартную функцию sin(x). Ее главный эффект - вычислить синус угла x, заданного в радианах. Никакой другой работы функция sin(x) в программе не выполняет. Более того, было бы нецелесообразно допустить, чтобы эта функция выполняла другую работу (например, изменяла значение переменной x).

Подпрограмма-функция может изменять значения локальных переменных, описанных в ее блоке. Однако это не оказывает влияния на работу всей программы, тем более что локальные переменные существуют лишь в период работы функции.

Тем не менее функция может выполнять действия, которые обнаруживаются вне тела этой функции, в частности, изменять значения глобальных переменных или формальных параметров-переменных со словом Var. Такие действия называются побочным эффектом функции.

 

Термин "побочный эффект" взят из фармакологии: многие лекарства имеют побочный эффект, который может быть полезным или вредным.

 

Пример.Вычисление площади n-угольника, заданного координатами его вершин.

, где ;

Program Example;

Const Nmax = 100;

Type Ar = array[1..Nmax] of real;

VarX,Y : Ar;

n : byte;

P,z,b : real;

FunctionArea(X,Y:Ar; n:byte):real;

Var i : byte; R : real;

Begin

x[n+1]:=x[1]; y[n+1]:=y[1];

P:=0;

For i:=1 to n do

P:=P+(x[i+1]-x[i])*(y[i+1]+y[i]);

Area:=0.5*R;

Z:=z+sqr(P);

End{ Area };

Begin

Увід n, X, Y

z:=10;

S:=Area(X,Y,n);

z:=z+1;

Writeln('S= ',S:12,' z= ',z:12);

End.

 

 

Из анализа текста только основной программы невозможно установить факт изменения переменной z после обращения к функции Area. Это действие скрыто в описании функции. В этой "завуалированности" проявления побочного эффекта содержится его основная опасность.



 

Функции, создающие побочный эффект, затрудняют понимание и отладку программы.

 

Процедура может иметь множество выходных значений, функция - только одно такое значение. Поэтому в общем случае нежелательно, чтобы функция выполняла в программе какую-либо другую работу, кроме вычисления выходного значения.

 

 



<== предыдущая лекция | следующая лекция ==>
И Ф У Н К Ц И И | С Т А Н Д А Р Т Н Ы Е М О Д У Л И


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.