Х. ДосмҰхамедов


Дәріс №8. Пайдаланушы функциялары. Ішкі бағдарлама тек процедура ғана емес, сонымен қатар функция болып табылады



бет24/95
Дата07.12.2022
өлшемі3 Mb.
#466729
1   ...   20   21   22   23   24   25   26   27   ...   95
Жуйелик программалау Python

Дәріс №8. Пайдаланушы функциялары. Ішкі бағдарлама тек процедура ғана емес, сонымен қатар функция болып табылады.
Дәріс мақсаты: Студенттерге пайдаланушы функциялары қарастырылады.
Дәріс жоспары:

  1. Пайдаланушы функциялары

  2. шкі бағдарлама тек процедура ғана емес, сонымен қатар функция болып табылады.

Ішкі бағдарлама тек процедура ғана емес, сонымен қатар функция болып табылады. Олардың айырмашылығы: функция процедура секілді команданы орындап қана қоймай, сондай-ақ өзінің мағынасын қайтарады. Сондықтан оның сипаттамасы return операторымен аяқталады.


Процедура секілді функция оны шақырмай тұрып def қызметтік сөзінің көмегімен анықталуы тиіс.
Pythonтіліндегі функция тапсырмасы:
def функция_атауы (параметр1, параметр2,…, параметрN):
командалар, орындалып жатқан функциялар
return мағына
Екі санның орташа арифметикалық өлшемін анықтауды процедура мен функцияны қолданатын бағдарламалық кодты салыстыр.
Процедура

1-сурет
Функция

2-сурет
Процедура екі санның орташа арифметикалық өлшемін есептейді және нәтижені шығарады. Ал функцияда есептеу негізгі бағдарламаға қайтарылып, сонда нәтиже шығарылады.
Ішкі бағдарламаның қандай түрін қолдануды бағдарламашы өзі шешеді. Егер ішкі бағдарлама бағдарламаның бір бөлігінен шақырылған жерінде қайта өңделуге түссе, онда функцияны қолдану тиімді болады, басқа жағдайларды бағдарламашы өзі шешеді.
Ішкі бағдарламамен жұмыс істеу кезінде параметрлердің әр түрлі типтерін қолдануға болады:

  • міндетті параметрлер;

  • параметрлер-кілттік сөздер;

  • бастапқы параметрлер;

  • кез келген ұзындықтағы параметрлер.

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

3-сурет
Параметрлер - кілт сөздер [/ em] нақты параметрлердің еркін тәртібін қолдануға мүмкіндік береді, яғни формальды айнымалылардың ретінен өзгеше болады.
Мысалы:

  • RAZNOST (a)

  • RAZNOST (2, 8, 9)

  • RAZNOST ().

Бастапқы параметрлер ішкі бағдарламаны сипаттау кезінде тағайындалады. Олардың мағынасы ішкі бағдарламаны шақырған кезде нақты параметрлер өзінің мағыналарын алмаған жағдайда қолданылады.
Мысалы:

4-сурет
Бастапқы параметрлер ішкі бағдарламаны сипаттау кезінде тағайындалады. Олардың мағынасы ішкі бағдарламаны шақырған кезде нақты параметрлер өзінің мағыналарын алмаған жағдайда қолданылады.
Мысал.

5-сурет
Кез келген ұзындықтағы параметрлер олардың саны алдын ала белгісіз болған жағдайда қолданылады. Ол үшін параметр атауының алдына жұлдызша қою керек (*).
Мысалы:

6-сурет
Ішкі бағдарламаны шақыру және сипаттау кезінде сен осы параметрлердің комбинациясын қолдана аласың.
Пайдаланушы функциялары.
Функцияны тек негізгі бағдарлама немесе басқа ішкі бағдарламадан ғана емес, сондай-ақ өзінен шақыруға болады. Бағдарламалық кодта қалай көрсетілетінін қарастырайық. FACTORIAL табу есебін шешеміз. Себебі N (N!) санының FACTORIAL- ы N-ға тең немесе кіші барлық сандардың арифметикалық ортасы, онда
1! = 1,
2! = 2⋅1 = 2⋅1!,
3! = 3⋅2⋅1 = 3⋅2! и т.д.
Яғни N! -ді анықтау үшін (N-1)! мәнін білу жеткілікті, ал ол өз кезегінде (N-2)! арқылы есептеледі және т.с. Нәтижесінде біз 1! мәніне жетеміз, ол 1 -ге тең.
Бұл алгоритмді келесі бағдарламалық кодпен жүзеге асыруға болады:

FACTORIAL функциясының өзін өзі шақыратынын көреміз. Осындай функцияларды рекурсивті (немесе рекурсия) деп атайды. 4! мәнін есептеуді кестеде қарастырайық.

Функцияның мәні өзінің шақыруына қарсы кезектілікте қайтарылады, яғни алдымен FACTORIAL(1) жұмысын аяқтайды, кейін FACTORIAL(2) және т.с.
Рекурсивті шақырулардың мөлшері рекурсияның тереңдігі деп аталады. Рекурсияның максималды тереңдігі басында орнатылады және Python тілі интерпретаторының нұсқасына тәуелді. Берілген мысалда функция өзін рекурсивті үш рет шақырады, сондықтан рекурсия тереңдігі 3 -ке тең.
Берілген функция үшін n = 1 шарты базалық жағдай деп аталады. Базалық жағдай функцияның рекурсивті шақыруын аяқтау үшін қажет. Базалық жағдайсыз процесс шексіз болады және жад қатесі шыққанға дейін жалғасады. Сондықтан рекурсияны бағдарламалау кезінде рекурсиядан шығу шарттарына және оның шақыру параметрлеріне назар аудару керек.
Жалпы рекурсивті функцияның алгоритмін келесідей сипаттауға болады. Алдымен функция тексеріледі, алынған формалды параметрлердің мәні базалық жағдайларға (бір функцияда бірнеше болуы мүмкін) сәйкес келетіні тексеріледі. Егер сәйкес келсе, онда функция кері кезектілікте сәйкес мәндерді шақыру нүктесіне қайтарады. Басқа жағдайда параметрлердің басқа мәндерімен функция қайта өзіне жүгінеді.


Достарыңызбен бөлісу:
1   ...   20   21   22   23   24   25   26   27   ...   95




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет