Қатысушы:AnelSamadulla/зертхана

Функция өңдеу

Функция – бұл ішкі программа, аты бар инструкциялардың тізбегі. Функцияны шақыру жалпы түрде былай жазылады: Айнымалы фнкция (параметрлер); 1) айнымалы – функция есептеген мәнді меншіктеуге арналған айнымалының аты. 2) Функция – функция аты; 3) Параметрлер – формальді параметрлер тізбегі, функция мәнін есептеу үшін қолданылады. Төмендегі ескертулерге көңіл бөлу керек: 1. функция мәні меншіктелетін айнымалының типі, функция типімен сәйкес болуы керек. 2. әрбір функция үшін параметрлер саны және типі анықталған болады. Жалпы түрде функцияны сипаттау төмендегідей болады: Function аты (1-параметр:1-тип,...,к-параметрлік: к-тип): Тип Var // жергілікті айнымалыларды сипаттау; begin // функция инструкциясы; аты өрнек; end;

Function – Delphi ортасының қызметші сөзі, бұл сөзден кейін функция инструкциясы жазылады. 

Параметр – функция мәнін есептеу үшін қолданылатын айнымалы. Аты – функция аты, программадан функция инструкциясына ауысу үшін қолданылады. Тип – функция мәнінің типі.

Процедура өңдеу

Ішкі программа мына екі жағдайда процедура түрінде болады: Ішкі программа негізгі программаға ешқандай мәліметтерді қайтармаған жағдайда процедура түрінде болады. Ішкі программа оны шақырған программаға бірден артық мән қайтарғанда процедура үрінде болады. Жалпы түрде процедураны сипаттау: Procedure Аты (var 1 параметр:1-тип;..., var к-параметр: к-тп); Var

  // жергілікті айнымалыны сипаттау;

begin

 // процедура инструкциясы  жазылады;

end; к-параметр – формальді параметр, ол процедура ішәінде қолданылады. Процедураны шақыру. Аты (параметрлер тізімі); Аты – шақырылатын процедура аты. Параметр тізімі – үтірмен ажыратылатын нақты параметрлер. Енді процедуралар мен функцияларға мысалдар келтірейік.

Формальді және нақты параметрлер өңдеу

Ішкі программалардың параметрлері болады. Олар формальді және нақты параметрлер деп бөлінеді. Функцияны сипаттау бөлігіндегі көрсетілген параметр формальді деп аталады. Процедураны шақыру инструкциясында көрстеліген параметрлер нақты параметрлер деп аталады. Параметрлер ішкі программаға мәліметтер жібері үшін және ішкі программа нәтижелерін алу үшін қолданылады. Қосалқы программада формальды параметрлер тізімінің болуы міндетті емес және болмауы да мүмкін. Формальды параметрлердің атауы және типі көрсетіледі. Мысалы, Procedure Geron (a: real; b: integer; s: char); Қосалқы программа денесіндегі операторлар формальды параметрлер тізімін сипаттау бөлімінің кеңейтіліуі ретінде қарастырылады: осы тізімде пайдаланылған барлық айнымалылар қосалқы программа ішіндегі кез келген өрнекте пайдаланылады. Осылайша қосалқы алгоритмдердің көмегімен нақты есептерді шығару жүзеге асырылады. Формальды параметрлердің шынайы параметрлерге ауысуы қосалқы программадағы жазылған алгоритмді қажетіне қарай түзетуге мүмкіндік береді. Object Pascal тілінде қосалқы программаны шақырған кезде формальды параметрлердің типі мен мөлшері шынайы параметрлердің типі мен мөлшеріне сәйкес келуі тиіс. Пайдаланылып отырған шанайы параметрлердің мәні қосалқы программаны шақырғанда оның қандай ретпен орналасуына тәуелді. Программист қосалқы программаны шақырғанда шынайы параметрлердің дұрыс орналасу ретін қадағалауы тиіс. Қосалқы программаның кез келген формальды параметрлері мән параметр немесе айнымалы параметр немесе тұрақты параметр болуы тиіс. Алдыңғы мысалда А және В параметрлері мәндер параметрлері ретінде анықталған. Егер параметрлер айнымалы параметрлер ретінде анықталса, онда олардың алдында міндетті түрде қызметші var сөзі, ал тұрақтылар параметрлері болса const сөзі орналасады. Мысалы, Procedure esepmysal(var A: real; B: real; C: string); Мұндағы А – айнымалы параметр, В – мән параметрі, С – тұрақты.Параметрлердің қай типін қандай жағдайда пайдалану қажеттілігін түсіну үшін қосалқы программа шақырылған кезде формальды параметрлер шынайы параметрлерге қалай ауысатынын қарастырайық. Егер параметр мән ретінде анықталса, онда қосалқы программамен шақырар алдында бұл мән есептеліп алынған нәтиже уақытша жадыға (стек) көшіріліп, қосалқы программаға беріледі. Егер шынайы параметр ретінде айнымалы немесе тұрақты түріндегі қарапайым өрнек көрсетілсе де, бәрібір қосалқы программаға айнымалының (тұрақтының) көшірмесі беріледі. Қосалқы программадағы мәндер параметрінің кез келген өзгерісі шақырып отырған программада қабылданбайды (ескерілмейді), өйткені бұл жағдайда шынайы параметрдің көшірмесі өзгереді. Егер параметр айнымалы параметр ретінде анықталса, онда қосалқы программаны шақырғанда айнымалының көөшірмесі емес, өзі беріледі (шындығында, бұл жағдайда қосалқы программаға айнымалының адресі беріледі). Айнымалы параметрлердің өзгерісі шақырып отырған программадағы шынайы параметрлердің өзгерісіне әкеледі.Қосалқы программада тұрақты параметрлер болған жағдайда айнымалы немесе есептелген мән орналасқан жады бөлігінің адресі беріледі. Бірақ қосалқы парограмма денесінде тұрақты параметрге кез келген жаңа мән меншіктеуді бұғаттайды. Сөйтіп, қосалқы программадағы параметрлер сыртқы, негізгі программамен байланыс құралы ретінде пайдаланылады: осы параметрлердің көмегімен қосалқы программа өзінің жұмысының нәтижесін негізгі программаға бере алады. Әрине, программист мұны басқа тәсілмен де орындай алады: нәтижені ортақ параметрлер арқылы да беруге болады. Бірақ бұл тәсіл программаны түсініп, жүргізуде қиындық туғызады. Тиімді программалау стилінің талабына сәйкес, мүмкін болатын жерде нәтижені беруде шынайы айнымалы параметрлерді пайдаланған дұрыс. Формальды параметрлерді таңдауда ескеретін тағы бір жағдай бар. Мәндер параметрлерін хабарлауда шынайы параметрлер уақытша жадыға көшіріледі. Егер бұл параметр үлкен өлшемді массив болса, онда бұл параметрді тұрақты параметр ретінде хабарлап көшіруге жіберілетін уақыт пен жадыны үнемдеуге болады. Тұрақты параметр жадының уақытша жұмыс істейтін бөлігіне көшірілмейді, сөйтіп қосалқы программаны шақыруға кететін уақыт үнемделеді. Сонымен қатар, мұнда қосалқы программа денесіне кез келген өзгеріс енгізу мүмкін емес, оны компилятор қадағалап отырады. Object Pascal тілінің тағы бір қасиеті – типтік емес параметрлерді пайдалану мүмкіндігі. Егер формальды айнымалы параметрлердің типі қосалқы программа тақырыбында көрсетілмесе, онда ол типтік параметр болып есептеледі. Бұдан, оған сәйкес келетін шынайы параметр кез келген типті айнымалы болуы мүмкін. Бұдан, типтік емес параметр тек айнымалы параметр бола алады. Мысалы, Procedure Myself (var Parametr);