Bu dərsdə biz funksiyaları öyrənəcəyik. Funksiya kompüterə nə edəcəyini bildirən resept kimi kiçik təlimatlar blokudur. Funksiyalar bizə böyük problemləri kiçik parçalara ayırmağa kömək edir. Onlar işimizi asanlaşdırır, proqramlarımızı aydınlaşdırır. Bu gün biz funksiyaların nə olduğunu, onlardan nə üçün istifadə etdiyimizi və onların bizə sadə şəkildə proqramlar yaratmağa necə kömək etdiyini görəcəyik.
Təsəvvür edin ki, həmişə eyni işi görən oyuncaq maşınınız var. Düyməni basdığınız zaman maşın mahnı oxuyur. Kompüter proqramındakı funksiya oxşar şəkildə işləyir. Bu, təkrar istifadə edə biləcəyiniz təlimatlar toplusudur. Siz funksiyanı bir dəfə təyin edirsiniz, sonra isə ondan istifadə etmək lazım olduqda onu çağıra bilərsiniz. Bu fikir proqramların başa düşülməsini asanlaşdırır və qurulmasını daha sürətli edir.
Gündəlik həyatımızda bir şey etmək üçün addımları izləyirik. Məsələn, dişlərinizi fırçalayarkən və ya sendviç hazırladığınız zaman sadə addımları ardıcıllıqla yerinə yetirirsiniz. Funksiya bu addımlara bənzəyir. Hər dəfə bu işləri necə edəcəyinizi özünüzə xatırlatmaq əvəzinə, addımları xatırlayırsınız və ya sizin üçün bunu edən düyməni sıxırsınız.
Funksiya müəyyən bir tapşırığı yerinə yetirən adlandırılmış kod blokudur. Siz bunu daha böyük proqramınızın içərisində mini proqram kimi düşünə bilərsiniz. Funksiyalar kiçik bir tapşırığı yerinə yetirmək üçün yazılır. Onlar rəqəmlər əlavə edə, kiməsə salam verə və ya hətta ekranda şəkil çəkə bilərlər. İdeya funksiyanın daxilində tapşırığın təfərrüatlarını gizlətməkdir. Beləliklə, yalnız tapşırığı yerinə yetirmək lazım olduqda funksiyanı adı ilə çağırmalısınız.
Məsələn, sadə bir funksiya işıq açarı kimi görünə bilər. Düyməni çevirdiyiniz zaman işıq yanır. Eynilə, funksiyanı çağırdığınız zaman kompüter onun daxilindəki hərəkətləri yerinə yetirir. Bu, işinizi səliqəli saxlayır və istənilən problemi tapıb aradan qaldırmağı asanlaşdırır.
Proqramlaşdırmada funksiyalardan istifadə etmək üçün çoxlu yaxşı səbəblər var. Birincisi, funksiyalar işimizi təşkil etməyə kömək edir. Eyni təlimatları dəfələrlə yazmaq əvəzinə, onları funksiyada bir dəfə yazırıq və lazım olduqda funksiyanı çağırırıq. Bu, vaxta qənaət edir və səhvlərin qarşısını alır. İkincisi, funksiyalar bizə kodu təkrar istifadə etməyə kömək edir. Funksiya müəyyən edildikdən sonra proqramımızın bir çox hissəsində istifadə oluna bilər. Üçüncüsü, funksiyalar proqramların oxunmasını asanlaşdırır. Tapşırıq daha kiçik funksiyalara bölündükdə, proqramın nə etdiyini başa düşmək üçün funksiyaların adlarına baxa bilərsiniz.
Təsəvvür edin ki, siz böyük LEGO qalası tikirsiniz. Bütün qalanı tikmək üçün kiçik bloklardan istifadə edirsiniz. Hər bir kiçik blok müəyyən bir işi yerinə yetirən bir funksiya kimidir. Bütün bloklar bir yerə qoyulduqda, siz tam qalaya sahibsiniz. Eyni şəkildə, fərdi funksiyalar tam bir proqramı təşkil edir.
Xüsusi koddan istifadə edərək funksiyanı təyin edə bilərik. Bir çox proqramlaşdırma dillərində biz kompüterə funksiya etdiyimizi bildirən açar sözdən istifadə edirik. Proqramlaşdırmanı öyrətmək üçün istifadə olunan məşhur dillərdən biri Python-dur. Python-da funksiyanı başlamaq üçün def sözündən istifadə edirik. Budur sadə bir nümunə:
Misal:
def say_hello(): print("Salam, dostum!")
Bu nümunədə funksiya say_hello adlanır. Def sözü kompüterə funksiyanı təyin etdiyimizi bildirir. Funksiya bir işi görür: ekranda dostluq mesajı çap edir.
Bu funksiyanı müəyyən etdikdən sonra onu proqramımızda daha sonra istifadə edə bilərik. Buna funksiyanın çağırılması deyilir. Kompüter hər dəfə çağırılanda funksiya daxilindəki bütün addımları yerinə yetirəcək.
İndi biz üç sadə funksiya nümunəsinə baxacağıq. Onları başa düşmək asandır və əsas fikirləri öyrənməyə kömək edir.
Birinci misalda kimisə adı ilə salamlayan funksiya yaradırıq. Funksiyaya zəng etdikdə o, dostumuza salam deyəcək.
Kod:
def salam (ad): print("Salam, " + ad + "!") # "Alice" adı ilə funksiyanın çağırılması salam ("Alice")
Addım-addım izahat:
İkinci misalda iki ədəd əlavə edən funksiya yazırıq. Bu ədədləri birləşdirən mini kalkulyatora bənzəyir.
Kod:
def əlavə_rəqəmləri (num1, 2 ədəd): nəticə = ədəd1 + ədəd2 print("Cəmi:", nəticə) # 3 və 5 nömrələri ilə funksiyanın çağırılması əlavə_rəqəmlər(3, 5)
Addım-addım izahat:
Üçüncü misalda biz ədədi 2-yə vuran funksiya yaradacağıq. Bu funksiya funksiyanın sonradan istifadə üçün dəyəri necə qaytara biləcəyini göstərir.
Kod:
def ikiyə_çoğaldır(x): yeni_dəyər = x * 2 yeni_dəyəri qaytarın # Funksiyaya zəng etmək və nəticəni saxlamaq nəticə = ikiyə_çoxal(4) print("4-ə 2 vuruldu", nəticə)
Addım-addım izahat:
Funksiyalar parametrlər vasitəsilə xaricdən məlumatları qəbul edə bilir. Parametr funksiya çağırıldıqda məlumatları saxlayan dəyişəndir. Nümunələrimizdə name , num1 , num2 və x parametrləridir.
Bəzi funksiyalar dəyərləri qaytarır . Qaytarılan dəyər funksiyanın işini yerinə yetirdikdən sonra geri verdiyi nəticədir. Misal 3-də multiply_by_two funksiyası dəyişəndə saxlanılan dəyəri qaytarır.
Parametrlərdən və qaytarılan dəyərlərdən istifadə ideyası funksiyaları çevik və güclü edir. Reseptdəki inqrediyentlərin dəyişdirilməsi fərqli dadlara səbəb ola biləcəyi kimi, müxtəlif nəticələr əldə etmək üçün daxiletməni dəyişə bilərsiniz.
Funksiyalar modul proqramlaşdırmada əsas ideyadır. Modul proqramlaşdırma böyük proqramı daha kiçik, idarə oluna bilən hissələrə və ya modullara bölmək deməkdir. Hər bir funksiya bir sadə tapşırığı yerinə yetirən modul kimidir. Bütün modullar birlikdə işlədikdə tam bir proqram meydana gətirirlər.
Bir tapmaca qurmağı düşünün. Hər bir parça kiçik və sadədir. Ancaq bütün parçaları bir yerə yığdığınız zaman tam bir şəkil görürsünüz. Proqramlaşdırmada funksiyalardan istifadə bir anda bir kiçik parça üzərində işləməyə imkan verir. Beləliklə, proqramları qurmaq, başa düşmək və düzəltmək daha asandır.
Modul proqramlaşdırma təkrarı azaltmağa kömək edir. Əgər proqramınızın bir hissəsi eyni işi təkrar-təkrar yerinə yetirməlidirsə, onun üçün bir funksiya yazırsınız. Sonra hər dəfə bu işə ehtiyacınız olduqda, eyni kodu yazmaq əvəzinə sadəcə funksiyanı çağırırsınız.
Bu yanaşma ayaqqabı bağını necə bağlamağı bilən köməkçinin olması kimidir, ona görə də hər dəfə yeni bir cüt ayaqqabı alanda bunu necə edəcəyinizi yenidən öyrənmək məcburiyyətində deyilsiniz.
Gəlin funksiyaları gündəlik fəaliyyətlərlə müqayisə edək. Təsəvvür edin ki, evdə çoxlu işlər var. İşlərinizdən biri bitkiləri sulamaqdır. Hər dəfə bütün addımları düşünmək əvəzinə, "Bitkiləri sulayın" deyə xatırlaya bilərsiniz. Bitkilər üzərində hər dəfə işlədiyiniz zaman öz funksiyanızdan istifadə edirsiniz.
Başqa bir nümunə sendviç hazırlamaqdır. Əvvəlcə iki dilim çörək götürün. Sonra kərə yağı, pendir və bəlkə də bir dilim vetçina əlavə edirsiniz. Nəhayət, iki dilimi bir yerə qoyursunuz. Hər bir addım funksiyanın sətirləri kimi aydın və sadədir. Addımları hər dəfə izləməklə, hər bir addımı sıfırdan düşünmədən dadlı sendviç yaradırsınız.
Bu gündəlik nümunələr göstərir ki, funksiyalar bir çox işi aydın, sadə hissələrə bölməklə bizə kömək edir.
Funksiyaları öyrənməyə başlayanda hər bir funksiyanın adı , mötərizə daxilində parametrlər siyahısı və daxilində kod blokunun olduğunu görəcəksiniz. Sadə formatda belə görünə bilər:
Ümumi struktur:
def funksiya_adı(parametr1, parametr2, ...): # kod bloku lazım gələrsə # bəzi_dəyəri qaytarın
Burada funksiya_adı funksiyanın adıdır. Parametrlər funksiyanın istifadə etdiyi girişlərdir. Kod bloku funksiyanın yerinə yetirəcəyi təlimatlar toplusudur. Nəhayət, qaytarma nəticəni geri verir.
Bəzən heç bir parametri olmayan funksiyaları görə bilərsiniz. Funksiyaya əlavə məlumat lazım olmadıqda, siz hələ də mötərizələri yazırsınız, lakin onlar boş qalır. Eynilə, bir çox funksiya mesajların çapı kimi hərəkətləri yerinə yetirir və heç bir dəyər qaytarmır.
Yadda saxlamalı olduğunuz funksiyaların bəzi vacib xüsusiyyətləri bunlardır:
Bu xassələrə əməl etməklə proqramçılar başa düşülməsi, sazlanması və zamanla təkmilləşdirilməsi daha asan olan proqramlar yarada bilərlər. Oyuncaqlarınızı qutulara ayıraraq otağınızı səliqəli saxlamaq kimi, funksiyalar da proqramları səliqəli və mütəşəkkil saxlayır.
Funksiyalar ideyası ilə daha rahatlaşdıqca, bir neçə variasiya ilə qarşılaşa bilərsiniz. Bəzən funksiyalar heç nə qaytarmır; yalnız hərəkətləri yerinə yetirirlər. Digər vaxtlarda funksiyalar digər funksiyaları çağıra bilər. Bu, yuva funksiyaları və ya funksiya tərkibi kimi tanınır.
Məsələn, funksiya başqa tapşırığı yerinə yetirməyə başlamazdan əvvəl salamlama funksiyasını çağıra bilər. Funksiyaların bu təbəqələşməsi bir çox kiçik, sadə tapşırıqlardan mürəkkəb proqramlar qurmağa imkan verir.
Sonrakı mərhələdə siz rekursiv funksiyalar kimi mövzuları araşdıra bilərsiniz. Rekursiv funksiya özünü çağıran funksiyadır. Bu fikir bir qədər çətin səslənsə də, problemləri daha kiçik hissələrə ayırmağın başqa bir yoludur. Hələlik funksiyaların ağıllı və səliqəli kod yazmağa kömək etdiyini bilmək kifayətdir.
Gəlin funksiyaların addım-addım necə işlədiyini göstərən daha iki ətraflı nümunəyə baxaq.
Misal 4: Cüt ədədləri yoxlamaq funksiyası
def_cüt(rəqəm): # Nömrənin cüt olub olmadığını yoxlayın ədəd % 2 == 0 olarsa: doğru qaytar başqa: False qaytarın # 6 rəqəmini yoxlamaq üçün funksiyadan istifadə edin nəticə = cüt_dir(6) çap ("6 cütdürmü?", nəticə)
Addım-addım izahat:
Nümunə 5: Kvadratın sahəsini hesablamaq üçün funksiya
def kvadratın_sahəsi (yan_uzunluq): # Düsturdan istifadə edərək sahəni hesablayın: sahə = yan_uzunluq * yan_uzunluğu sahə = yan_uzunluq * yan_uzunluğu qayıtma sahəsi # Yan uzunluğu 5 olan kvadratın sahəsini hesablamaq üçün funksiyadan istifadə edin kvadrat_sahə = kvadratın_sahəsi(5) print("Kvadratın sahəsi", kvadrat_sahə)
Addım-addım izahat:
Nümunə 6: İki ədədin böyükünü təyin etmək üçün funksiya
def daha böyük_sayı(a, b): # İki ədədi müqayisə edin və böyük olanı qaytarın əgər a > b: qayıt a başqa: qayıt b # 7 ilə 10 arasında daha böyük rəqəmi tapmaq üçün funksiyadan istifadə edin ən böyük = daha böyük_sayı(7, 10) print("Daha böyük rəqəmdir", ən böyük)
Addım-addım izahat:
Funksiyalar proqramları modul şəkildə qurmağa kömək edən güclü bir vasitədir. Funksiyalardan istifadə edərək, proqramınızın müstəqil işləyən ayrı-ayrı hissələrini yarada bilərsiniz. Bu o deməkdir ki, proqramınızın bir hissəsində səhv varsa və ya təkmilləşdirməyə ehtiyac varsa, böyük bir kod kütləsinə baxmaq əvəzinə, yalnız bir funksiyanı düzəltməlisiniz.
Modul proqramlaşdırma LEGO blokları ilə tikintiyə bənzəyir. Hər bir blok müstəqildir və müxtəlif strukturlar yaratmaq üçün müxtəlif yollarla birləşdirilə bilər. Bir blok qırılsa, bütün qalanı yenidən qurmadan onu əvəz edə bilərsiniz. Funksiyalarla proqramınızın hər bir kiçik bölməsi öz-özünə qurula, sınaqdan keçirilə və düzəldilə bilər.
Bu proqramlaşdırma üsulu problemləri daha yaxşı başa düşməyə kömək edir və mürəkkəb tapşırıqları asanlaşdırır. O, həmçinin problemlər haqqında məntiqli düşünməyi və onları addım-addım həll etməyi öyrədir.
Nəticə olaraq, funksiyalar proqramlaşdırmanın vacib hissəsidir. Onlar bizə təmiz, aydın və asan başa düşülən kod yazmağa imkan verir. Funksiyalardan istifadə etməklə biz böyük problemləri kiçik, idarə oluna bilən tapşırıqlara bölmək yolu ilə həll edə bilərik. Dostu salamlamaq, hesablama aparmaq və ya rəqəmin cüt olub olmadığını yoxlamaqdan asılı olmayaraq, funksiyalar proqramlarımızı sadə və əyləncəli etməyə kömək edir.
Həmişə yadda saxlayın: hər bir böyük işi kiçik addımlardan istifadə etməklə asanlaşdırmaq olar və bu kiçik addımlar proqramınızdakı funksiyalardır.
Proqramlaşdırma ilə öyrənməyə, kəşf etməyə və əylənməyə davam edin. Funksiyalar yaradıcı və faydalı kod yazmaqda ilk addımdır!