Лекция · 3.1

Қолданушы процедуралары

Программаңда бір фрагментті («*» жолын шығару секілді) үш-төрт рет қайта-қайта көшіріп жазғаныңды байқадың ба? Ыңғайсыз әрі қате жіберу оңай емес пе? Дәл осы мәселені шешу үшін «процедура» деген ұғым бар. Бүгін код қайталанудан құтылып, программаны ықшам әрі оқуға оңай етудің жолын үйренеміз.

Ішкі программа не үшін керек

Ресейлік ғалым В.Ф.Очков ішкі программаны әдемі теңеумен түсіндірген: «Ішкі программа — бірнеше рет айтылатын ән қайырмасы, ал ән мәтінінде оны тек БІР РЕТ жазады». Яғни, әннің қайырмасын әр шумақтан кейін толық қайта жазудың орнына, оны бір жерге жазып қойып, қажет кезде «қайырма» деп көрсете саласың.

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

Ішкі программаның екі түрі бар — олардың айырмашылығы «нәтиже қайтара ма, жоқ па» дегенде:

ТүріСипаттамасы
ПроцедураБелгілі бір әрекет орындайды (мыс. экранға шығару), нәтижені МӘН ретінде қайтармайды
ФункцияПроцедура сияқты әрекет орындайды, БІРАҚ есептелген нақты мәнді нәтиже ретінде қайтарады (математикалық функцияға ұқсас)

Тағы бір жіктелу бар — «кім жазды» дегенге қарай: стандартты (жүйелік) ішкі программалар — тілдің өзінде дайын тұрады (мыс. print()), ал стандартты емес (қолданушы) — программашының өзі жазатын жаңа ішкі программа.

Python-да процедура синтаксисі

Python-да процедура (немесе функция) def (ағылшынша *define* — анықтау) кілттік сөзінен басталады, содан кейін атауы, жақшалар (керек болса параметрлермен) және қос нүкте жазылады. Процедура «денесі» ШЕГІНІСПЕН (отступпен) жазылады.

⚠️
Маңызды ереже: процедура ШАҚЫРЫЛҒАНҒА ДЕЙІН, яғни негізгі программадан бұрын, def арқылы АНЫҚТАЛҒАН болуы керек. Python жоғарыдан төменге қарай оқитындықтан, әлі анықталмаған процедураны шақыру қатеге әкеледі.

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

Есептер
Есеп (оңай): параметрсіз процедура

Берілді: N саны берілген.

Табу керек: N санының теріс екенін анықтайтын параметрсіз процедура.

def ANIKTAU():
    print("Teris san")

# Негізгі программа бөлігі
n = int(input('Sandy engiz='))
if n < 0:
    ANIKTAU()
else:
    print("Ong san")

Жауабы: n мәні теріс болса — «Teris san», оң болса — «Ong san» шығады.

Есеп (оңай): қайталанатын фрагментті процедураға айналдыру

Берілді: «*» таңбасынан тұратын жол программада үш рет қайталанады.

Табу керек: осы фрагментті процедура түрінде рәсімдеу.

def starline():
    print("*" * 20)

starline()
print("Title: Program 1")
starline()
print("The end")
starline()

Жауабы:

********************
Title: Program 1
********************
The end
********************
Есеп (орта): екі параметрлі процедура

Берілді: тіктөртбұрыштың ұзындығы мен ені.

Табу керек: ауданы мен периметрін есептейтін екі процедура.

Неге екі бөлек процедура жазамыз? Ауданды есептеу мен периметрді есептеу — екі бөлек тапсырма, оларды бөлек процедураға бөлу кодты түсінікті әрі қайта пайдалануға оңай етеді.

def audan(k, p):
    print('audan=', k * p)

def perimetr(k, p):
    print('perimetr=', 2 * (k + p))

# Негізгі программа бөлігі
a = int(input('Uzyndygyn engiz='))
b = int(input('Enin engiz='))
audan(a, b)
perimetr(a, b)

Жауабы: енгізілген a мен b мәндеріне сәйкес аудан мен периметр экранға шығады.

⚠️
Жиі кездесетін қате: процедураны шақырғанда параметрлер саны оны АНЫҚТАУДАҒЫ параметрлер санымен ДӘЛ сәйкес болуы керек. Мысалы, audan(k, p) екі параметрмен анықталған болса, оны шақырғанда да міндетті түрде екі мән беру керек: audan(a, b).
🎯 ҰБТ байланысы
Процедура мен функцияны ажырата білу — Python бағдарламалау тарауының негізі.
1
Процедура нәтижені ҚАЙТАРМАЙДЫ, функция нәтижені МӘН РЕТІНДЕ қайтарады.
2
Процедура шақырылмас бұрын міндетті түрде def арқылы анықталуы керек.
3
Шақырудағы параметр саны анықтамадағы параметр санымен сәйкес болуы керек.
Сабақ қорытындысы
  • Ішкі программа — код қайталанудан құтқаратын, атымен бірнеше рет шақырылатын программа бөлігі.
  • Процедура — әрекет орындайды, нәтижені қайтармайды; функция — нәтижені мән ретінде қайтарады.
  • Python-да процедура def сөзінен басталады, денесі шегіныспен жазылады.
  • Процедура шақырылмас бұрын анықталуы керек, шақырудағы параметр саны анықтамадағымен сәйкес болуы керек.