Функцияны сипаттау
Turbo Pascal-да процедуралардан басқа да ішкі программалардың түрі бар – олар функциялар. Нақты мысал қарастырайық.
Turbo Pascal-да берілген санның берілген дәрежесін сипаттайтын стандартты функция жоқ. Дегенмен, сондай функцияны өзіміз жасауға ешқандай бөгет жоқ. Дәрежені есептейтін функция анықталған программаның схемасы төмендегідей болады. (функция дәрежесін есептейтін сан да, сол сияқты дәреже көрсеткіші де бүтін сандар болсын).
Program example;
…
{белгілерді, тұрақтыларды, типтерді және айнымалыларды сипаттау бөлімі}
...
Function Power (Num, Pow:integer):integer;
Var i:integer; a:real;
Begin {функция денесінің басы}
a:=num;
for i:=1 to pow do
a:=a*num;
power:=a
end; {функция денесінің соңы}
…
Begin {программа денесінің басы}
…
Read(a,b);
X:=power(a,b)+y; {функцияға қатынас жасау}
…
End.{программа денесінің соңы}
Example программасында Power функциясы сипатталған. Программаның осы схемасында функцияның сипаттамасы (процедурадағыдай) сипаттау бөлімінің соңында болу керектігі көрініп тұр. Функция құрылымы (процедура сияқты) программа құрылымын қайталайды. Бірінші Function резервтелген сөзінен басталатын тақырып жолы болады. Одан кейін бос орыннан соң жақшаның ішінде формальды параметрлер тізімі көрсетіледі (Num – дәрежесі есептелінетін сан, Pow – дәреже көрсеткіші), осыдан кейін қос нүкте, оның соңынан функцияның мәнінің типі көрсетіледі. Тақырып жолы үтір-нүктемен (;) аяқталады. Функция тақырыбынан кейін оның сипаттау бөлімі орналасады. Қарастырылып отырған функцияда небәрі екі айнымалы ғана анықталған, бірақ программадағы сияқты мұнда да белгілерді, тұрақтыларды, Power функциясының ішіне салынған басқа да процедуралар мен функцияларды жариялауға болады.
Функцияның сипаттау бөлімінен соң оның денесі орналасады. Функцияның денесі операторлық жақшаларға алынған операторлар тізбегінен тұрады.
Power функциясына қатынас жасау үшін программа денесінде қажетті жерге оның атауын көрсету жеткілікті.
Ескерту:
Шақыру операторының (процедура атауы, және де нақты параметрлер болуы мүмкін) көмегімен белсендірілетін процедуралардан ерекшелігі - функция атауы өрнекке қатысады. Осы функцияға қатынас жасау мысалын Example программасынан көреміз;
Функцияның процедураға қарағанда басқа да ерекшеліктері болады. Мысалы, функцияны қолдану нәтижесінде қандай-да бір мән қайтарылады. Функция қайтаратын мәннің типі функцияның сипаттамасында (тақырып жолында) көрсетіледі. Егер процедура атауы оны шақыруға ғана қолданылса, функция атауы қандай-да бір қайтарылатын мәнмен байланысты болады;
Функцияның процедурадан тағы да қандай айырмашылығы бар? Функция қандай-да бір мән қайтаруы тиіс болғандықтан, оның денесінде міндетті түрде оң жағында функция атауы көрсетілген меншіктеу операторы болуы керек;
Қай кезде процедураны, қай кезде функцияны қолданған дұрыс? Бұл нақты жағдайға байланысты. Егер ішкі программа бір ғана мәнді есептейтін болса, оны функция ретінде жүзеге асыруға болады. Егер ішкі программадан бірнеше мәндерді есептеу талап етілсе, оны процедура ретінде орындаған дұрыс.
Параметрлер
Функциялар мен процедураларды қолданған кезде параметрлер өте маңызды орын алады. Алдыңғы мысалда Line процедурасын қажетті формальды параметрлермен безендірген болатынбыз. Және де Example программасының денесінде қажетті мәндерді пернетақтадан енгізуге мүмкіндік беретін Read(a,b) операторы енгізілген. Осыдан кейін осы мәндермен Line процедурасы шақырылады (Line(a,b)). Мұндағы a және b нақты параметрлер болып табылады.
Сонымен, Line процедурасын шақырған кезде a және b айнымалылары процедураның ішіне ch және ln формальды параметрлерінің көмегімен беріледі.
Достарыңызбен бөлісу: |