Алгоритмдер және оның қасиеттері

Автор: Пользователь скрыл имя, 26 Февраля 2013 в 18:26, лекция

Описание работы

Егер сіз берілген есепті шешу үшін қандай да бір программалау тілінде программа жазғыңыз келсе, онда алдымен есепті шешудің алгоритмін құруыңыз керек. Алгоритм – математикадағы ең бір іргелі ұғымдардың бірі. Алгоритм сөзі ІХ ғасырда өмір сүрген, адамдардың квадрат теңдеулерді жүйелей құрып оны шеше білуге үйреткен ұлы математик Әл- Хорезмидің атының латынша жазылуы algorithmi сөзінен алынған. Осылайша алгоритм ұғымы математикада ертеден қолданыла бастағанымен, математикалық теорианың объектісі ретінде кейбір проблемаларды зерттеуге байланысты ХХ ғасырдың 30-шы жылдарында зерттеле бастады.

Работа содержит 1 файл

Алгоритм және оның қасиеттері2.doc

— 702.50 Кб (Скачать)

    

 

 

DIM операторы

 

    Егер  индексті өрнек ретінде формула  пайдаланатын болса, онда оның  мәні есептеліп болғаннан соң  бүтін санға дөңгелектенеді. Егер  программада массив пайдаланылатын  болса, онда олар алдын ала  сипатталған болуы тиіс. Бұл компьютерге массивтің құрылымы және өлшемі туралы информация берілуі керек деген сөз. Осы информацияны қабылдау арқылы компьютер өзінің жадында массив элементтерін орналастыру үшін қажетті орын қалдырады. Массивтерді сипаттау үшін DIM (dimension-өлшемділік) операторы қолданылады.

    Оператордың  жазылу пішімі:

    k DIM m1(m1-ң шек.), m2(m2-ң шек.),…, mN(mN-шек)

мұнда k-қатар нөмірі; DIM-оператордың аты; m1, m2,…, mN-массивтің аттары; m1-шек., m2-шек., mN-шек.,…, mN-шек. - m1, m2,…, mN-ге сәйкес массивтің шекаралары. Мұнда массивтің тек жоғарғы шекаралары көрсетілген, өйткені төменгі шекаралары 1-ге тең деп қабылданады.

    Егер  массив бір өлшемді болса, “m  шек.” сол массивтің элементтер  санын бүтін сан ретінде көрсететін  болады.

    Мысалы, мына оператор 10 DIM С(5), D(1,2) С массивінің С(0), С(1), С(2), С(3), С(4) элементтерден тұратын бір өлшемді массив екендігін және D массивінің

          D(0,0)         D(0,1)          D(0,2)

          D(1,0)         D(1,1)          D(1,2)

элементтерден  тұратын, екі қатары және үш бағаны бар екі өлшемді массив екендігін білдіреді.

    DIM операторы массивке сілтеме жасамастан бұрын программаның басында орналасқаны жөн.

    Индекстің ең кіші мәні нөл, ең үлкен мәні DIM операторында хабарланған мәннен асып кетпеуі керек. Егер индекстің мәні бұл шекарадан асып кетсе, онда программаны орындауда қателік кеткендігі жөнінде хабар экранға шығады. Бір өлшемді массивті цикл ішінде FOR және NEXT операторларын қолданып өңдеген ыңғайлы.

    Бұл жағдайда цикл параметрі циклдің саны, санау қызметін атқарады және массив элементтерінің индексін белгілеуде қолданылады.

    DIM операторында массивтің атынан соң дөңгелек жақша ішінде массив өлшемінің көрсеткіші ретінде мәндері алдын ала анықталған, ендірілген немесе есептелген тұраќты (бүтін типі), әйтпесе айнымалының аты (арифметикалық өрнек) пайдаланылуы мүмкін. Мысалы,

    10 INPUT K,L,M

    20 DIM D(K), E(L), F(L+M)

                                             .

                                               .

                                               .

    Бұл жағдайда D массивіне жадтың К+1 ұясы, Е массивіне (L+M)+1 ұясы бөлінеді.

    Программада пайдаланылатын массивтер DIM операторында тек бір рет хабарланады.

    Массивті қайталап хабарлаған жағдайда “redimensione arry” (“Массивті екінші рет хабарлау”) хабары экранға шығады. Мысалы, программаның мына төмендегі үзіндісінде:

    10 DIM А(10), В(10), С(20)

    20 DIM В(30), D(20)

                           .

                           .

                           .

    В  массиві екі рет хабарланған.

    Бірақ  массивті ERASE операторын пайдаланып қайтадан хабарлауға да болады. ERASE операторында жойылуға тиісті массивтің аты көрсетіледі. Мысалы, 15 ERASE В операторы В массивін қайта хабарлайды.

                            

                                             

 

 

   

                             Массивтің жеке элементтерімен орындалатын операциялар. Массивтерді ендіру – шығару

   

    BASIC тілінде массивтерді өңдейтін арнайы операциялар жоқ, сондықтан массивті оның элементтері бойынша өңдейді. Қарапайым айнымалылармен қандай амалдар орындауға болатын болса, массивтің элементтерімен де дәл сондай амалдар орындауға болады. Бұл жағдайда меншіктеу немесе шартты өту операторларында массив элементтерін пайдаланғанда массив атынан соң жақша ішінде мәні анықталуға тиісті индекстің тұрғандығына барлық уақытта ерекше назар аударуға тиіспіз.

         Мысалы, мәндері 

    

А(1)

А(2)

А(3)

А(4)

А(5)

-8

3.2

4

15

18


 

Бес элементтен тұратын массив үшін А(2)=3.2 екінші элементті 8.3 санына ауыстыру операцияясы мынадай болып жазылады:

            •

            •

            •

  30 А(2)=8.3

  Мына программа үзіндісінің

            •

            •

            •

   80 J=1

   90 I=3

100 A (4)=27

110 A (I)=94

120 A(2*I-1)=A(J)+A(I)

орындалуы 100 – оператор орындалғанан соң массивтің А(4) төртінші элементі бұрынғы 15 санының орына 27 санының ендірілуіне алып келеді.

  110 – оператор бойынша массивтің А(І), (І=3) үшінші элементіне 94 саны меншіктеледі, ал 120 – оператордың орындалуы нәтижесінде А (2*3-1)=А(5) элементіне массив элементтерінің қосындысы А(1)+А(3)=-8+94=86 мәні меншіктелетін болады.

   Осылайша, келтірілген программа үзіндісінің орыдалуы нәтижесінде жоғарыда келтірілген А массивінің түрі мынадай болып өзгереді.

  

А(1)

А(2)

А(3)

А(4)

А(5)

-8

3.2

94

27

86


   Көптеген жағдайларда массивтерді  өңдеуде массив элементтеріне  ретімен қатынас жасау талап  етіледі. 

    Сонымен, массивті хабарлағаннан  және оның элементтеріне жадтан орын бөлгеннен соң, келешекте компьютер оны өңдеу үшін жадтың бөлінген аймағына оның элементтерінің сандық мәндерін ендіру және орналастыру талап етіледі.

    Массивтің өлшемі шағын  болатын ең қарапайым жағдайда  мұны INPUT, READ және DATA операторларының көмегімен массив элементтеріне аты және индекстерінің сандық мәндері бойынша қатынас жасай отырып, массивтің әрбір элементін ендіру арқылы жүзеге асыруға болады.

Массивтерді ендіру мысалдарын қарастырайық.

  1. А массив берілсін. Оны мына төмендегідей жолмен ендіруге болады.

          10 DIM A(5)

          20 INPUT A(1), A(2), A(3), A(4), A(5)

                •

                •

                •

         100 END

   А массивіне жадтан қажетті орынды сақтап қоюшы 10 – оператор орындалғанан соң, 20 – оператордың жүзеге асырылуы монитор экранына «?» таңбасын шығарады. Компьютер А массивінің элементтерінің сан мәндерін, ол 20 – операторда индексті айнымалылар қандай реттілікпен берілсе, дәл сондай реттілікпен ендіруді күтіп тұрады. Компьютердің пернетақтасынан А массиві элементтерін мына түрде енгізу керек:

В – 7,6.3,5,17,9 <ЕП> Осымен массивті ендіру аяқталады.

   А массивіне жадтан орын бөлінгенен соң оның элементтерін ендіру компьютерді пайдаланушылардан сұрамай – ақ жүзеге асырылады. Мысалы, мына программа:

   10 DIM A(5)

   20 READ A(1), A(2), A(3), A(4), A(5)

   30 DATA -7,6.3,5,17,9

       •

       •

       • 

  100 END

орындалғанда READ операторының тізімінде бірінші тұрған А(1) айнымалыға DATA  операторындағы бірінші мән – 7 меншіктеледі, А(2) айнымалысына 6.3 мәні, А3 айнымалысына 5 мәні т.с.с. меншіктеледі.

    Массив элементтеріне қатынас жасаудың екң ыңғайлы құралы, массив элементінің индексі ретінде циклді басқарушы айнымалыны пайдалану болып табылады.

Мұндай тәсіл массивтермен жұмыс істеуді оңай тәртіпке келтірілетіндіктен массивтерді өңдеудегі негізгі тәсілдердің бірі болып табылады. Бұл жағдайда FOR – NEXT операторларындағы цикл айнымалысы индекстің алғашқы және соңғы мәндерінің аралығында бір бірлікке артады, ал массивтің кезектегі элементі автоматты түрде алынады.

Мұны А массивін ендіру мысалы арқылы бейнелеп көрсетуге болады.

    А массивін ендірудің блок – схемасын келтірейік.


 




                               --------- [ массивті хабарлау 



                               --------- [ индекстің алғашқы мәнін беру



                                -------- [ элементті ендіру 

          



                               --------- [ индексті өзгерту



    ия                       ---------- [ тексеру: барлық элементтер ендірілген бе?


                       жоқ


 

А массивін диалогтық режімде ендіруді мына программа арқылы орындауға  болады.

10 DIM A(5)

20 FOR І=1 TO 5

30 INPUT A(I)

40 NEXT I

     •

     •

     •

100 END

20 – оператормен ендіру циклі  басталады. Онда І айнымалысы 1 – ге тең мәнді меншіктейді. Бұдан әрі INPUT операторы бойынша А(1) айнымалысының мәнін сұрайтын экранда «?» таңбасы пайда болды. Оған бірінші санды ендіру арқылы жауап береміз:

Бұдан соң NEXT операторы І – ді бір бірлікке арттырады, яғни І=2 болады, бұл мән басқарушы және басқару қайтадан 30 – операторға беріледі. Монитор экранында қайтадан «?» таңбасы пайда болады. Пернетақтадан екінші санды ендіреміз:

    ? 6.3 < ЕП >

Осылайша компьютер жадына А  массивінің қалған үш элементі ендіріледі:

 

    ? 5 < ЕП >

    ? 7 < ЕП >

    ? 9 < ЕП >

 

   Массивті ендіруді жүзеге  асыратын мына төмендегі програма:

   10 DIM A(5)

   20 FOR І=1 TO 5

   30 READ A(І)

   40 NEXT I

   50 DATA -7,6.3,5,17,9

       •

       •

       •

 

    1 ден 5 – ке өзгеретін І – дің әр түрлі мәндері үшін А(І) айнымалысына мәндер DATA операторындағы сандардан алынып ретімен меншіктеледі.

    Өлшемдері әр түрлі бірнеше массивтерді ендіруде бірдей өлшемді массивтерді бір циклмен ендіру есебінен циклдер санын азайтуға болады.

    Айтайық, А массивінен басқа В={2.3, 3.4, 8.3} және С={0.7, -3.1, 5.7} массивтерін ендіру қажет болсын.

Программа мына төмендегідей түрде берілуі мүмкін:

10 INPUT «В және А массивтерінің өлшемдерін енгізіңдер»; K,L

20 DIM B(K), C(K), A(L)

30 FOR І=1 TO K

40 INPUT B(I), C(I)

50 NEXT I

60 FOR J=1 TO L

70 INPUT A(J)

80 NEXT J

    •

    •

    •

150 END

Программаны орындау В және А массивтерінің өлшемдерінің мәндерін сұраудан басталады.

В және А массивтерінің өлшемдерін енгізіңдер.

 

    ? 3,5 < ЕП > 

 

Барлық массивтерге жадтан орын бөлінгенен соң В және С массивтерін ендіру циклі жұмысын бастайды. Пайда болған сұрақ «?» таңбасына В және С массивтерінен алынған жұп сандармен жауап беру керек:

? 2.3, -7 < ЕП >

? 3.4, -3.1 < ЕП >

? 8.7, 5.7 < ЕП >

 

Келесі бес «?» таңбасына А массивінің бес санын ендіріп жауап береміз.

? -7 < ЕП >

? 6.3 < ЕП >

? 5 < ЕП >

? 17 < ЕП >

? 9 < ЕП >

 

READ, DATA ендіру операторларын пайдалану  алдыңғы программа үзіндісін  былайша өзгертуге алып келеді:

          •

          •

          •

40 READ B(L), C(L)

           •

           •

           •

70 READ A (J)

           •

           •

           •

90 DATA 2.7, .7, 3.4, -3.1, 8.7, 5.7, -7, 6.3

100 DATA 5, 17, 9

           •

           •

           •

    Массивтердің элементтерін баспаға шығарған кезде элементтері бойынша барлық уақытта массивтің атын және индекстердің мәндерін циклде көрсету арқылы жүзеге асырылады. Мұнда массив өзін қалыптастырған циклде, сондай – ақ оны баспаға шығару үшін арнайы ұйымдастырылған жеке циклде баспаға шығарылыуы мүмкін.

    Мысалы, а массивінің мәндерін монитор экранына шығару үшін мына циклді пайдалануға болады:

Информация о работе Алгоритмдер және оның қасиеттері