КАТЕГОРИИ: Архитектура-(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) |
Описание функций
Стандартные процедуры Это, в первую очередь, процедуры ввода и вывода Read, readln, write, writeln. С ними вы знакомы. В циклах Repeat, While и For можно использовать еще две процедуры – Break и Continue. Процедура Break позволяет досрочно выйти из цикла, не дожидаясь выполнения условий выхода. Процедура Continue позволяет начать новую итерацию цикла, даже если предыдущая не завершена. Пример: В массиве целых чисел найти первое отрицательное число и вывести его на экран. Фрагмент программы For I:=1 to N do {поиск отрицательного числа} Begin If A[i]>=0 then Continiue; {не отр.=> на след. число} Writeln (‘1-ое отриц. число=’, A[i]); Break End; Процедура Exit служит для досрочного выхода из программы. Дело в том, что безусловный переход с использованием оператора goto можно осуществлять далеко не из каждого места программы и не в любое место программы. Так, например, нельзя с его помощью перейти из основной программы в подпрограмму или выйти из подпрограммы. Для этой цели используется процедура Exit. Пример: Функция, обращает первое отрицательное число в массиве. Function Minus --------------------- Begin Minus:=0 For i:=1 to N do If T[i]<0 then Begin Minus:=T[i]; Exit {досрочный выход из фун-и} END End; Существует множество стандартных процедур, которые работают с файлами: Halt(1) - остановка, Halt(0) - завершение, Halt=Halt(0). Описание функции в основном аналогично описанию процедуры, однако есть и отличия. Результатом работы функции является одно значение. Тип результата задается в заголовке. Общий вид заголовка функции: Function имя функции (список формальных параметров):тип результата. Если функция изменяет значения формальных параметров – переменных или значения глобальных по отношению к данной функции переменных, то говорят, что функция имеет побочный эффект. Применение функции с побочным эффектом нарушает структурированность программы, поэтому их использование нежелательно. Среди входящих в функцию операторов должен обязательно присутствовать хотя бы один оператор присваивания, в левой части которого стоит имя функции. Этот оператор и определяет значение, вырабатываемое функцией. При вызове функции передача фактических параметров производится так же, как и при вызове параметра. Пример: Найти разность двух факториалов: F=m!-k! Program P1; Var F,M,K:Integer; Function Fact (N:Integer):Integer; Var P,I:Integer; Begin P:=1 For I:=2 to N do P:=P*I; Fact:=P End; Begin Writeln (‘Ввод М,К’); Readln (M,K); F:=Fact (M) – Fact (K); Writeln (‘F=’,F:5); End.
Внутри функции имена N,P,I являются локальными. Результат вычисления факториала обозначается именем функции Fact. В основной программе переменные F,M,K являются глобальными. При вычислении значения F дважды происходит обращение к функции Fact(M) и Fact(k) прямо в правой части оператора присваивания. При этом вызов функции м. делать непосредственно внутри выражения, подобно тому, как используются стандартные встроенные функции, например Sin(x). Пример: вычислить длину гипотенузы. S=h/tg
Program Dlina; Const Pi=3.14159; Var H:Real; Betta:Real; Function S(M:Real;Betta:Real):Real; Var x:Real; Begin x:=Betta*Pi/180; S:=H/(sin(x)/cos(x)); End; Begin x:=Betta*Pi/180; S:=H/9sin(x)/cos(x)); End; Begin Write (‘Ввести Betta,H’); Readln (Betta,H); Write (‘S=’,s(H,Betta):10:4); End; Вызов функции осуществляется непосредственно в операции ввода.
Дата добавления: 2014-10-23; Просмотров: 456; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |