Page 67 - Программирование. Python. Для школьников. bizdin.kg
P. 67

МАССИВДЕРДИ ИШТЕТҮҮ АЛГОРИТМДЕРИ                                          67



            Массивдин элементтерин жылдыруу

            Массивдин элементтерин коюуда же өчүрүүдө алардын бардыгын же
            бөлүгүн тиги же бул жакка жылдыруу керек болот. Массивди көп учур-
            да 1-элементи сол жагында жайгашкандай, таблица түрүндө көрсөтүшөт.
            Ошондуктан солго жылдыруу – бул a[1] a[0]дүн ордуна, a[2] a[1]дин орду-
            на ж.у.с. бардык элементтерди бир уячага жылдыруу болуп саналат.
                      0        1                                       n - 2     n - 1
                     7        12        5                     34        40       23


                      0        1                                       n - 2     n - 1
                     12        5                     34       40        23       23

            Акыркы элемент өзүнүн ордунда эле калат, б.a. кайталанат, анткени ал
            жаңы маанини эч кайдан ала албайт, массивдин элементтери түгөндү.
            Алгоритмин жазалы:

            a = [16, 29, -5, -11, 23, 14, -7, 23, 18]       Көңүл бурсаңар мында мас-
            n = len(a)                                      сивдин чегинен чыгып кетпе-
            for i in range (n-1):                           ши, б.а. жок элемент a=[n] ге
                a[i] = a[i+1]                               кайрылбашы үчүн цикл
            print(a)                                        a=[n-1] де аяктап жатат.
            >>>
            [29, -5, -11, 23, 14, -7, 23, 18, 18]
            Биз көрүп тургандай, биринчи элемент жок болуп кетти, ал эми акыр-
            кы элемент эки жолу кайталанды. Негизи биринчи элементтин мурунку
            маанисин акыркынын ордуна жазып койсо деле болот. Мындай жылдыруу
            циклдик деп аталат. Ал үчүн алдын ала (цикл башталганга чейин) биринчи
            элементти с кошумча өзгөрмөсүнө сактап коюу керек, ал эми цикл аякта-
            гандан кийин аны массивдин акыркы уячасына жазып салуу керек:

            a = [16, 29, -5, -11, 23, 14, -7, 23, 18]
            n = len(a)
            c = a[0]
            for i in range(n-1):
                a[i] = a[i+1]
            a[n-1] = c
            print(a)
            >>>
            [29, -5, -11, 23, 14, -7, 23, 18, 16]





                                                                       www.trk.kg
   62   63   64   65   66   67   68   69   70   71   72