пользователей: 21222
предметов: 10454
вопросов: 177450
Конспект-online
зарегистрируйся или войди через vk.com чтобы оставить конспект.
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

pogromirovanie:
» sooqa
Уася:
» History motherfuckers

Процедурный и функциональный типы. Правила использования. Пример программы.

Функциональный определяется как заголовок процедуры и функции со списком формальных параметров, но без имени.После объявления функционального типа его можно использовать для описания формальных параметров — имен процедур и функций.тКроме того, необходимо написать те реальные процедуры или функции, имена которых будут передаваться как фактические параметры. Эти процедуры и функции должны компилироваться в режиме дальней адресации с ключом {$F+}.универсальная процедура печати значения для любых функций при х изменяющимся от А до Б с шагом h 
Type Fan=function (x:real):real; {P+}end; 
Function F1(x:real):real; Far;{компиляция в режиме дальнего вызова} Begin F1:=sinx*cosx;end; 
Function F2(x:real):real; Far;{компиляция в режиме дальнего вызова} Begin F1:=sqr(sqr(x))+sqr(x); end; {P-} 
Procedure TAB (F:fan; A,B,H:real);Var x:real; I,n:word; Begin n:=round((B-A)/H);x:=A; For i:=0 to n do begin writeln(x:12,F(x):14); x:=x+h; end; end; 
Begin tab(f1,0,1,0,1); tab(F2,5,7,0,1); end. 

Процедурные типы — это нововведение фирмы Borland (в стандартном Паскале таких типов нет). Основное назначение этих типов — дать программисту гибкие средства передачи функций и процедур в качестве фактических параметров обращения к другим процедурам и функциям. Для объявления процедурного типа используется заголовок процедур, в котором опускается ее имя, например: 
Type Proc = Procedure (a, b, с : real; Var d : real); Proc2 = Procedure (var a, b); 
Var р1 : Proc; ар : array [1..N] of Proc2; 
Переменным процедурных типов допускается присваивать в качестве значений имена соответствующих подпрограмм. После такого присваивания имя переменной становится синонимом имени подпрограммы. В отличие от стандартного Паскаля, в Турбо Паскале разрешается использовать в передаваемой процедуре как параметры-значения, так и параметры-переменные. 
Процедурная переменная занимает в памяти 4 байта (2 слова). В первом хранится смещение, во втором — сегмент (т.е. указатель на код подпрограммы). 


27.01.2014; 07:30
хиты: 121
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2016. All Rights Reserved. помощь