Xoş gəldiniz, gənc öyrənənlər! Bu gün biz kompüter proqramlaşdırmasında idarəetmə strukturları ilə tanış olacağıq. Nəzarət strukturları kompüter proqramı üçün yol nişanları kimidir. Hansı yolla getməli və bundan sonra nə etməli olduqlarını deyirlər. Evdə və ya məktəbdə qaydalara əməl etdiyiniz kimi, kompüter də proqramı işlədərkən idarəetmə strukturlarına əməl edir.
Nəzarət strukturu, kompüterə proqramı yerinə yetirərkən müxtəlif addımlar arasında seçim etməyi izah edən təlimatlar toplusudur. O, kompüterin eyni ardıcıllıqla davam etməsinə və ya fərqli bir şey etmək qərarına qərar verir.
Təsəvvür edin ki, bir reseptə əməl edirsiniz. Resept sizə hər bir addımı izah edir: əvvəlcə unu və suyu qarışdırın; sonra bir yumurta əlavə edin; sonra, qarışdırın; və sonda qarışığı bişirin. Kompüterdə idarəetmə strukturları oxşar şəkildə işləyir. Onlar kompüterə hansı təlimatın növbəti dəfə gəldiyini və seçimlər olduqda hansı qərarı qəbul edəcəyini bilməyə kömək edir.
Bu gün öyrənəcəyiniz üç əsas nəzarət strukturu növü var. Onlar:
Ardıcıl idarəetmə strukturları kompüterə müəyyən bir ardıcıllıqla bir-birinin ardınca təlimatları yerinə yetirməyi əmr edir. Ardıcıl nəzarətdə qərar qəbulu yoxdur. Sadə bir sıra təlimatlara əməl etdiyiniz kimi, hər addım ardıcıl olaraq baş verir.
Məsələn, gündəlik səhər rejiminizi düşünün:
Hər bir fəaliyyət aydın ardıcıllıqla bir-birinin ardınca baş verir. Proqramlaşdırmada buna ardıcıl icra deyilir. Kompüter birinci təlimatı oxuyur, sonra ikinci, sonra üçüncü.
Bir sendviç hazırlamaq üçün sadə psevdo-proqram haqqında düşünsək, bu belə görünə bilər:
Addım 1: İki dilim çörək götürün.
Addım 2: Kərə yağı bir dilim üzərinə yayın.
Addım 3: Kərə yağının üstünə pendir qoyun.
Addım 4: İki dilimi bir yerə qoyun. Sendviçdən həzz alın!
Hazırladığınız sendviç kimi kompüter də təlimatları bir-bir yerinə yetirir.
Seçimə nəzarət strukturları kompüterə seçim etmək imkanı verir. Onlar yolda çəngəl kimi və ya “öz macəranı seç” kitabı kimi işləyirlər. Kompüter şərtə və ya qaydaya baxır və sonra hansı yolu izləyəcəyinə qərar verir.
Məsələn, səhər nə geyinəcəyini seçmək barədə düşünün. Siz qərar verə bilərsiniz: "Yağış yağsa, palto, günəşli olsa, köynək geyəcəm." Bu, havaya hazır olmağa kömək edən bir qərardır. Proqramlaşdırmada kompüter qərar qəbul etmək üçün if , else if və else ifadələrindən istifadə edir.
Sadə dildə kod kimi sadə bir nümunə belə görünür:
Yağış yağırsa , "Çətir götür" yazısını çap edin .
Əks halda , "Çətir lazım deyil" yazın.
Bu o deməkdir ki: əgər şərt (yağış) doğrudursa, hərəkəti yerinə yetirin (çətir götür). Əks halda, digər hərəkəti edin.
Başqa bir misaldan istifadə edək. Təsəvvür edin ki, siz oyun oynayırsınız və belə bir qayda var ki, “10 xal toplasanız, qalibsiniz!”. Bu qayda seçimə nəzarət strukturuna bənzəyir. Oyun xallarınızın 10-a bərabər olub olmadığını yoxlayır. Əgər belədirsə, o, sizi qalib elan edir. Yoxdursa, oynamağa davam edir.
Seçim strukturları kompüterlərə yalnız bir neçə mümkün cavabı olan qərarları qəbul etməyə kömək edir. Onlar kompüterə deyirlər ki, “doğrudursa, bunu edin, deyilsə, başqa bir şey edin”.
İterasiya idarəetmə strukturları kompüterə təkrar-təkrar bir şey etməyi əmr edir. Bu, döngə və ya təkrar hərəkətlər kimi tanınır. Tapşırığı dəfələrlə təkrarlamaq lazım olduqda, təkrarlama istifadə olunur.
Səbətdəki almaların sayını nə vaxt saydığınızı düşünün. Siz saya bilərsiniz: 1, 2, 3, 4, 5 və s. Bir nömrədən başlayırsan və sonuna çatana qədər saymağa davam edirsən. Bu, kompüterin döngələrdən necə istifadə etdiyinə bənzəyir.
Proqramlaşdırmada iki ümumi döngə növü var:
Bir şeyi neçə dəfə təkrarlamaq istədiyinizi bildiyiniz zaman for döngəsi istifadə olunur. Məsələn, bir mahnının eyni sətrini 5 dəfə oxumaq istəyirsinizsə, for loopundan istifadə edə bilərsiniz:
(1-dən 5-ə qədər sayın ) sətri oxuyun: "Ad günün mübarək!"
Kompüterdə "Ad günün mübarək!" beş dəfə, çünki addımı 5 dəfə təkrarlayır.
Bir şərt doğru olduğu müddətcə kompüter nəyisə təkrarlamağa davam etməli olduqda, while dövrəsindən istifadə olunur. Məsələn, bir şar partladırsınızsa, balon kifayət qədər böyük olana qədər üfürməyə davam edə bilərsiniz. Qayda belə ola bilər: "Balon böyük olmasa da, ona hava üfürməyə davam edin."
Bu deməyə bənzəyir: (şar kiçik olsa da ), üfürməyə davam edin. Balon kifayət qədər böyük olduqda, döngəni dayandırın.
Döngə ideyasından istifadə edən başqa bir sadə nümunə: Təsəvvür edin ki, əllərinizi çırpmağı sevirsiniz. 10 dəfə əl çalana qədər əllərinizi çırpmağa qərar verirsiniz. Deyə bilərsiniz: "Alqış"ı 10 dəfə təkrarlayın . Proqramda kompüter hər əl çalmağı hesablayacaq və 10 əl çalmağa çatdıqda dayanacaq.
Nəzarət strukturları proqramlaşdırmada çox vacibdir. Onlar proqramın düzgün işləməsi üçün tapşırıqları təşkil etməyə kömək edirlər. Onlar olmadan kompüter qərar qəbul etməyi və ya hərəkətləri təkrarlamağı bilməyəcəkdi.
Nəzarət strukturlarının əsas olmasının bəzi səbəbləri bunlardır:
Proqramlaşdırmada idarəetmə strukturlarını əks etdirən gündəlik həyatdan bəzi nümunələrə baxaq.
Ardıcıl nəzarət nümunəsi:
Təsəvvür edin ki, məktəbə hazırlaşırsınız. Əvvəlcə oyanırsan. Sonra üzünü yuyarsan. Sonra paltarınızı geyinirsiniz. Nəhayət, səhər yeməyi yeyirsən. Bu, bir-birinin ardınca yerinə yetirdiyiniz hərəkətlər ardıcıllığıdır. Kompüter proqramlaşdırmasında hər bir göstəriş şərtsiz yerinə yetirildikdə ardıcıl idarəetmədən istifadə olunur.
Seçimə nəzarət nümunəsi:
Paltar seçərkən verdiyiniz qərarı nəzərə alın. Hava soyuqdursa, isti sviter geyinirsiniz. Hava istidirsə, köynək geyinirsən. Bu qərar vermə prosesi kompüterin "if" ifadəsindən necə istifadə etdiyinə bənzəyir. Kompüter havanı (vəziyyəti) yoxlayır və sonra düzgün geyim seçimini (hərəkət) seçir.
İterasiyaya nəzarət nümunəsi:
Təsəvvür edin ki, oyuncaqlarınızı yerə qoymaq kimi bir iş görür. Əlinizdə çoxlu oyuncaqlar ola bilər. Hər bir oyuncaq haqqında bir-bir düşünmək əvəzinə, siz sadəcə olaraq eyni hərəkəti təkrarlayın: oyuncağı götürün, oyuncaq qutusuna qoyun və hamısı götürülənə qədər növbəti oyuncağa keçin. Bu, proqramlaşdırmada bir döngə kimi təkrarlanan bir hərəkətdir.
Bəzən nəzarət strukturları bir-birinin içərisinə yerləşdirilə bilər. Buna iç içə nəzarət strukturu deyilir. Bir qərar və ya döngə digərinin içində olduqda baş verir. Bir neçə addımda seçim etdiyiniz oyunu təsəvvür edin. Məsələn, əvvəlcə sola və ya sağa getməyə qərar verə bilərsiniz. Əgər solu seçsəniz, başqa seçimlə üzləşə bilərsiniz: "Təpəyə qalxırsınız, yoxsa onun ətrafında gəzirsiniz?" Hər bir seçim kiçik bir qərardır və onlar bir-birinin ardınca yerləşdirilir.
Kodlaşdırmada yuvalama kompüterə daha mürəkkəb tapşırıqların öhdəsindən gəlməyə imkan verir. Hətta sadə bir oyun və ya proqramda bir neçə səviyyəli qərarlar və döngələr ola bilər. Bu təbəqələr birlikdə işlədikdə, proqram daha ağıllı qərarlar qəbul edə və daha maraqlı şeylər edə bilər.
Məsələn, piknik planlaşdırmağınıza kömək edən bir proqram təsəvvür edin. Əvvəlcə soruşa bilər ki, "Hava gözəldir?" Cavab bəli olarsa, proqram o zaman soruşacaq: "Yeməyiniz kifayətdirmi?" Yenə "bəli" cavabını versəniz, "Əla! Piknikə getmək vaxtıdır!" Hər hansı bir cavab yoxsa, başqa bir plan təklif edəcək. Bu daxili qərar qəbulu kompüterə seçimlərinizi daha yaxşı başa düşməyə kömək edir.
Kompüter proqramı işləyərkən müəyyən bir ardıcıllıqla verdiyiniz göstərişlərə əməl edir. Gəlin kompüter ekranında salamı göstərən sadə bir proqramı düşünək. Proqram aşağıdakıları edə bilər:
Addım 1: Proqramı işə salın.
Addım 2: Günün vaxtını yoxlayın.
Addım 3: Əgər vaxt səhərdirsə, "Sabahınız xeyir!"
Addım 4: Əgər vaxt günortadırsa, "Axşamınız xeyir!"
Addım 5: Əgər vaxt axşamdırsa, "Axşamınız xeyir!"
Addım 6: Proqramı bitirin.
Bu proqramda aydın bir ardıcıllıq var. Ekranda nə göstəriləcəyi ilə bağlı qərar da var. Kompüter bu qərarı vermək üçün seçimə nəzarət strukturundan ( if-else ifadələri) istifadə edir.
Sonra, sikkələr toplamalı olduğunuz sadə bir kompüter oyunu oynadığınızı təsəvvür edin. Proqram hər dəfə bir sikkə topladığınız zaman yoxlamaq üçün döngədən istifadə edə bilər. Siz onları yığdığınız zaman sikkələrinizi sayacaq. Bütün pulları topladığınız zaman oyun başa çatır. Burada dövrə sayma prosesini təkrarlayan iterasiyaya nəzarət strukturudur.
Nəzarət strukturları yalnız məktəb məşqlərində və ya kiçik proqramlarda istifadə edilmir. Onlar hər gün gördüyümüz bir çox real proqramlarda istifadə olunur. Budur bəzi maraqlı nümunələr:
Bu nümunələr nəzarət strukturlarının hər yerdə olduğunu göstərir! Onlar müasir cihazların və proqramların mümkün qədər rəvan işləməsinə kömək edir, həyatımızı asanlaşdırır və daha əyləncəli edir.
Sadə bir psevdokod nümunəsi yazaq. Pseudocode, kod kimi görünən sadə sözlərdən istifadə edərək proqramları planlaşdırmağın bir yoludur.
Nümunə: Qəlyanaltılar üçün Sadə Qərar Qəbuledici
Təsəvvür edin ki, qəlyanaltı olaraq alma və ya banan yeməyə qərar vermək istəyirsiniz. Qaydaları belə yaza bilərsiniz:
Əgər acsınızsa və şirin bir şey istəyirsinizsə, o zaman alma seçin.
Əks halda, acsınızsa və yumşaq bir şey istəyirsinizsə, banan seçin.
Əks halda otur və nə istədiyini düşün.
Bu psevdokod kompüterə deyir: Şirin bir şey istəsəniz əvvəlcə yoxlayın. Əgər bu doğrudursa, bir alma seçin. Əgər yoxsa, banan kimi başqa bir şey yoxlayın. Seçimlərdən heç biri uyğun gəlmirsə, qərar vermək üçün bir az vaxt ayırın.
Nəzarət strukturları haqqında bir xəritə kimi düşünməyə kömək edə bilər. Sadə bir xəzinə xəritəsini təsvir edin. Xəritədə ardıcıllıqla yazılmış addımlarla işarələnmiş bir yol var. Yolda bir çəngə gəldiyiniz zaman, xəritə xəzinədən gələn bir ipucu əsasında sizə hansı yolu gedəcəyinizi bildirir. Bəzən xəritə sizə xəzinəyə çatana qədər bir neçə dəfə eyni yolu getməyinizi söyləyir. Bütün bu təlimatlar sizə düzgün yolu tapmağa kömək edir.
Eynilə, kompüter xəritəni izləmək üçün ardıcıl addımlardan, çəngəllərdə düzgün yolu seçmək üçün seçimdən və məqsədə çatana qədər tapşırıqları təkrarlamaq üçün iterasiyadan istifadə edir. İdarəetmə strukturlarından istifadə etməklə biz kompüterə öz “xəzinəsinə” – düzgün nəticəyə necə çatacağını dəqiq deyə bilərik.
Bu gün öyrəndiyimiz vacib fikirləri nəzərdən keçirək: