Məzmuna keç
Educora
Orta6–7-ci sinif22 dəq24 / 59

Budaqlanan alqoritmlər

Tam və natamam budaqlanma, iç-içə və mürəkkəb şərtlər (və, və ya, deyil), onların blok-sxemi və psevdokodu; bir neçə rombu olan DİM blok-sxemlərinin icrası və nəticəyə görə ilkin qiymətin tapılması.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • Tam və natamam budaqlanmanı fərqləndirmək, onları blok-sxem və psevdokodla yazmaq
  • İç-içə və «və», «və ya», «deyil» ilə qurulmuş mürəkkəb şərtləri yoxlamaq
  • Bir neçə rombu olan DİM blok-sxemini verilmiş qiymətlər üçün icra etmək
  • Nəticəyə görə ilkin qiymətləri tapmaq və budaq şərtlərini yoxlamaq

Metronun turniketi hər dəfə eyni sualı verir: kartda kifayət qədər pul varmı? Varsa, keçid açılır və gediş haqqı çıxılır; yoxdursa, ekranda «Balans kifayət deyil» yazılır. Turniketin alqoritmi xətti deyil: şərtin cavabından asılı olaraq iki fərqli yoldan biri seçilir. Belə alqoritmlər budaqlanan alqoritmlər adlanır. DİM-in alqoritm tapşırıqlarında bir neçə rombu olan blok-sxemlər tez-tez verilir, 2025–2026-cı illərin hər imtahanında Python tapşırıqlarından ikisi-üçü isə birbaşa «Şərt operatoru» mövzusunda olub — hər ikisinin açarı bu dərsdədir.

Tam və natamam budaqlanma

Tərif
Budaqlanan alqoritm

Şərtin doğru və ya yalan olmasından asılı olaraq əmrlərin iki fərqli ardıcıllığından birinin yerinə yetirildiyi alqoritm. Blok-sxemdə budaqlanmanı romb yaradır: onun «Hə» və «Yox» çıxışları iki budaqdır, budaqlar sonra yenidən birləşir.

  • Tam budaqlanma — hər iki budaqda əməl var: «əgər şərt doğrudursa, A-nı et, əks halda B-ni et».
  • Natamam budaqlanma — əməl yalnız bir budaqdadır: «əgər şərt doğrudursa, A-nı et»; şərt yalan olanda alqoritm heç nə etmədən davam edir.
Tam budaqlanmaNatamam budaqlanmaa > bHəYoxm = am = bx < 0HəYoxx = −x
Solda iki ədədin böyüyü, sağda ədədin modulu
Text
əgər a > b onda
    m = a
əks halda
    m = b
son

əgər x < 0 onda
    x = −x
son
Eyni iki budaqlanma psevdokodla. Python-da: if a > b: … else: … və if x < 0: …
Nümunə 1. Tam və natamam budaqlanmanın icrası

Yuxarıdakı blok-sxemlər üzrə tapın:
1) m — a, b cütləri üçün: (7; 3), (−2; 5), (4; 4).
2) x-in son qiyməti — x = −6 və x = 9 üçün.
3) «n % 2 = 0» şərti ilə «cüt» və ya «tək» çap edən tam budaqlanma — n = 14, 7, 0, −3 üçün.

Həllini göstər
1) 7 > 3 — Hə → m = 7. −2 > 5 — Yox → m = 5. 4 > 4 — Yox (4 4-dən böyük deyil) → m = b = 4; bərabər ədədlərdə də cavab düzdür.
2) −6 < 0 — Hə → x = −(−6) = 6. 9 < 0 — Yox → heç nə dəyişmir, x = 9. Bu alqoritm ədədin modulunu tapır.
3) 14 % 2 = 0 → cüt; 7 % 2 = 1 → tək; 0 % 2 = 0 → cüt (0 cüt ədəddir!); −3 % 2 = 1 (Python-da 2-yə bölmənin qalığı həmişə 0 və ya 1 olur) → tək.

İç-içə şərtlər

Budaqlardan birinin içində yeni romb ola bilər — bu, iç-içə budaqlanmadır. Onunla iki deyil, üç, dörd və daha çox hal ayırd edilir. Məsələn, üç ədədin ən böyüyünü tapmaq üçün əvvəl a ilə b müqayisə edilir, sonra qalibi c ilə müqayisə etmək lazımdır. Eyni işi iki ardıcıl natamam budaqlanma ilə daha sadə etmək olar: m = a; əgər b > m, onda m = b; əgər c > m, onda m = c. Bu «namizəd» üsulu yazılı tapşırıqlarda da çox işə yarayır.

Nümunə 2. Üç ədədin ən böyüyü

«Namizəd» alqoritmini (m = a; b > m olarsa m = b; c > m olarsa m = c) üç giriş üçün icra edin: (3; 9; 5), (8; 2; 8), (−1; −4; −7).

Həllini göstər
(3; 9; 5): m = 3 → 9 > 3 Hə, m = 9 → 5 > 9 Yox → 9.
(8; 2; 8): m = 8 → 2 > 8 Yox → 8 > 8 Yox → 8 (bərabərlik problem yaratmır).
(−1; −4; −7): m = −1 → −4 > −1 Yox → −7 > −1 Yox → −1. Mənfi ədədlərdə də işləyir, çünki başlanğıc namizəd «0» yox, a-dır.
D = b² − 4·a·c
burada:
  • Ddiskriminant: D > 0 — iki kök, D = 0 — bir kök, D < 0 — həqiqi kök yoxdur
  • a, b, ca·x² + b·x + c = 0 tənliyinin əmsalları (a ≠ 0)

Üç halı iki romb ayırır: əvvəl D > 0, sonra D = 0

Başlanğıca, b, cD = b² − 4·a·cD > 0x₁ = (−b + √D)/(2a)x₂ = (−b − √D)/(2a)x₁, x₂HəD = 0Yoxx = −b/(2a)xHə«Həqiqi kök yoxdur»YoxSon
İç-içə budaqlanma: kvadrat tənliyin kökləri
Nümunə 3. Kvadrat tənliyin blok-sxeminin icrası

Blok-sxemi üç giriş üçün icra edin: 1) a = 1, b = −5, c = 6; 2) a = 1, b = 4, c = 4; 3) a = 2, b = 1, c = 3.

Həllini göstər
1) D = 25 − 24 = 1 > 0 → x₁ = (5 + 1)/2 = 3, x₂ = (5 − 1)/2 = 2.
2) D = 16 − 16 = 0 → D > 0 Yox, D = 0 Hə → x = −4/2 = −2.
3) D = 1 − 24 = −23 → iki dəfə «Yox» → «Həqiqi kök yoxdur».
Hər giriş blok-sxemin başqa yolundan keçdi — üç yolun hamısı yoxlanıldı.

Kvadrat tənliyin blok-sxemində «Yox» budağı növbəti romba aparır — bu, pilləkən quruluşudur: şərtlər növbə ilə yoxlanılır, ilk doğru şərtin budağı icra olunur, qalanlarına isə baxılmır. Python-da belə quruluş if … elif … else ilə yazılır. Pilləkəndə şərtlərin sırası çox vacibdir: əgər əvvəl «bal ≥ 50», sonra «bal ≥ 90» yoxlansa, 95 bal toplayan şagird birinci budağa düşəcək və «əla» qiymətini heç vaxt almayacaq. Qayda: ən dar şərt birinci yoxlanılır.

Mürəkkəb şərtlər: və, və ya, deyil

Bir neçə sadə şərt məntiqi əməllərlə birləşəndə mürəkkəb şərt alınır. «A və B» yalnız hər iki şərt doğru olanda doğrudur; «A və ya B» ən azı biri doğru olanda doğrudur; «deyil A» isə A-nın əksidir. Python-da bunlar and, or, not, verilənlər bazası sorğularında isə AND, OR, NOT kimi yazılır. Əməllərin ardıcıllığı: əvvəl «deyil», sonra «və», sonda «və ya»; şübhə olanda mötərizə qoy.

ABA və BA və ya Bdeyil A
doğrudoğrudoğrudoğruyalan
doğruyalanyalandoğruyalan
yalandoğruyalandoğrudoğru
yalanyalanyalanyalandoğru
Məntiqi əməllərin doğruluq cədvəli
(il % 4 = 0 və il % 100 ≠ 0) və ya il % 400 = 0
burada:
  • %bölmənin qalığı; «il % 4 = 0» — il 4-ə bölünür
  • ≠bərabər deyil

Qriqorian təqvimində uzun il (kəbisə ili, 366 gün) qaydası — mürəkkəb şərtin klassik nümunəsi

Nümunə 4. Uzun il

Şərti 2024, 2026, 1900 və 2000-ci illər üçün yoxlayın.

Həllini göstər
2024: 4-ə bölünür (doğru) və 100-ə bölünmür (doğru) → mötərizə doğru → uzun il.
2026: 4-ə bölünmür → mötərizə yalan; 400-ə də bölünmür → adi il.
1900: 4-ə bölünür, amma 100-ə də bölünür → mötərizə yalan; 1900 % 400 = 300 → adi il.
2000: mötərizə yalan (100-ə bölünür), lakin 2000 % 400 = 0 → «və ya» doğru → uzun il.

DİM tapşırıqları: bir neçə rombu olan blok-sxem

Belə tapşırıqda blok-sxem ağaca bənzəyir, amma giriş qiymətləri üçün onun yalnız bir yolu keçilir. Hər rombda şərti cari qiymətlərlə hesabla, cavabı («Hə» və ya «Yox») yaz və yalnız həmin oxla get — digər budaqlara baxma. Ən çox səhv ciddi və qeyri-ciddi bərabərsizliklərdə olur: 60 > 60 yalandır, 60 ≥ 60 isə doğrudur.

Başlanğıca = 24b = 40a + b > 60a·2 = ba > bHəYoxa = b / 5a = a − ba = b − a / 4a = a·2YoxHəYoxHəaSon
Bir neçə rombu olan DİM tipli blok-sxem
Nümunə 5. Alqoritmin icrasından sonra a neçə olar?

1) Blok-sxemə görə çıxışa verilən a-nı tapın.
A) 16 B) 48 C) 34 D) 8 E) 30
2) Başlanğıc qiymətlər a = 20, b = 40 olarsa, cavab nə olar?

Həllini göstər
1) 24 + 40 = 64 > 60 — Hə, sağ budaq.
24·2 = 48 = 40? — Yox → a = 40 − 24 / 4 = 40 − 6 = 34. Cavab C. Diqqət: bu yolda a > b rombu ümumiyyətlə yoxlanmır.
2) 20 + 40 = 60 > 60? — Yox (ciddi bərabərsizlik!), sol budaq.
20 > 40? — Yox → a = 40 / 5 = 8. «60 ≥ 60» kimi oxuyan şagird sağ budağa gedib 20·2 = 40 → a = 40 alar və səhv edər.
Python
a = 24
b = 40
if a + b > 60:
    if a * 2 == b:
        a = a * 2
    else:
        a = b - a / 4
else:
    if a > b:
        a = a - b
    else:
        a = b / 5
print(a)
▸ Gözlənilən nəticə
34.0
Eyni blok-sxem Python-da. Rombdakı = Python-da == yazılır. / bölməsinin nəticəsi həmişə onluq kəsrdir, ona görə 34.0 çap olunur. İmtahan proqramlarında qiymətlər a = int(input()) ilə oxunur.

Tərs məsələ: nəticəyə görə ilkin qiymət

DİM bəzən alqoritmi əks istiqamətdə soruşur: nəticə məlumdur, a-nın ilkin qiyməti isə «?» ilə verilib. Xətti alqoritmdə ilkin qiyməti x ilə işarə edib hər addımı x-lə ifadə edirik və tənlik alırıq. Budaqlanan alqoritmdə isə hər budaq üçün ayrıca tənlik həll olunur, sonra tapılan kökün həqiqətən həmin budağa düşdüyü yoxlanılır.

  1. 1
    İşarələ

    Naməlum ilkin qiyməti x ilə işarələ.

  2. 2
    İfadə et

    Hər əmrdən sonra dəyişənləri x-lə ifadə et (izləmə cədvəli ədədlərlə deyil, ifadələrlə).

  3. 3
    Bərabərləşdir

    Nəticənin ifadəsini verilmiş qiymətə bərabərləşdir və tənliyi həll et.

  4. 4
    Yoxla

    Hər kökü alqoritmdə yerinə qoy: budaq şərtləri və qadağalar (sıfıra bölmə, natural ədəd) ödənirmi?

  5. 5
    Soruşulana cavab ver

    Sual köklərin cəmi, hasili və ya ən böyüyü ola bilər — sualı bir də oxu.

Nümunə 6. Xətti alqoritmdə ilkin qiymətlərin cəmi

Alqoritm: a = ?; b = a + 4; a = a · b; a = a − 2 · b. İcradan sonra a = 7 olub. a-nın ala biləcəyi ilkin qiymətlərin cəmini tapın.
A) 8 B) −2 C) 2 D) −15 E) 3

Həllini göstər
a = x → b = x + 4 → a = x(x + 4) = x² + 4x → a = x² + 4x − 2(x + 4) = x² + 2x − 8.
x² + 2x − 8 = 7 → x² + 2x − 15 = 0 → x = 3 və ya x = −5.
Yoxlama: x = 3: b = 7, a = 21, a = 21 − 14 = 7 ✓; x = −5: b = −1, a = 5, a = 5 + 2 = 7 ✓.
Cəm: 3 + (−5) = −2, cavab B.
Nümunə 7. Budaqlanan alqoritmdə tərs məsələ

Alqoritm: a = ?; əgər a > 10, onda b = a − 10, əks halda b = a + 4; b çıxışa verilir.
1) Çıxışda 12 alınıb. a-nın ilkin qiymətlərinin cəmini tapın.
2) Çıxışda 20 alınıb. a nəyə bərabər ola bilər?

Həllini göstər
1) «Hə» budağı: a − 10 = 12 → a = 22; 22 > 10 ✓.
«Yox» budağı: a + 4 = 12 → a = 8; 8 > 10 yalandır, yəni a həqiqətən «Yox» budağına düşür ✓.
Cəm: 22 + 8 = 30.
2) «Hə»: a = 30, 30 > 10 ✓. «Yox»: a = 16, amma 16 > 10 doğrudur — belə a «Hə» budağına gedər və 6 verər ✗.
Cavab: yalnız a = 30. Yoxlama addımı olmasa, səhv olaraq 16 da yazılardı.

Budaqlanma alqoritmə «seçim» imkanı verir. Növbəti addım — eyni əmrlərin təkrarlanmasıdır; bu, «Dövri alqoritmlər və izləmə cədvəli» dərsinin mövzusudur. Dövrün şərti də elə bu dərsdəki romb ilə yoxlanılır, ona görə rombları səlis oxumaq orada da lazım olacaq.

Tapşırıq

il = 2100. Uzun il qaydasını mürəkkəb şərtlə yazın: il uzundursa 366, əks halda 365 çap edin.

Tapşırıq · Python
year = 2100
# print 366 for a leap year, otherwise 365
▸ Gözlənilən nəticə
365

Əsas fikirlər

  • Budaqlanan alqoritmdə şərtin cavabından asılı olaraq iki yoldan biri seçilir; blok-sxemdə bunu romb edir.
  • Tam budaqlanmada hər iki budaqda, natamam budaqlanmada yalnız bir budaqda əməl var.
  • «A və B» — hər ikisi doğru olanda, «A və ya B» — ən azı biri doğru olanda doğrudur; «deyil (a > b)» ⇔ a ≤ b.
  • DİM blok-sxemində bir giriş üçün yalnız bir yol keçilir: hər rombu cari qiymətlərlə yoxla, ciddi bərabərsizliyə diqqət et.
  • Tərs məsələdə ilkin qiyməti x ilə işarələ, tənlik qur, hər kökü budaq şərtinə görə yoxla; köklərin cəmini Viyet teoremi ilə tap.

Özünü yoxla

12 sual. Hər düzgün cavab XP qazandırır.

1 / 12
Şərt ödənmədikdə heç bir əməlin yerinə yetirilmədiyi budaqlanma necə adlanır?