русс | укр

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

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

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

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


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

Ф У Н К Ц И И


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


 

Предположим, что мы используем в программе стандартную функцию sin(x) (например, в операторе присваивания y:=sin(x)+1 или в процедуре вывода Writeln(sin(x))). Функция sin реализуется транслятором как подпрограмма, включаемая в текст программы пользователя. Здесь x - это параметр, sin - имя подпрограммы. Вычисленное в подпрограмме значение присваивается имени sin.

 

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

 

Описание функции, как и описание процедуры, состоит из заголовка и блока. Заголовок функции:

 

 


Имя типа определяет тип результата. В блоке должно выполняться присваивание имени функции вычисленного выходного значения.

Обращение к функции – это операнд выражения.

 

Пример 1. Для примера 2 из раздела «Процедуры» оформить вычисление среднего арифметического в виде функции.

 

Вычисление среднего арифметического для массивов X, Y и Z отличается друг от друга именем массива (X, Y или Z) и именем результирующей переменной (Sx, Sy, Sz). В данном случае целесообразно имя обрабатываемого массива ввести в состав формальных параметров, а результирующей переменной присваивать значение, определяемое именем функции.

 

Var i,n : integer;

Sx,Sy,Sz : real;

X,Y,Z : Ar;

{ ------------------------- }

Function MiddleAr3(Var Buf:Ar) : real;

Vari : integer; S : real;

Begin

S:=0;

For i:=1 to n do

S:=S+Buf[i];

S:=S/n;

MiddleAr3:=S;

End{ MiddleAr3 };

{ ------------------------- }

Begin

Ввод и печать n, X; формирование Y, Z

Sx:=MiddleAr3(X); Sy:=MiddleAr3(Y);



Sz:=MiddleAr3(Z);

Печать Sx,Sy,Sz

End.

 

Перенос массива Buf из глобальных переменных в формальные параметры имеет принципиальное значение. Как будет показано ниже, в этом случае для массива Buf никакой памяти не выделяется, а при обращении к функции в ее блоке происходит замена имени Buf на имя фактического массива (X, Y или Z).

 

Пример 2. Дана прямая и две точки и . Определить, находятся ли эти точки по одну сторону от прямой.

Вначале вычислим отклонения точек от прямой:

.

Точки находятся по одну сторону от прямой (или обе лежат на этой прямой), если .

 

Program Side;

Var a,b,c,d1,d2,

x1,y1,x2,y2 : real;

Res : boolean;

{ ------------------------------- }

FunctionSign(x:real):shortint;

Const eps = 0.0001;

Begin{ Определение знака }

Ifx>eps then { переменной x }

Sign:=1

Else

If x<-eps then

Sign:=-1

Else

Sign:=0;

End{ Sign };

{ ------------------------------- }

Begin

Ввод и печать a,b,c,x1,y1,x2,y2

d1:=a*x1+b*y1+c; d2:=a*x2+b*y2+c;

Res:=Sign(d1)=Sign(d2);

Печать Res

End.



<== предыдущая лекция | следующая лекция ==>
О Б Л А С Т Ь Д Е Й С Т В И Я И М Е Н И М Е Т О К | С П И С К И П А Р А М Е Т Р О В


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


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

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

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


 


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

 
 

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

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