00i9az titul(1-7)



Yüklə 3,69 Mb.
Pdf görüntüsü
səhifə24/32
tarix26.09.2018
ölçüsü3,69 Mb.
#70438
1   ...   20   21   22   23   24   25   26   27   ...   32

 
 

77 
 
•   IV  fəsil  •  
Proqramlaşdırma 

 
F
UNKSİYA  
 
 
 
 
 
Aşağıdakı proqram kodunu gözdən keçirin və onun hansı məsələni həll etdiyini 
müəyyənləşdirin.  
 
n = 
abs
(
int
(
input
())) 
a = (n // 100) % 10 
b = (n // 10) % 10 
c = n % 10 
print
(a, b, c) 
 
Nəticəni müzakirə edək: 
– Birinci sətirdəki komandalar ardıcıllığını sözlərlə necə ifadə etmək olar?
 
 
Proqramçılar  bir  neçə  yüz  sətir  olan  proqram  kodundan  “baş  çıxara”  bilirlər. 
Proqram  sətirlərinin  sayı  artdıqca  ümumi  məntiqi  tutmaq  çox  çətinləşir.  Hər  bir 
operatorun nə etdiyi aydın olsa da, belə proqramlarda hansısa operatorun konkret 
yerdə  hansı  məqsədlə  istifadə  edildiyini  anlamaq  çox  çətin  olur.
 
Belə  proqramı 
dəyişdirmək, yaxud düzəltmək də asan olmur.  
Bu  problemi  həll  etmək  üçün  proqram  sadə  əməliyyatları  yerinə  yetirən  ayrıca 
altproqramlara bölünür.
 
Beləliklə, yekun proqram ayrı-ayrı operatorlardan deyil, hər 
birinin  öz  adı  olan  bitkin  kod  bloklarından  ibarət  olur.  Altproqramlardan  istifadə 
olunması  həm  proqramın  yazılması  vaxtını  qısaldır,  həm  proqram  kodunun  həcmini 
azaldır, həm də proqramın strukturunu daha anlaşıqlı edir. Eyni zamanda bu yanaşma 
proqramın yazılışında səhvlərin sayının azalmasına təsir göstərir. 
Altproqramları,  adətən,  iki  kateqoriyaya  bölürlər:  prosedurlar  və  funksiyalar
Prosedur, sadəcə, hər hansı operatorlar ardıcıllığını yerinə yetirir. ALPLogo proq-
ramlaşdırma  mühitində  tanış  olduğunuz  altproqramlar  əslində  prosedurlar  idi. 
Funksiya  isə  müəyyən  qiyməti  hesablayır  və  həmin 
qiyməti  onu  çağıran  proqrama  (altproqrama)  qaytarır. 
Bəzi  proqramlaşdırma  dillərində,  o  cümlədən,  Python 
dilində  altproqramlar  prosedur  və  funksiyalara  bölün-
mür, onların hamısına funksiya kimi baxılır. Belə dillər-
də prosedur heç bir qiymət qaytarmayan funksiyadır. 
 
 
F ə a l i y y ə t
 
1
17 

Altproqramlar nədir və onlar proqramçıya hansı üstünlüklər verir?  

input() komandası nə edir? 
 
 
• 
Altproqram 
• 
Funksiya 
• 
Funksiyanı çağırmaq 
• 
Formal parametr
 
• 
Faktik parametr 
S ö z l ü k  


 
 
78 
 
 
Qeyd olunduğu kimi, hər bir funksiyanın adı olur. Hər hansı funksiyanın yerinə 
yetirilməsi üçün onun adına müraciət olunmalı, başqa sözlə, funksiya çağırılma-
lıdır. Funksiyanı proqramın istənilən yerindən çağırmaq olar.  
Python  dilində  müxtəlif  hallar  üçün  çoxlu  sayda  funksiyalar  vardır.  Məsələn, 
"Fəaliyyət"  bölümündə  verilmiş  proqramda  dörd  funksiyadan  istifadə  olunub: 
abs
(), 
int
(), 
input
() və 
print
(). Bunlar Python dilinə daxil olan standart 
funksiyalardir.  Hər  bir  proqramlaşdırma  dilində  çoxlu  sayda  standart  funksiyalar 
olsa  da,  müəyyən  məsələlərin  həllində  yeni  funksiyalara  ehtiyac  olur.  Təbii  ki, 
Python dilində yeni funksiyalar yaratmaq imkanı da vardır.
 
Python dilində yeni funksiyanın təyini def açar sözü ilə başlayır və ondan sonra 
funksiyanın adı göstərilir. Addan sonra gələn açılan və bağlanan mötərizələr funksi-
yanı adi dəyişəndən fərqləndirir. İki nöqtə isə funksiyaya daxil olan komandaların 
başlanğıcını qeyd edir. Məsələn, greeting() adlı sadə bir funksiya təyin edək: 
 
def
 
greeting
(): 
    
print
(
'Xoş gəlmisiniz!'

 
Bu  funksiyanı  proqramın  hər  hansı  yerindən  çağırmaq  üçün  standart  funksi-
yalarda olduğu kimi onun adını ayrıca operator kimi göstərmək lazımdır.  
 
greeting() 
 
Bu  funksiyanın  işinin  nəticəsi  həmişə  eyni  olur,  çünki,  riyazi  dillə  desək,  bu 
funksiyanın arqumenti yoxdur. Proqramlaşdırmada belə funksiyalardan, demək olar 
ki,  istifadə  olunmur.  Adətən,  funksiya  onu  çağıran  proqramdan  verilənlər  alır.
 
Verilənlər funksiyaya parametrlər şəklində ötürülür. Funksiya yaradılarkən onun 
parametrlərinə ötürülən qiymətlər hələ məlum olmur. Yeni funksiya təyin olunarkən 
onun adından sonra formal parametrlər 
göstərilir.  Formal  parametrlər  ötürülən 
verilənləri  müəyyən  edən  ixtiyari  dəyi-
şənlərdir. Onlar yalnız funksiyanın yerinə 
yetirdiyi əməliyyatları təsvir etmək üçün 
lazımdır. 
Funksiya  çağırılarkən  onun  adından 
sonra  mötərizədə  ona  ötürülən  faktik 
parametrlər göstərilir. Funksiyanın operatorlarının yerinə yetirilməsi zamanı for-
mal parametrlər faktik qiymətlərlə əvəz olunur.  
Bu deyilənləri bir nümunə üzərində izləyək. Bu nümunədə proqram daxil edilmiş 
hicri ilini miladiyə, miladi ilini isə hicriyə çevirəcək və nəticəni ekranda göstərəcək. 
def
 
salam
(s): 
    
print
(s) 
salam(
'Sabahınız xeyir!'
)
 
 
salam(
'Axşamınız xeyir!'

Formal parametr 
Faktik parametr 


 
 

79 
 
•   IV  fəsil  •  
Proqramlaşdırma 

Bu zaman M = H – H / 33 + 622 və H = M – 622 + (M – 622) / 32 düsturlarından 
istifadə ediləcək. Burada M dəyişəni miladi ilini, H isə hicri ilini göstərir.
 
İki funksiya təyin edək: bunlardan biri – miladi_hicri() funksiyası para-
metr  kimi  qəbul  etdiyi  miladi  ilini  məlum  düstur  əsasında  hicri  ilinə,  o  biri  – 
hicri_miladi() funksiyası isə hicri ilini miladi ilinə çevirib ekrana çıxaracaq.  
 
def
 
miladi_hicri
(S): 
   M = 
int
(S) 
   H = M - 622 + (M - 622) // 32 
   
print
(
'Hicri ili: '
, H) 
 
def
 
hicri_miladi
(S): 
    H = 
int
(S) 
    M = H - (H // 33) + 622 
    
print
(
'Miladi ili: '
, M) 
 
S = 
input
(
'Miladi ili: '

miladi_hicri(S)
 
 
S = 
input
(
'Hicri ili: '

hicri_miladi(S)
 
 
Bu  nümunədə  təyin  olunan  hər  iki  funksiya  kənardan  qəbul  etdikləri  qiymət 
əsasında  hesablama  aparıb  nəticəni  ekrana  çıxardır.  Ancaq  praktik  məsələlərin 
həllində çox zaman  funksiyanın emal nəticəsində aldığı yeni qiyməti  onu  çağıran 
proqrama  qaytarması  daha  əlverişli  olur.  Bu  məqsədlə  Python  dilində  return 
komandası nəzərdə tutulub. Bu komanda funksiyanın sonunda yazılır və ondan sonra 
mötərizədə funksiyanın qaytarmalı olduğu qiymət göstərilir. 
Bildiyiniz  kimi,  input()  funksiyası  klaviaturadan  daxil  edilən  kəmiyyətin 
tipindən  asılı  olmayaraq,  həmişə  sətir  qaytarır.  Aşağıda  təyin  olunan  yeni 
num_input
() funksiyasının qaytardığı qiymət isə ədəd olur. 
 
def
 
num_input
(prompt): 
    typed = 
input
(prompt)   
# Daxil edilən sətir 
                            # typed dəyişənində saxlanılır
 
    num = 
int
(typed)        
# Sətir ədədə çevrilir və 
                            # num dəyişənində saxlanılır
 
   
 return
 num              
# Dəyişənin qiyməti qaytarılır
 
 
a = num_input(
'a-nı daxil edin: '

b = num_input(
'b-ni daxil edin: '

print
(
'a * b ='
, a * b) 
 


Yüklə 3,69 Mb.

Dostları ilə paylaş:
1   ...   20   21   22   23   24   25   26   27   ...   32




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə