Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Параметрлер






Қ осалқ ы программада формальды параметрлер тізімінің болуы міндетті емес жә не болмауы да мү мкін. Формальды параметрлердің атауы жә не типі кө рсетіледі. Мысалы,

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);






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.