Cи тілінде бағдарламалау Берикжан Касымов, 2018-2019
47
http://astanabilim.kz/infor/c
Логикалық функциялар негізгі екі жағдайда қолданылады:
бағдарламаның әрі қарай жұмыс істеуінде жағдайдың
қалай болатындығына
анализ жасап және оған жауап беру үшін қолданылады;
егер күрделі операцияларды анықтау және орындау кезінде қандай да бір
қателер болғандығын қадағалау үшін қолданылады.
Жай сан ба әлде жоқ па?
Есеп. N санын енгіз және ол саның жай сан ба екендігін анықта. Осы
сұраққа жауап беретін функцияны қолдан.
Енді функцияның денесін негізгі функциядан кейін қойып көрейік. Негізгі
бағдарламаны өңдеу кезінде транслятор осы функцияны түсіну үшін оны алдын
ала сипаттау қажет.
Функция екі мәнді береді немесе қайтарады.
Анықталған функция арқылы тек нәтижені алуға ғана болады. Егер екң
немесе одан да көп мәндердің нәтижелерін
алу керек болса, онда арнайы әдісті
қолдану қажет болады – ол әдіс сілтеме арқыл параметрлерді жіберу болвп
табылады.
Есеп. Екі бүтін санның ішіне ең үлкен және ең кіші санды табатын
функцияны жазайық.
Төмендегі бағдарламада өте айлалы тәсіл қолданылған: неізгі бағдарламаға
байланысты функцияның мәндерін өзгерту керек болады. Бірші нәтиже (ең
кңшкентай сан екі санның арасыда) функция қарапайым түрде жауап береді, ал
Cи тілінде бағдарламалау Берикжан Касымов, 2018-2019
48
http://astanabilim.kz/infor/c
екінші негізгі бағдарламаның айнымалыларының берген мәліметіне
тәуелді
болады.
Процедура мен функцияларды орындау кезінде параметрлердің көшірмелері
пайда болады, функциялар осы көшірмелермен жұмыс істейді. Яғни бұл
функцияны шақыру кезінде айнымалы-параметрдің
мәндерінің барлық
өзгертулері жасырын болып тұрады (көрінбейді).
Егер тақырыпшадағы параметрдің атының алдына & таңбасын қоятын
болсақ (еске түсірейік, ол тағы айнымалының адресін анықтайтындығына), бұл
кезде функция шақырылуы кезінде параметрдің көшірмесімен емес, параметрдің
өзімен жұмыс атқарады. Сондықтан біздің мысалымызда функция негізгі
бағдарламадағы max айнымалысының мәнін өзгертеді және оған екі санның
үленінің мәнін жазады.
Мұндай тәсілді процедураға да қолдануға болады: олар формальді түрде
мән-нәтиже бермеседе, параметрлерді өзгерту
арқылы функцияның шақыру
кезінде қолданылады.
Қандай жаңа жаңалықтар алдыңдар?
Егер фунция екі немесе одан да көп нәтижелер беруі үшін, төмендегідей
жасайды:
o Return операторының көмегімен қарапайым түрде бір нәтиже береді
o
Қалғандары параметрді өзгерту арқылы мәндерді қайтарады
Бағдарлама астында қарапайым параметрлер өзгермейді,
өйткені олар
параметрлердің көшірмелерімен жұмыс істейді (мысалы, MinMax
функциясындағы а мен b мәндерін өзгерткен кезде, оларға сәйкес негізгі
бағдарламадағы N мен M айнымалыларының мәні өзгермейді).
Cи тілінде бағдарламалау Берикжан Касымов, 2018-2019
49
http://astanabilim.kz/infor/c
Кезкелген процедура мен функция параметрледің
мәнін өзгерту арқылы
орындай алады.
Арнайы түрде бағдарлама астының тақырыпшсында есептелуші параметрлер
міндетті түрде сипатталады: олардың аттарының алдында & -белісі
қойылады, яғни бағдарлама астындағы параметрдің мәнін өзгерте
алатындығын сілтеме екендігін көрсетеді (біздің жағдайымызда функция
неізгі бағдарламадағы max айнымалысының мәнін өзгертіп отырады).
Мұндай процедуралар мен функцияларды
шақыру кезінде нақты
есептелінетін параметрледің тек айнымалылардың аттарын жазған жеткілікті
(арифметикалық өрнек те емес, санда емес – бұл жағдайда транслятор
ескерту жасайды және уақытша айнмыалының жадында орындалады).
Достарыңызбен бөлісу: