İç-içə dövrlər

   Dövri alqoritmlərdə bir çox hallarda iç-içə dövrlərdən istifadə olunur. Dövrün içində dövr məntiqini anlamaq üçün iki misalı nəzərdən keçirəcəyik.

Vurma cədvəli

Aşağıdakı proqram vurma cədvəlini ekrana çıxarır:

print("Vurma Cədvəli\n")
for i in range(1, 11):
    for j in range(1,11):
        print(i,'*',j,'=',i*j)
    print()

   Proqram kodundan da gördüyünüz kimi burada iç-içə iki sayğaclı dövr operatorundan istifadə edilir. Əvvəlcə xarici dövr (i parametrli) öz işinə başlayaraq ilk səfər icra olunur. Bu zaman bu dövrün gövdəsində yer alan daxili dövr (j paremetrli) 10 dəfə icra olunaraq öz işini yekunlaşdırır. Daha sonra boş sətir buraxmaq üçün print() funksiyası işə düşür və bununla da xarici dövr özünün növbəti addımına keçir. Proses bu minval ilə davam edir və xarici dövrün 10-cu icrasından sonra yekunlaşır.

Bir rəqəmliyə qədər cəm

   Gəlin belə bir maraqlı proqram tərtib edək. Verilmiş natural ədədin rəqəmlərini cəmləyək, alınan cəmin rəqəmlərini də cəmləyək, və bu prosesi tək rəqəmli ədəd alınana qədər davam etdirək. Məsələ aydın olsun deyə aşağıdakı nümunəyə nəzər yetirin:

534981479385 → 5 + 3 + 4 + 9 + 8 + 1 + 4 + 7 + 9 + 3 + 8 + 5 = 66
66 → 6 + 6 = 12
12 → 1 + 2 = 3

   Məsələnin həlli üçün aşağıdakı proqramı tərtib edə bilərik:

n = int(input())
s = 0

while n>9:
    while n>0:
        s = s + n % 10
        n = n // 10
    n = s
    s = 0

print(n)

   Proqramı incələsəniz görəcəksiniz ki, biz burada iç-içə iki şərtli dövr operatorundan istifadə etmişik. Daxili dövrdə ədəd (n) rəqəmlərinə ayrılır və cəmlənir (s). Daha sonra cəm yenidən ədədə mənimsədilir və sıfırlanır. Xarici dövrdə isə şərt kimi alınan ədədin 9-dan böyük olması götürülür. Beləliklə dövri əməliyyat yekun ədəd bir rəqəmli alınanadək davam etdirilir.

  Əslində Python proqramlaşdırma dilinin hazır funksiyalarından istifadə etməklə verilmiş məsələni aşağıdakı alqoritmlə daha qısa yoldan da həll etmək olar:

n = int(input())
while n>9:
    n = sum(map(int, str(n)))
print(n)

   Təbii ki, bu halda iç-içə dövrlərin istifadəsinə ehtiyac qalmır və bir dövrlə kifayətlənmək mümkün olur.