КАТЕГОРИИ: Архитектура-(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 подключается автоматически к каждой программе.
Параметры функций из модуля CRT Wherex: byte; Wherey: byte; Keypressed: Boolean: Readkey: char; Это функции БЕЗ параметров.
Функции для работы со строками; Copy (St, Poz, n):string; Concat (st1, …, stn: string): string; И другие. Это функции С параметрами.
Дата добавления: 2014-10-17; Просмотров: 575; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |