Стандартные процедуры
Это, в первую очередь, процедуры ввода и вывода 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; Вызов функции осуществляется непосредственно в операции ввода.
Читайте также: S: Стандартные солевые растворы, используемые для инфузионной терапии при токсикозах с эксикозах Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|