Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Примеры стандартных функций




Begin

Var

Type

Сonst

Формат описания функции

Стандартные и пользоваельские функции

Функции в языке PASCAL.

Begin

Begin

Then

Begin

Var

Var

Var

Var

A:<тип>;

…..

procedure lok;

B:<тип>;

….

Переменная А – глобальная, так как описана в основной программе.

Переменная В – локальная; она описана в процедуре.

 

За исключением того времени, когда процедура действительно выполняется, её локальные переменные в буквальном смысле не существуют.

Когда процедура начинает выполнятся (при обращении к ней), локальные переменные размещаются в памяти; при завершении работы процедуры память, занятая её локальными переменными освобождается, следовательно, память может быть использована для других нужд.

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

 

Задача.

Даны отрезки А, В, С и D. Для каждой тройки из этих чисел необходимо напечатать площадь треугольника, если его возможно построить.

 

 

Program SQ;

A,B,C,:real;

Procedure TR (x,y,z:real);

{процедура будет проверять существование треугольника для тех заданных длин отрезков и, если он существует, выводить на экран площадь треугольника}

p:real; {здесь р –локальная (временная) переменная}

if (x+y>z) and(x+z>y)and(z+y>x

p:=(x+y+z)/2;

writeln(sqrt(p*(p-x)(p-y)(p-z):6:3);

end;

else writeln(‘Треугольник не существует’);

end; {конец процедуры}

{Основная программа будет вводить заданные длины отрезков А, И, С, D и обращаться к процндуре для прверки существования треугольника и печати площади или сообщения о том, что треугольник не существует.}

Writeln (‘Введите через пробел длины отрезков’);

Read (A,B,C,D);

TR(A,B,C);

TR(A,B,D);

TR(A,C,D);

TR(B,C,D);

End;

Напомним, что функция отличается от процедуры тем, что

во-первых, функция передает в точу вызова значение (результат своей работы);

во-вторых, имя функции может входить в выражение как операнд

 

Первое отличие подсказывает, что подпрограмму необходими оформлять в вид функции в тех случаях, когда необходимо вычислить какое – нибудь одно (!) значение.

О втором отличии подробнее поговорим чуть позже.

Функция также, как и процедура, состоит из заголовка и тела функции.

Function <имя> (<список формальных параметров с указанием типов>):<тип результата>;

….

….

….

<операторы функции>

end;

Первая строка функции – это заголовок.

Тело функции представляет собой локальный блок, по структуре аналогичный программе.

Обратим внимание на отличие формата описания функции. Краме имени функции и формальных параметров с описанием их типов

 

!!!В разделе операторов должен ноходиться по крайней мере один оператор, который имени функции присваивает значение

Замечание. Если таких операторов несколько, то в точку вызова возращается результат последнего присваивания.

 

!!!Вызываемый результат может иметь любой скалярный тип, типы string и указатель.

Обратим внимание: результатом функций не может быть массив, множество или запись. Это очевидно, так как результатом функции должно одно значение, а массив, множество, запись – сложные типы, состоящие из множества элементов.

 

Обращение к функции (вызов функции) также, как и вызов процедуры, осуществляется по имени с указанием фактических параметров:

<имя функции>(<фактическим параметры>);

 

Арифметические функции находятся в модуле System.

Напомним, что модуль System подключается автоматически к каждой программе.

 

Abs (x:real):real; модуль
Abs (x:integer):integer; модуль
Arctan (x:real):real; арктангенс
Cos (x:real):real; косинус
Sin (x:real):real; синус
Ln (x:real):real; Ln x
Int (x:real):real; Вычисляет целую часть числа
Flag (x:real):real; Вычисляет дробную часть чтсла
Sqr (x:real):real; Квадрат числа х
Sqr (x:integer):integer; Квадрат числа х
Sqrt (x:real):real; Корень квадратный из х
Odd (x:real):real; Х(нечетное)=true, Х (четное) = false
Random (x:real):real; Генерирует псевдослучайное число из диапазона 0…х
Random (x:real):real; Генерирует псевдослучайное число из диапазона 0…0,99
Pi Число π
Exp (x:real):real; ex

Параметры функций из модуля CRT

Wherex: byte;

Wherey: byte;

Keypressed: Boolean:

Readkey: char;

Это функции БЕЗ параметров.

 

Функции для работы со строками;

Copy (St, Poz, n):string;

Concat (st1, …, stn: string): string;

И другие. Это функции С параметрами.

 




Поделиться с друзьями:


Дата добавления: 2014-10-17; Просмотров: 552; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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