Процедуралар

Функциялар

Функциялар – қортынды мәнді өзінің «атымен» қайтаратын ішкі программа. Функцияның ең қарапайым түрі ретінде sin(x) функциясын мысалға келтіруге болады. A:=sin(x) жазбасы х санының синусын тауып, функция атымен қорытынды нәтижені қайтарып, оны А айнымалысына меншіктейді.

Функцияны сипаттау екі бөлімнен тұрады: тақырыптан және бөлімнен (блок).

Функция тақырыбының жалпы түрі мынандай:

Function функция аты (параметірлер): нәтиже типі;

Мұндағы функция аты – функцияны шақыру үшін қажетті, кез келген анықтаушы (идентификатор). Параметірлер – функцияның міндетті емес бөлігі болып келетін, функцияға берілетін айнымалылар тізімі. Нәтиже типі – функция орындалғандағы қорытынды нәтиженің типін анықтайды. Нәтиже типі файлдық типтен басқа кез келген тип бола алады.

Функция бөлімі (Блок функции) – кем дегенде бір меншіктеу операторынан тұратын программалық бөлім:

Функция аты := функцияның орындалу нәтижесі;

Немесе

Result:=функцияның орындалу нәтижесі;

Бұл меншіктеу амалдары (біріншісі де, және екіншісі де) функцияның негізгі программаға қайтаратын соңғы қорытынды мәнді меншіктейді. Мысалы:

function MyFunc: Integer; // MyFunc функциясы бүтін типті

//мәнді қайтарады.

begin

MyFunc: = 17; // Функция атына соңғы қорытынды мәнді

// меншіктейміз.

end; // Функция соңы.

 

және

 

function MyFunc: Integer;

Result: = 17; // Функция атына соңғы қорытынды мәнді

end; // меншіктейді.

Екі функцияның да орындалуы бір нәтижеге алып келеді. Көрсетіліп отырған функция барлық уақытта 17 мәнін қайтарып отырады.

Функцияның аты және одан кейінгі жақшаның ішінде орналасқан аргументтер тізімі арқылы функцияны шақыру жүзеге асады. Барлық аргументтер типі функция тақырыбындағы параметірлер типтеріне сәйкес келуі керек.

 

Процедура - өзінің атымен ешқандай мәнді қайтармайтын ішкі программа.

Процедураның сипатталуы екі бөлімнен тұрады: тақырыптан және бөлімнен.

Процедура тақырыбының жалпы түрі келесі түрде болады:

procedure процедура аты (параметрлер);

Мұндағы процедура аты – процедураны шақыруға арналған, кез келген анықтаушы (идентификатор). Процедура параметірлері – міндетті емес, процедураға қандайда бір мәліметті беруші айнымалылар тізімі.

Процедура бөлімі – Delphi тілінің командалары мен операторлардан тұрады. Процедура бөлімі бос болуы мүмкін.

Процедураны шақыру оның аты және жақшаға алынған аргуметтер тізімдері арқылы жүзеге асады.

 

Аргументтер және параметірлер

Параметрлер – ішкі программаның бөлімін (блок процедуры) сипаттағанда қолданылатын ішкі программа элементтері.

Аргументтер – ішкі программаны шақырғандағы оған берілетін мәліметтер. Әрбір параметр ішкі программаның бөліміндегі аргументтер сәйкес келуі керек. Параметрлер:

· мәндер;

· тұрақтылар;

· айнымалылар;

Кез келген типтегі элемент параметр бола алады.

Түріне байланысты параметрлер топтарға бөлінеді:

· тұрақты-параметрлер;

· айнымалы-параметрлер;

· мән-параметрлер;

Тұрақты-параметрлер – ішкі программа тақырыбындағы параметрлер алдында const сөзі тұратын параметрлер. Тұрақты-параметрден кейін қос нүкте қойылып, олардың типтері көрсетіледі. Мысалы:

procedure MyProc1 (const X: Integer);

Мұндағы жалғыз параметр х тұрақты-параметр. Тұрақты-параметр мәнін ішкі программа денесінде өзгертуге болмайды. Оларды ішкі программаның өзгертуге болмайтын параметрлер мәнін түзетуге шектеу қою үшін қолданады.

Айнымалы-параметрлер – ішкі программа тақырыбындағы параметрлер алдында var сөзі тұратын параметрлер. Айнымалы-параметрлерден кейін қос нүкте қойылып, олардың типтері көрсетіледі. Мысалы:

procedure MyProc2 (var a, b: Char; c, d: Sting);

Бұл мысалда a және b параметрлері айнымалы-параметрлер.

Айнымалы-параметрлер ішкі программадан негізгі программаға мәндерді беру керек болғанда қолданылады. Ішкі программадағы параметрлерге жүргізілген өзгерістер, сәйкес аргументтергеде жүреді.

Мән-параметрлер – ішкі программа тақырыбындағы параметрлер алдына var және const сөздері тұрамайтын параметрлер. Мән-параметрлерден кейін қос нүкте қойылып, олардың типтері көрсетіледі.

Мысалы:

function Max (A: array of Real; N: Integer): Real;

Мұндағы А массиві және N айнымалысы мән-параметр. Мән-параметрді компилятор ішкі программа ішіндегі аймақтық (локальные) айнымалылар ретінде қарастырады. Бұл параметрлердің барлық өзгерістері ішкі программа ішінде жүзеге асады және сәйкес аргументтердің мәндеріне ешқандайда әсер етпейді. Параметрлердің типтерін көрсету тек мән-параметрге ғана міндетті. Басқа түрдегі праметрлердің типтерін көрсету міндетті емес. Бұл жағдайда параметрлерді типсіз деп атайды. Мысалы:

function MyFunc (var a, b; const c, d): Integer;

Берілген мысалдағы a, b, c, d параметрлері типсіз. Мұндай ішкі программаны шақыру кезінде аргумент ретінде программист кез келген типтегі элементтерді қолдана алады.