Файл қосу

Алгоритмді жазу әдістері



|ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ                     |
|СЕМЕЙ ҚАЛАСЫНЫҢ ШӘКӘРІМ АТЫНДАҒЫ МЕМЛЕКЕТТІК УНИВЕРСИТЕТІ               |
|3 деңгейдегі СМК      |                         |                       |
|құжаты                |ПОӘК                     |                       |
|                      |                         |                       |
|                      |                         |ПОӘК                   |
|                      |                         |042-39.1.11/03-2013    |
|                      |                         |                       |
|                      |                         |                       |
|                      |                         |                       |
|«Алгоритм және оның   |02.09.2013ж              |                       |
|күрделілігі»  пәні    |№1 басылым               |                       |
|бойынша               |                         |                       |
|оқу-әдістемелік       |                         |                       |
|материалдар           |                         |                       |
















                      «Алгоритм және оның күрделілігі»


                        ПӘНІН ОҚЫТУ-ӘДІСТЕМЕЛІК КЕШЕН


                6М060200- «Информатика» мамандығына арналған


                         ОҚУ-ӘДІСТЕМЕЛІК МАТЕРИАЛДАР
































                                    Семей
                                    2013.



                                   МАЗМҰНЫ

|       |Глоссарий                               |                  |
|       |Дәрістер                                |                  |
|       |Машықтану сабақтары                     |                  |
|       |Студенттердің өздік жұмыстарының жоспары|                  |





                                1. Глоссарий
|1.1  Алгоритм - белгілі бір мәселені шешу үшін қойылатын мақсатқа бағытталған   |
|іс-әрекеттердің тізбегі.                                                        |
|1.2  Шама- есепті шығару барысында қолданылатын белгілеулер                     |
|1.3  Тұрмыстық  алгоритм - cөз түріндегі әрекеттер тізбегін күнделікті өмірде   |
|ешбір роботтың, техниканың көмегінсіз адам өздігінен орындаса ондай алгоритмдер |
|1.4 Есептеу алгоритмдері - формула көмегімен шығарылатын, есептеуді қажет       |
|ететін, күрделілігіне байланысты белгілі бір техниканың араласуын талап ететін  |
|алгоритмдер                                                                     |
|1.5 Рекурсивті алгоритм -  есептеу алгоритмінің бір түрі. Оның нәтижесі         |
|формуланың ішіндегі бір параметрінің мәні басқа бір өзгеріп отыратын параметрден|
|тәуелді болудан шығады.                                                         |
|1.6 Қосалқы алгоритм - күрделі алгоритмдердің бірнеше жай алгоритмге бөлінуі    |
|арқылы негізгі алгоритмге қажетті уақытында ғана шақырылатын, жалпылама жағдайға|
|негізделіп дербес құрылатын алгоритмдер.                                        |
|1.7 Сызықты алгоритмдер - операциялардың реті алгоритмнің өз структурасымен     |
|анықталған және енгізетін шамалардың жеке мәндеріне тәуелсіз алгоритмдер.       |
|1.8 Тармақты алгоритм - енгізетін шамалардың жеке мәндеріне тәуелді, бірнеше    |
|әрекеттердің біреуінің орындалуын тағайындау.                                   |
|1.9 Циклдік алгоритм - енгізетін шамалардың жеке мәндеріне тәуелді бір немесе   |
|бірнеше әрекеттердің қайталануын тағайындау.                                    |
|1.10 Енетін шамалар немесе аргументтер - алгоритм үшін бастапқы берілгендер     |
|немесе алғашқы информация болып табылатын шамалар.                              |
|1.11 Шығатын шамалар - алгоритмнің орындалу процесінде алынатын өңделген        |
|информацияларды сақтауға арналған шамаларды                                     |
|1.12 Аралық шамалар- енетін шамаларға да, шығатын шамаларға дажатпайтын         |
|алгоритмді орындау процесінде аралық мәндерді сақтауға арналған шамаларда       |

                                 2. Дәрістер
1-тақырып: «Алгоритм  ұғымы.  Анықтамасы.  Қасиеттері.  Түрлері.  Алгоритмді
жазу әдістері. Алгоритм модельдері»
Дәріс жоспары:
1.  Алгоритмнің  шығу  тегі.  Алгоритмнің   тарихы.   Алгоритмнің   тұрмыста
   қолданылуы. Алгоритмнің қажеттілігі. Алгоритмнің қызметі мен мақсаты.
2.  Алгоритмнің  ЭЕМ-дегі  рөлі.  Информатика  ғылымындағы  алгоритм.   Оның
   мақсаты мен міндеті.
3. Алгоритмдік конструкциялар.
 - тізбектелген конструкция
 - тармақталған конструкция
 - циклдік конструкция
 - рекурсивті конструкция
       Дербес  программаны  құру   үшін   программалау   тілін   білу   ғана
жеткіліксіз. Программаның түпкі негізі алгоритм  ұғымынан  құралады.  Себебі
алгоритм  көмегімен  программист  өзі  құрмақшы  болып  отырған  программаға
сәйкес мақсатқа жетуі үшін орындауы қажет әрекеттердің  тізбегін  құрастыруы
керек. Алгоритмнің негізгі қызметі – берілген ақпаратты өңдеу арқылы  басқа,
жаңа ақпарат құру.
      Сонымен алгоритм дегеніміз белгілі бір мәселені  шешу  үшін  қойылатын
мақсатқа  бағытталған  іс-әрекеттердің  тізбегі.  Олар  тұрмыстық,  есептеу,
рекурсивті, қосалқы деп бөлінеді.
      Сөз түріндегі әрекеттер тізбегін  күнделікті  өмірде  ешбір  роботтың,
техниканың көмегінсіз адам өздігінен орындаса ондай алгоритмдерді  тұрмыстық
алгоритм дейді. Мысалы: дүкенге барып азық-түлік әкелу,  сабаққа  дайындалу,
т.б.
      Формула көмегімен шығарылатын, есептеуді қажет  ететін,  күрделілігіне
байланысты белгілі  бір  техниканың  араласуын  талап  ететін  алгоритмдерді
есептеу алгоритмдері дейді.
      Рекурсивті алгоритм деп есептеу алгоритмінің бір  түрін  айтады.  Оның
нәтижесі  формуланың  ішіндегі  бір  параметрінің  мәні  басқа  бір  өзгеріп
отыратын параметрден тәуелді болудан шығады.
      Қосалқы  алгоритм  дегеніміз  күрделі   алгоритмдердің   бірнеше   жай
алгоритмге  бөлінуі  арқылы  негізгі  алгоритмге  қажетті   уақытында   ғана
шақырылатын, жалпылама жағдайға негізделіп дербес құрылатын алгоритмдер.
      Қай алгоритм болса да негізгі қасиеттерді қанағаттандыруы шарт:
   1. Дискреттілік қасиет – орындалатын әрекеттер тізбегі бірнеше қадамдарға
      бөлініп үздікті құрылымды  болуы  керек.  Және  қадамдардың  орындарын
      ауыстыруға болмайды.
   2. Түсініктілік қасиеті  –  орындаушыға  түсінікті  және  орындай  алатын
      нұсқаулар жиынынан командалардан тұруы  қажет.  Орындаушыдан  біртұтас
      әрекет жасауды талап ету керек. Алгоритм орындаушыға бағытталуы керек.
   3. Анықтылық қасиеті – детерминделген деп те аталады, бір алгоритмді  кез
      келген орындаушы орындай алатын болуы керек. Қай орындаушы орындаса да
      алынатын  нәтиже   біреу   болуы   керек.   Орындаушы   дербес   шешім
      қабылдамайтындай  болып  құрылуы  керек,  яғни  анық,   егжей-тегжейлі
      ойластырылған, толық, жалғыз нәтижелі болуы керек. Бір - екі  минуттай
      деген сияқты нұсқаулар болмау керек.
   4. Ортақтық қасиеті – бір алгоритм барынша үлкен  класқа  жататын  есепті
      шешетіндей болуы керек, тек бастапқы берілгендерді өзгерту арқылы ғана
      шешімді табуға болатындай. Мысалы  квадрат  теңдеуді  шешу  алгоритмін
      ах2+bx+c=0 жағдайына құрған дұрыс болады, ал 4x2+5x-1=0  түріне  құрса
      онда алгоритм дербес болады, неғұрлым жалпы болуы керек.
   5.  Нәтижелілік  қасиеті  –  алгоритмнің  пункттері   немесе   нұсқаулары
      шектелген, оның шегі есептің нәтижесін беретіндей болуы керек. Алынған
      нәтиженің дұрыстығын анализдеу керек.
      Есептеулердің  құрылымына  қарай  алгоритмдер  сызықты,  тармақталған,
циклдік деп үшке бөлінді.
      Операциялардың реті  алгоритмнің  өз  структурасымен  анықталған  және
енгізетін  шамалардың  жеке   мәндеріне   тәуелсіз   алгоритмдерді   сызықты
алгоритмдер  дейді.  Олардың  нұсқаулары  бірінен  кейін  бірі   тізбектеліп
орындалады.
      Енгізетін шамалардың  жеке  мәндеріне  тәуелді,  бірнеше  әрекеттердің
біреуінің орындалуын тағайындауды тармақты алгоритм дейді.
      Енгізетін  шамалардың  жеке  мәндеріне  тәуелді  бір  немесе   бірнеше
әрекеттердің  қайталануын  тағайындауды  циклдік  алгоритм  дейді.   Циклдік
алгоритмдер үш түрге бөлінеді:
         - шарты алдынан берілген – «әзірше» циклі,
         - шарты соңынан берілген цикл – «дейін» циклі,
         - параметрлі цикл.
      Белгілі бір  логикалық  шарт  тексеріліп,  ол  ақиқат  мән  қабылдаған
жағдайда бір немесе бірнеше нұсқаулар тобының қайталануы «әзірше» циклі  деп
аталады.
      Белгілі бір нұсқау орындалып болған соң логикалық шарт тексеріліп,  ол
жалған мән қабылдаса сол нұсқаудың қайталануы «дейін» циклі деп аталады.
      Белгілі бір нұсқаудың немесе нұсқаулар  тобының  неше  рет  қайталануы
керек екені алдын ала анық болса, оны параметрлі цикл дейді.
      Алгоритмнің берілу тәсілдері:
         - формула бойынша
         - таблицалық түрде
         - блок-схема көмегімен
      Алгоритм құру мәселесі алгоритм жазуға қандай тілді пайдаланатынымызға
байланысты болады. Тіл – кейбір мағлұматтарды өрнектеу және жеткізу  құралы.
Осы мағынасына қарай
   1. қатынас тілі
   2. математика тілі
   3. автоматтар тілі  деп бөлінеді.
    Алгоритмді  жазу  үшін   пайдаланылатын   тілдің   сипаты   орындаушының
мүмкіндіктеріне байланысты.
  Орындаушылардың мүмкіндігі тіл құралдарының деңгейін анықтайды.
   1.  Тілдің деңгейі алгоритмдік жазу командаларының тәптіштеліп  нақтылану
      дәрәжесіне тәуелді. Яғни  орындаушы  үшін  элементар  деп  есептелетін
      амалдың шын мәніндегі элементарлық дәрежесі ашып көрсетілуі тиіс.
   2. Тілдің деңгейі тілдің формальдандырылу дәрежесіне  де  байланысты.  Ол
      орындаушының кім болуынан тәуелді. Егер  орындаушы  адам  болса,  оған
      белгілі бір  алгоритмдерді  түсінікті  сөз  ,  сөз  тіркестері  арқылы
      түсіндіруге болады, ал рындаушы автомат болса, онда бірқатар  міндетті
      талаптар қойылады.
   1) командаларды тұжырымдау барысында  машинадан  осы  машина  үшін  қатаң
      анықталған операцияларды орындауды ғана талап ету.
   2) Берілген машинаның тілі үшін  қабылданған  нұсқаулар  құру  ережелерін
      ғана пайдалануға болады.
   3) Ережелерде көрсетілген нәрселерді  ешбір  қолдануға  болмайды,  себебі
      машина ондай нұсқауларды орындамайды.
    Тілді формальдандыру адам тілінің көркемдік мүмкіндіктерін азайтады.
   3. Тілдің деңгейі адам үшін түсініктілік дәрежесіне де  тәуелді.  Алғашқы
      ЭЕТ-  мен  қатынас  цифрлар  тілі   деңгейінде   болды.   ЭЕТ   жаппай
      таралғандықтан адам мен машинаның қатынасуын  қамсыздандыратын  тілдің
      жаңа деңгейлері пайда болды. Қазір  тілді  «табиғиландыру»  проблемасы
      алға қойылып отыр. Бұл  проблема  машинаның  өзін  жетілдірумен  қатар
      жүріп келеді. Ғылыми , инженерлік тілдер  табиғи  тіл  мен  математика
      тілін жымдастырады. Олар: Алгол, Фортран, Бейсик, паскаль, т.б.
      Кәдімгі, табиғи тілге жақын, бірақ нағыз алгоритмдік тілдердің  неізгі
қасиеттері бар тілді оқу алгоритмдік тілі деп атайды. Кейде жай  алгоритмдік
тіл   дейді.  Олар  кәдімгі  текст  түрінде  жазылады,  бірақ   программалау
тілдерін үйретеді.
      Алгоритмдік тіл жай командалардың жазылу ережесін, құрама  команданың,
алгоритм құрамын, мағынасын дәл және бір мәнді анықтау керек.
      Алгоритмтік тіл – алгоритмдерді біркелкі  және  дәл  біркелкі  жазудың
және оларды орындаудың ережелер мен белгілер жүйесі.
       Кәдімгі  табиғи  тілге  жақын,  екінші  жағынан   нағыз   алгоритмдік
тілдердің негізгі қасиеттері бар тілдің анықтамасын берейік. Бұл  тілді  оқу
алгоритмдік тілі деп аталады. Бұл тілде жазылған алгоритмдер  кәдімгі  текст
сияқты оқылады  және  Алгол,  Фортран,  Бейсик  т.б.  программалау  тілдерін
үйренуге негіз болады.
Алгоритмдік тіл – ұғымдары:
1) алфавитті – тілде қолдануға болатын символдардың, белгілердің жиынтығы.
2)  Тіл  конструкциясы  –  айнымалы,  өрнек,   командалардың   жазылу   және
   алгоритмдік  жазудың  жалпы  құрылымының  ережелері.  Оны  синтаксис  деп
   атайды.
3) Семантикасы - әр түрлі командалардың қызметі мен орындалу жолы.
     Алфавитте  символдар,  тілдің  көмекші  сөздері   (басы,  егер,  онда,
әйтпесе, соңы т.б.) бар. Олардың асты сызылуы керек.
   Тілдің негізгі объектілері –  командалар.  Олар  нұсқауларды  жазу  үшін
қолданылады. Олар екі түрлі:
1) Жай командалар
2) Құрама командалар
     Жай командалар  нақтылы  орындалатын  элементар  әрекеттердің  шектеулі
сипаттамасы. Оған меншіктеу, көшу, бос командалар жатады.
     Құрама командаларға тарамқталу, қайталану командалары жатады.
                  Алгоритмдік тілде алгоритмнің сипатталауы
Басы
          Жай команда 1;
          Жай команда 2;
Егер    шарт
Онда  1 – серия
Әйтпесе  2 – серия
Әзір  шарт
Ц.б.
         Құрама команда
Ц.с.
Бітті .   соңы
Алгоритмнің түрлері. Алгоритмді жазу әдістері. Алгоритм модельдері
   Алгоритмдік конструкциялар:
   1. Сызықты
   2. тармақты
   3. қайталану
   4. рекурсивті
             1969  жылы  В.  Дейкстр  өзінің  «деректер   структурасы   және
алгоритмдер»  статьясында  кез  келген  алгоритмді  жазу  үшін   негізгі   3
конструкцияның  –  сызықты,  тармақты,   қайталану   -   жеткілікті   екенін
дәлелдеген. Сызықты алгоритмді тізбекті алгоритм деп те айтады.
             Анықтама.  Р  алгоритмі  тізбекті  алгоритмдік   конструкциямен
қарастырылады, егер Р алгоритмінің әрбір  қадамы  бір  рет  орындалса,  және
әрбір i-ші қадамнан соң (i+1)-ші қадам орындалып,  i-ші  қадам  соңғы  қадам
болмаса.
             Анықтама.  Р  алгоритмі  тармақты  алгоритмдік   конструкциямен
қарастырылады,  егер  алгоритмнің   қай   қадамы   орындалатыны   енгізілген
деректерден тәуелді болса, және белгілі  бір  бастапқы  деректер  таңдалынып
алынған  соң  орындалатын  тармақты   конструкция   тізбекті   конструкцияға
келтіріледі.
             Анықтама.  Р  алгоритмі  қайталану  алгоритмдік  конструкциямен
қарастырылады,  егер  алгоритмнің  қандай  да  бір  қадамдар  тобы  бастапқы
берілгендерге байланысты  бірнеше  рет  қайталануы  керек  болса.Кез  келген
циклдік конструкцияның ішінде тармақты конструкция да, тізбекті  конструкция
да болады.
            Анықтама. R алгоритмі рекурсивті  конструкциямен  қарастырылады,
егер қандай да бір қадамда  ол  тура  немесе  жанама  түрде  қайтадан  өзіне
қатысса, немесе  белгілі  бір  қадамда  оның  алдыңғы  қадамында  орындалған
қадамдардың нәтижесі қайталанып қолданылса.
            Кез келген алгоритмнің дәл немесе дұрыстығы  алгоритм  моделімен
негізделеді. Модель есепті шешуде қолданылатын құралдар жиыны,  яғни  келесі
қадамды анықтау әдісі, қарапайым әрекеттер, қадамдар.
Алгоритмнің моделі екіге бөлінеді:
   1. теориялық
   2. практикалық
   Модель универсалды –  жан–жақты,  максимальды  қарапайым,  есепті  шешуде
минимальды есептеу құралын  қажет ететін болуы керек.
   Практикалық,  қолданбалы  модельде   есептеу   тиімділігі,   программалау
тиімділігі болу керек.
   Теориялық модельдеу үш бағытта жүреді:
     1. бүтін санды аргументтен тәуелді сандық функцияны есептеу алгоритмі,
        олар есептелетін функция деп  аталады.  Есепті  шешетін  рекурсивті
        функция құру мүмкіндігінің бар екенін Черч, Гегель, Клини  ғалымдар
        ашты.
     2. машиналық  математикамен  байланысты.  Пост,  Тьюринг  жұмыстарында
        есепті шешетін алгоритмдік процесстер – қажетті немесе сәйкес түрде
        құрастырылған машина орындайтын процесс деді.
     3. А.А. Марков – математик, қалыпты алгоритм түсінігін енгізді.
      Жалпы алгоритмдердің келесі түрлері болады:
        1. Тұрмыстық
        2. Есептеу
        3. Рекурсивті
        4. Қосалқы
      Күнделікті өмірде белгілі бір мақсатқа жету үшін орындалатын, ешқандай
роботтың  көмегін  талап  етпейтін,  адамдардың  сана  –  сезімінен  тәуелді
әрекеттер жиынын тұрмыстық алгоритмдер дейді.
      Формула көмегімен шығарылатын, есептеуді қажет  ететін,  күрделілігіне
байланысты белгілі  бір  техниканың  араласуын  талап  ететін  алгоритмдерді
есептеу алгоритмдері дейді.
      Рекурсивті алгоритм деп есептеу алгоритмінің бір  түрін  айтады.  Оның
нәтижесі  формуланың  ішіндегі  бір  параметрінің  мәні  басқа  бір  өзгеріп
отыратын параметрден тәуелді болудан шығады.
      Қосалқы  алгоритм  дегеніміз  күрделі   алгоритмдердің   бірнеше   жай
алгоритмге  бөлінуі  арқылы  негізгі  алгоритмге  қажетті   уақытында   ғана
шақырылатын, жалпылама жағдайға негізделіп дербес құрылатын алгоритмдер.
      Алгоритмдер құрылымына қарай үшке бөлінеді:
        1. Сызықты
        2. Тармақталған
        3. Қайталану немесе циклдік
      Операциялардың реті  алгоритмнің  өз  структурасымен  анықталған  және
енгізетін  шамалардың  жеке  мәндеріне  тәуелсіз,  тізбектеліп   орындалатын
алгоритмдерді сызықты алгоритмдер дейді.
      Енгізетін шамалардың  жеке  мәндерінен  тәуелді  бірнеше  әрекеттердің
біреуінің орындалуын тағайындайтын  алгоритмдерді  тармақталған  алгоритмдер
дейді.

                             Циклдік алгоритмдер
            2 түрлі:
    1) «дейін» - шарты алдын – ала берілген
    2) «әзірше» - шарты соңынан берілген
    «дейін» циклында белгілі шарт тексеріліп, егер ол ақиқат болса ғана
цикл денесі қайталанып орындалады. Егер шарт бірден жалған болса, цикл
денесі бір де бір рет орындалмайды.
    Цикл денесі дегеніміз – бірнеше рет қайталанып орындалатын әрекеттер
тобы.
            Блок –схемасы


                                    [pic]






    «кейін» циклында  цикл  денесі  берілген  шарт  ақиқат  болғанға  дейін
қайталанады.Алдынғы алгоритмнен ерекшелігі – цикл  денесі  шартқа  дейін  ең
болмағанда 1 рет орындалады.
     Блок – схемасы
















































                           Өзін тексеру сұрақтары
    1. Алгоритмнің қасиеттері?
    2. Алгоритм түрлері?
    3. Алгоритм қолданыстары?
                            Ұсынылатын әдебиеттер
   1. Е. Бидайбеков, Е. Медеуов, А. Ниязбаев. Информатика бастамалары
      (алгоритмдеу). Алматы, 1990ж.
   2. Вирт Н. Алгоритмы + структуры данных. Программы. – СПб, 2001ж.
   3. Симонович С., Евсеев Г.Практическая информатика: Инфорком- Пресс,
      1998г.
   4. Острейковский В.А. Информатика, Москва, 2000 г.
   5. Петров А.В., Алексеев В.Е., Ваулин А.С., Петрова М.А., Титов М.А.,
      Шкатов П.Н. Вычислительная техника и программирование, Москва, 1990.



2-тақырып:  “Алгоритм   ұғымын   тереңдету,   анықтау.   Тьюринг   машинасын
программалау. Пост алгоритмдік машинасы алгоритм ұғымын дәлелдеуші”
Дәріс жоспары:
1. Алгоритм – математиканың арнайы бөлімі.
2. Джордж Бульдің математикалық логикасы.
3. Логика мен алгоритмнің байланысы.
4. Әртүрлі оқиғаларға алгоритм құру әдістері.
5. Тьюринг машинасына мысалдар.
6. Тьюринг машинасының математикалық сипаттамасы.
7. Алгоритм анықтамасын дәлдеу.
8. Пост машинасы.
9. Пост машинасы мен Тьюринг машинасын салыстыру.

      Алгоритмнің қатаң анықтамасы алгоритмдердің математикалық  теориясында
тікелей  қолданылады.  Онда  алгоритмнің   жалпы   қасиеттері,   алгоритмдік
шешілудің дәлелдемесі қарастырылады.  Ал практикада  алгоритмді  құру  қатаң
анықталмаған.
      Алгоритмді орындаушы – алгоритмнің сипаттамасын дұрыс түсініп,  тарата
алатын субъект немесе әрекеттер тізбегін орындай алатын құрылғы.
      Әрекеттерді  орындауға  арналған  нұсқау  әлдебір  тілдің  араласуымен
әрбір орындаушыға түсіндіріледі. Бұл  тілдің  қызметші  сөздері  ,  әрекетті
түсіндіретін   немесе   бейнелейтін   командалары,    оларды    біріктірудің
синтаксистік  ережесі  болады.  Командалар  тізімі  орындаушының  командалар
жүйесі  (СКИ)  деп  аталады.  Дискретті   ақпаратты   өңдеуде   қолданылатын
элементарлы  әрекеттер  бір  таңбаны  басқамен  алмастыру  болып   табылады.
Кешенді әрекеттерді орындаушы абстрактілі және шын мәніндегі  құрылғы  болуы
мүмкін.
      Процессордың әрекеттерін ақиқат элементарлы деп  –  машиналық  команда
деп, ал олардың белгіленуін – машиналық код деп атайды.  Алғашқы  –  төменгі
деңгейдегі код – ассемблер коды – құрылғыдан тәуелді ішкі тіл деп аталады.
      Элементарлы әрекеттерді күрделі командаларға  біріктіру  бұл  деңгейде
әлі жүрмейді. Ассемблердің жалпы командалар  саны  процессор  командаларының
санымен  тең,  бірақ  машиналық   кодтардың   символды   қалпы   қолданылады
–мнемоника – бұл қолданушыға екілік кодтан тиімді.
      Мнемониканы машиналық кодқа ассемблер тілі орындайды.
       Элементарлы  әрекеттерді  біріктіру  командалары  жоғары   деңгейдегі
программаларда пайда болды. Тіл трансляторы  берілген  команданы  элеменарлы
қадамдарға аударады.
       Одан  гөрі   элементарлы   командаларды   интеграцилауды   қолданьалы
программалар орындайды. ОКЖ –  і  мәзір,  перне,  терезе  т.б.   интерфейсті
басқару командаларынан тұрады.

      Алгоритм абстрактілі машина іспеттес.

      Тьюринг машинасы –  белгілі  бір  есептерді  шығаруға  арналған  қатаң
математикалық құрылым, математикалық аппарат. Бұл аппарат машина  деп  аталу
себебі оның  құрамдас  бөлігінің  және  функцияларының  есептеу  техникасына
ұқсауында. Тьюринг машинасының есептеу  техникасынан  ерекшелігі  оның  еске
сақтау құрылғысы шексіз лентадан тұруында,   ал  есептеу  техникасының  еске
сақтау құрылғысы қаншалықты  үлкен  көлемді  болса  да  шектеулі.  Сондықтан
Тьюринг машинасын лентасы  шексіз  болғандықтан  есептеу  техникасы  түрінде
қолдануға болмайды.
      Тьюринг машинасымен  жұмыс  істеу  үшін  объектілер  туралы  ұғымдарға
тоқталу қажет.
      Анықтама. Әлдебір алфавиттен алынған әріптердің кез келген тізбегі осы
алфавитте сөз деп аталады.
      Анықтама. Сөздегі әріптердің саны сөз ұзындығы деп  аталады.  Әріптері
жоқ сөзді бос сөз дейді. Олар «[pic]» немесе [pic] деп белгіленеді.
      Әлемдегі  барлық  объектілерді  әртүрлі  алфавиттегі  сөздер   түрінде
қарастыруға болады. Сондықтан алгоритмнің  жұмыс  істеу  объектілері  сөздер
болып табылады.
      Анықтама.  Алгоритм  қолданылатын   сөзді   енгізілетін   сөз   дейді.
Алгоритмнің нәтижесі шығарылатын  сөз  деп  аталады.  Алгоритм  қолданылатын
сөздердің жиыны алгоритмнің қолданылу облысы деп аталады.
      Әрбір Тьюринг машинасында 2 бөлік бар:
     1. Ұяшықтарға бөлінген екі жағынан да  шексіз лента
     2. Автомат -  жазу/оқу инесі
      Тьюринг тезисі: Кез келген  алгоритм  үшін  сәйкес  Тьюринг  машинасын
      құруға болады.
      Анықтама. Тьюринг машинасы деп [pic]  жүйесін  айтады.  Мұндағы:  А  –
шекті –жиын, Тьюринг машинасының алфавиті, [pic]- А алфавитінің бос сөзі,  Q
–Тьюринг машинасының жағдайын білдіретін шекті жиынның элементі, q1-  ТМ-ның
бастапқы жағдайы, q0-  МТ-ның  тоқтау  жағдайы,  пассивті  жағдай,  Т-МТ-ның
жылжу жиыны, [pic]- МТ-ның программасы.
      Анықтама.  Алгоритм  (Тьюринг  бойынша)  –   қойылған  есепті   шешуге
келтірілетін Тьюринг машинасына құрылған программа.
      Тьюринг машинасы мен  тезисі  болашақта  да  қолданылады,  себебі  кез
келген проблема шешілмейді деп айтуға  болмайды,  шешілмейтін  есеп  болмауы
керек,  оны  қандай  да   бір   шешілетін   түрге   келтіру   керек,   соған
орайластырылған алгоритм құрастыру керек.
      Машинаның белгілі бір процесті  орындауының  өзі  алгоритмдік  процесс
болып табылады. Сондықтан алгоритмге қойылатын талаптар  мен  қасиеттер  оны
орындайтын машинаға да қойылады:
1) Машинаның жұмысы дискретті, бірінен кейін бірі орындалатын жеке – жеке
   командалармен орындалуы керек.
2) Әрекеттер детерминделген , яғни қадамдар қатаң реттелген , ал олардың
   нәтижесі алдыңғы қадамда алынған нәтижелермен тікелей байланысты болуы
   керек.
3) Жұмыс алдында алғашқы берілгендер алгоритмнің анықталу облысынан алынуы
   керек.
4) Саны санаулы қадамдарды орындаудан соң нәтиже алынуы керек.
5) Машина универсалды , жан – жақты болуы керек, оның көмегімен кез –
   келген алгоритмді орындайтын болуы керек.
  Сипатталған машинаның құрылғылары немесе структурасы қарапайым болса және
  орындалатын қадамдар элементарлы болса, алгоритмнің орындалуы машинаның
  жұмыс істеуі деп есептеуге болады .
   Машинаның орындайтын қадамдары элементарлы болуы үшін белгілі бір алфавит
арқылы ақпаратты алмастыру керек. Сондықтан алгоритм – кез– келген  ақырлы
алфавиттен берілгендерді немесе ақпаратты алмастыру
Ережелерінің ақырлы кез келген жүйесі.
       Алгоритмнің  анықталу  облысынан  алынған  бастапқы   берілгендер   А
аофавиті және ақырлы {[pic]}таңбалар тізбегін құрасын, мұндай  тізбекті  сөз
дейді. Алгоритмді орындау  барысында  жаңа  сөз  құрылады  {[pic]},  олар  В
алфавитін құрайды. Бұл алмастыруды жүргізу үшін келесі қадамдар орындалады:
   1) Бастапқы  [pic]сөзінің  бір   сөзін  В  алфавитінен  [pic]  таңбасымен
      алмастыру.
   2) Бастапқы сөздің таңбасын өшіру.
   3) В алфавитінен бір таңбаны бастапқы сөзге қосу.
   Егер алфавитке «бос таңба» деп  аталатын  таңба  қосылса,  оны  сөзге  оң
   жағынан да сол жағынан да қоссақ та сөз өзгермейді, яғни 1) операция  бос
   таңбаны алмастыру болады. Сонда 2) – 3)  –  операцияларды  орындасақ  та,
   бәрібір 1) – қадамда тағы сол алдыңғы қадам қалады. Сондықтан абстрактылы
   машина әр символды зерттейді, сосын шексіз  лентаға  –  жадыға  сақтайды,
   егер символ бос болмаса оны басқа таңбамен алмастырады  да  жаңа  қалыпта
   тұрады.
   Бұл машина туралы теорияны Алан Тьюринг (1936-1937),  Эмиль  Пост  сияқты
   ғалымдар ұсынған.  Осы  принципке  сәйкестелген  есептеу  машиналары  8-9
   жылдан кейін пайда болған.

Пост алгоритмдік машинасы алгоритм ұғымын дәлелдеуші
       Бұл  машинаның  Тьюрингтен  айырмашылығы  –  ол  өзінің   теориясында
«машина» емес «алгоритмдік жүйе» деген терминді қолданған.
      Оның абстрактылы машинасы бірнеше бірдей  секцияларға  бөлінген,  оқу-
жазу инесі бар шексіз лентадан тұрады.  Әр  секция  бос  немесе  толтырылған
болуы мүмкін. Лентаға түк жазылмаса   секция   бос,  лентаға  жазылып  белгі
түссе секция толық деп есептеледі.
      Лента жағдайы процесс уақытында өзгермелі  болды.  Осы  лента  жағдайы
мен  оқу-жазу  инесінің  орны  туралы  ақпарат  Пост  машинасының   жағдайын
айқындайды.
      Инені «[pic]», метка-белгі М болсын. Секция  бос  болса,  ешбір  белгі
түспейді. Бір қадам жасағанда ине оңға немесе солға 1 қадам  жылжып  белгіні
салады немесе өшіреді. Программадағы командаларға сәйкес машина 1  жағдайдан
келесі жағдайға көшіп отырады.
      Әрбір команданың структурасы ХКУ болсын,
Х – орындалатын команда нөмірі,
К – орындалатын әрекет туралы нұсқау,
У – келесі команда нөмірі.

|№    |команда       |Командалардың   |Машина әрекетінің сипаттамасы      |
|     |              |жазылуы         |                                   |
|1    |Оңға қадам    |Х(У             |Инені оңға қарай 1 секцияға жылжыту|
|2    |Солға қадам   |Х(У             |Инені солға қарай 1 секцияға       |
|     |              |                |жылжыту                            |
|3    |Белгі салу    |Х V У           |Секцияға белгі қойылады            |
|4    |Белгіні өшіру |Х x У           |Секциядан белгі өшіріледі          |
|5    |Басқаруды     |Х        У1     |Секцияда белгі жоқ болса басқару у1|
|     |ауыстыру      |У2              |командасына, әйтпесе у2 командасына|
|     |              |                |беріледі                           |
|6    |тоқтату       |Х стоп !        |Машина жұмысын тоқтатады           |
|7    |Тармақты      |?  a; b         |Ұяшықты қарау, егер ұяшықта 0      |
|     |ұйымдастыру   |                |тұрса, онда а номерлі командаға    |
|     |              |                |көші, әйтпесе b нөмірлі командаға  |
|     |              |                |көшу.                              |

Бұл әрекеттерге қойылатын қосымша шарттар:
    - ХМУ командасы бос секцияда орындалмайды
    - ХсУ командасы толық секцияда орындалады
    - У командасының нөмірі программадағы бар команда нөмірімен сәйкес болуы
      керек.
   Егер  келтірілген  шарттар  сақталмаса,  онда  машина  нәтижесіз  жұмысын
   аяқтайды. Х  стоп  командасы  нәтижелі  орындалады.   Себебі,  ол  өзінің
   алдындағы әрекеттер  орындалып  барып  солардың  нәтижесінде  орындалады.
   Кейде машина тоқтамауы мүмкін,  егер  командалардың  ешқайсысында  тоқтау
   командасына көшу нөмірі болмаса.
      Пост машинасы оң бүтін сандарды жазуды қарастырады, себебі кез  келген
   сөз цифр түрінде кодталады.
      Лентада К бүтін саны К+1 келесі белгіленген секцияларда, унарлы  санау
   жүйесі қолданылып жазылады.
   0,2,3 сандарыныің жазылуы:
|     |М  |   |М  |
|1 кл |25 |20 |10 |
|2 кл |10 |10 |0  |
|3 кл |15 |13 |11 |
|. . .|. .|. .|. .|
|     |.  |.  |.  |
|11 кл|17 |18 |10 |

кл [i, j] =   [pic]





























  алг          қосу (бүт таб  кл [1:11,1:3], бүт S)
               арг  кл
               нәт   S

басы       бүт    i,j
               S:=0
               i:=1
               әзір     i≤11
                 цикл басы
                                   j:=1
                                     әзір   j≤3
                                         цикл басы
                                                      S:=S+ кл [i, j]

                                                       j:=j+1
                                         цикл соңы

                                    i:=i+1
                 цикл соңы
Соңы

4. реттелмеген массивте біртіндеп іздеу алгоритмі
       Деректерге  көп  қолданылатын  операциялардың  бірі  –  іздеу.  Іздеу
мәселесі ЭЕМ-нің дамуының алғашқы жылдарынан бастап басты мәселелердің  бірі
болды. Аз  көлемді  ішкі  жады  мен  тізбекті  –  лента  типті  құрылғыларда
сақталған  деректердің  арасынан  керекті  ақпаратты  іздеу   ішкі   жадының
кеңейтілуін талап етті.
      Іздеу операциясы екі нәтиже береді:
1. сәтті іздеу
2. сәтсіз іздеу.
      Іздеу сәтті болса,  ізделінді  элементтің  орналасқан  жері  табылады,
яғни ол массивтің элементінің номерін береді.
      Іздеудің бірнеше әдістері бар:
   1. белгілі бір элементті іздеу
   2. кез келген элементті іздеу т.б.
   Мысалмен қарастырсақ:
      Екі жиын берілсін: [pic]және [pic]. А  жиыны  В  жиынының  ішкі  жиыны
болатын, болмайтынын анықтау керек болсын.
      Бұл есепті шешу үшін екі әдісті қолдануға болады:
1.  Элементтер  беттескенге  дейін  әрбір    аi   элементтерін   сәйкес   bi
элементтерімен салыстыру
2. А және В жиындарын реттеп алып,  екі  жиынның  элементтерін  бір  бірімен
беттескенше салыстыру
      Іздеудің бірінші нұсқасында n, m-сандары аз болғанда тиімді,  ал  олар
өссе, онда  ә-ші  әдіс  тиімді  болады.  Алгоритмнің  негізгі  мазмұны  оның
күрделілігінде.
      Алгоритмнің күрделілігі итерация ұғымымен байланысты.
Анықтама.  Итерация  дегеніміз  алгоритмді  енгізілетін  деректерге  қолдану
      операциясы. Әрбір келесі итерацияның бастапқы берілгендері болып  оның
      алдындағы итерацияда  анықталған мәндер алынады.
      Егер массив реттелмеген болса, онда біртіндеп іздеу  әдісін  қолдануға
болады:
      A[1..n] массиві берілсін. P-ға тең элементті іздеу керек болсын.
1. i=1; болғанда бастаймыз
2. егер    ai=p  шарты орындалса, онда іздеу сәтті аяқталады
3. әйтпесе I:=i+1 деп келесі элементке көшеміз
4.  егер   i<=n  болса,  онда  2-ші  пунктке  көшеміз,  әйтпесеәздеу  сәтсіз
аяқталады.
      Бұл алгоритмнің күрделілігі  n-1-ге  тең,  себебі  элементтерді  р-мен
салыстыру саны сонша.

5. реттелмеген массивте бинарлы іздеу алгоритмі
             Егер  массив  реттелген  болса,  онда  бинарлы-екілік   іздеуді
қолдануға болады. Оны логарифмдік іздеу немесе дихотомия әдісі дейді.
             Мұнда  екі  көрсеткіш  пайдаланады:   l=1   массивтің   алғашқы
элементін көрсетеді,  u=n  массивтің соңғы элементін көретеді:
1. l=1; u=n; болады
2.   егер  uai болса,  онда  5-ші
пунктке көшеді, егер   k=ai болса, онда іздеу сәтті аяқталады.
4. u=i-1 деп орналастырамыз және  2-ші пунктке көшеміз
5. l=i+1  деп орналастырамыз және 2-ші пунктке көшеміз.
      Бұл алгоритмде күрделілік дәрежесі [pic]-ге тең болады.

Реттеу, сұрыптау алгоритмі
    Деректерге көп қолданылатын амалдардың бірі – сұрыптау.
    Сұрыптау  дегеніміз  –  массив   элементтерін   белгілі   бір   ережені
   сақтайтындай етіп, реттеп орналастыру.
    Сұрыптау ішкі  және  сыртқы  деп  бөлінеді.  Сыртқы  сұрыптауға  сыртқы
жадыдағы  деректерді  сұрыптау  жатады.  Ал  ішкі  сұрыптауға  ішкі   жадыға
деректерді реттеп орналастыру жатады.
      Ішкі сұрыптау бірнеше әдіспен орындалады:
1. Көпіршіту әдісі
       Әдістің  бұлай  аталуы   массивтің   1-ші   және   2-ші   элементтері
салыстырылып, егер 1-ші элемент үлкен болса, олар орындарын  ауыстырады,  ал
үлкен болмаса орнында қалады, сонда ауыр элемент астына түсіп жеңілі  бетіне
шығатын болғандықтан көпіршу сияқты көрінеді.
Мысалы.
      a1, a2, a3, … , an тізбегі берілген.  Элементтерін  өсу  реті  бойынша
      реттеу керек.

алг   реттеу (бүт n, нақ таб a[1:n])
      aрг   n, a
      нәт   a
басы бүт i, нақ Б
      әзір  i≤n-1
      ц. б.
           егер  a[i] ≤a[i+1]
           онда  i:=i+1
           әйтпесе
                 Б:=a[i];
                 a[i]:=a[i+1];
                 a[i+1]:=Б
                 i:=1;
            бітті
      ц. с.
            а – ны шығару.
Соңы.
      Дәл осылай кемуі бойынша да реттеуге болады.

2. Сызықты сұрыптау
      Массивтің ішінен ең үлкен элемент табылады.  Ол  элемент  р-шы  орында
тұрсын. Сол  элементті  n-ші  орындағы  элементпен  салыстырады.  Егер  n<>p
болса, онда n-ші орында  орналасқан  элементпен  орындарын  ауыстырады.  Әрі
қарай  қалған  реттелмеген  элементтердің  ішінен  тағы  ең  үлкен   элемент
табылады да, ол (n-1)-ші элементпен салыстырылады, егер ең үлкен элемент (n-
1)-ші  элементтен  үлкен  болса,  орнында  қалады  да,   болмаса   орындарын
ауыстырады. Осы процесс барлық элементтерге қолданылып шығады.
      Алгоритмі келесідей болады:
Белгілеулер: a[1..n] –берілген массив болсын,   r  –  массивтің  реттелмеген
элементтерінің саны.
1. R=n болсын.
2. Max=max{a[1..r]} табамыз.
3.  Max<>r  және   a[max]<>a[r]  болса,  онда   a{max]   элементі  мен  a[r]
элементі орындарын ауыстырады
4. әйтпесе R=r-1 деп реттелмеген  келесі  элементтерге  көшеміз.  Алғашқы  r
элементтер – реттелмеген элементтерді  құрайды,  ал  соңғы  n-r   элементтер
өсуі бойынша реттеледі.
5. Егер r=1 болса, онда реттеу аяқталады, әйтпесе 2-ші пунктке көшеді.

3. Кірістіру арқылы сұрыптау.
       Алдында  қарастырылған  көпіршіту  және  сызықты  сұрыптау   әдістері
кемімелі қадаммен сұрыптауға жатады. Шынында да, әрбір сұрыптау  итерациясын
орындаған сайын реттелмеген элементтер саны 1-ге кеміп отырады.
      Ал кірістіру арқылы сұрыптау өзгеше принциппен орындалады:
Массивтің алғашқы 2 элементі реттеледі де реттелген s жиынын құрайды.  Сосын
келесі екі элемент реттеледі де сол жағынан үлкен элемент, оң  жағынан  кіші
элемент орналаспайтындай етіп s –реттелген жиынға  кірістіріліп  отырады.  S
жиынға кірістірілетін элементтің орны дихотомия әдісімен анықталады.
      Кірістіру әдісінде келесі бағалаулар дұрыс:
Салыстыру         саны=1+2+[log23]+1+[log24]+1+…+[log2(n-1)]+1=(n-1)+log2(n-
1)!=nlog2n;
Меншіктеу саны: min=0; max=3+4+5+…+n+1=(n+4)(n-1)/2
Күрделілігі:  O(n2)-меншіктеу   саны   бойынша,   O(nlog2n)-салыстыру   саны
бойынша.


                           Өзін тексеру сұрақтары
   1. Реттелмеген массивте біртіндеп іздеу алгоритмі қалай жүреді?
   2. Реттелген массивте бинарлы іздеу алгоритмі қалай жүреді?
   3. Сұрыптаудың қандай әдістері бар?

                            Ұсынылатын әдебиеттер
   1. Е. Бидайбеков, Е. Медеуов, А. Ниязбаев. Информатика бастамалары
      (алгоритмдеу). Алматы, 1990ж.
   2. Вирт Н. Алгоритмы + структуры данных. Программы. – СПб, 2001ж.
   3. Симонович С., Евсеев Г.Практическая информатика: Инфорком- Пресс,
      1998г.
   4. Острейковский В.А. Информатика, Москва, 2000 г.
   5. Петров А.В., Алексеев В.Е., Ваулин А.С., Петрова М.А., Титов М.А.,
      Шкатов П.Н. Вычислительная техника и программирование, Москва, 1990.

6-тақырып: «Алгоритмдер және деректер структурасы»
Дәріс жоспары:
      - негізгі түсініктер
      - ақпаратты сақтау
      - деректер структурасының классификациясы
      - деректер структурасына қолданылатын амалдар
      - программалау технологиясы

             Деректер  структурасы  мен  алгоритмдер  программаның   негізгі
құраушысы болып табылады. Компьютердің өзі сол деректердің  структурасы  мен
алгоритмдерден тұрады. Орнатылған  деректердің  структурасы  екілік  шамалар
сақталған  жады  сөзі  және  регистрлер  түрінде   көрінеді.   Аппаратураның
конструкциясына  бекітілген  алгоритмдер   –   орандауға   жататын,   жадыға
енгізілген деректерден команда – бұйрық  түрінде   ойластырылған  электронды
логикалық  тізбекке  айналдырылған  қатаң  ережелер.  Сондықтан  кез  келген
компьютердің жұмыс негізінде тек қана деректердің бір  түрімен  белгілі  бір
биттермен немесе екілік цифрлармен операцияларды орындауды білу жатады.  Осы
деректермен  компьютер  тек   орталық   процессордың   бұйрықтар   жүйесімен
анықталатын, сәйкес өзгермейтін алгоритмдердің жиынымен жұмыс істейді.
             Программалау   тілдерінде   қабылданған   деректердің   типтері
натуралды, бүтін, нақты сандардан, литерлерден, жолдардан, т.б. тұрады.
            Кейбір программалау тілдерінде деректердің типтері  компиляторда
анықталса, кейбіреуінде типті  анықтап  көрсету  керек  болады.  Программада
деректердің мәндері қанша қажет болса, сонша  өзгеріп,  ал  типі  өзгеріссіз
қалуы керек.
            Деректер структурасының классификациясы.
            Деректердің структурасы жалпы жағдайда  деректер  элементтерінің
жиыны және олардың арасындағы байланыс жиыны деп қарастырылады.
             Деректер  структурасының  классификациясы  бірнеше  белгілеріне
қарай анықталады:
1. Деректердің физикалық структурасы
2. Деректердің логикалық структурасы
             Деректердің  машина  жадысында  қалай  орналасатыны,  физикалық
көрінісі физикалық структурасы деп аталады.
            Ал машина  жадысында  орналастырылуын  есепке  алмаған  жағдайда
деректердің қарастырылуы логикалық структурасы деп аталады.
            Жалпы деректер структурасының типтері екіге бөлінеді:
1. Қарапайым немесе жай типтер
2. интегралданған- ауқымды типтер
            Жай типтерге базалық, примитивті типтер  жатады.  Оларды  биттен
үлкен құрмалас бөліктерге бөлуге болмайды.
            Ауқымды типтерге композитті, күрделі  құрылымды  типтер  жатады.
Олардың құрамдас бөлігі басқа бір структуралар болуы мүмкін.
            Деректер элементтерінің арасында айқын берілген байланыстың  бар
болу, болмауына қарай деректердің структурасы тағы 2-ге бөлінеді:
1. байланысты
2. байланыссыз
              Деректер   структурасының   маңызды   белгілерінің   бірі    -
өзгермелілігі- элементтердің саны және олардың арасындағы  байланыс  өзгеріп
отырады.
             Структуралардың   өзгеруі   элементтердің   мәнінің   өзгеруіне
соқтырмайды. Сондықтан структуралардың өзгермелілігіне қарай үшке бөлінеді:
1. статикалық
2. жартылай статикалық
3. динамикалық
             Деректердің  тағы  бір  маңызды  белгісі  –  реттелгендік.  Бұл
белгісіне қарай:
1. сызықты
2. сызықты емес структуралар болып бөлінеді.
            Программалау тілдерінде  «Деректер  структурасы»  мен  «Деректер
типі»  ұғымдары  тығыз  байланысты.  Кез  келген  деректер  (тұрақты   шама,
айнымалы, функция мәні, өрнек т.б.) өздерінің типімен мінезделеді.
            Әр тип бойынша ақпарат мына ұғымдарды  бірмәнді анықтайды:
      - көрсетілген типтің деректерді  сақтау  структурасын,  яғни  дерекке
        ұяшық бөліп, онда қалай жазылатыны, екілік түрін ойластыруды;
      - сипатталған типті объектінің қабылдайтын мәндер жиынын;
      - сипатталған типті объектіге қолданылатын амалдар жиынын;
            Деректер структурасына қолданылатын амалдар:
1. Құру
2. Жою
3. Таңдау
4. Жаңарту
            Құру операциясы деректер  структурасына  жадыдан  ұяшықтар  бөлу
болып  табылады.
            Жою операциясы құруға қарама  қарсы,  жадыдан  деректерді  өшіру
болып табылады.
            Таңдау операциясын структуралардың өз ішінде  деректерге  рұқсат
алу үшін  программист  қолданады.  Рұқсат  алу  операциясының  түрі  қажетті
деректер структурасының типінен тәуелді.
            Жаңарту операциясы  деректер  структурасында  деректер  мәндерін
өзгертуге көмектеседі.
              Бұл   операциялар   барлық   деректер   структурасына    жалпы
қолданылатын  операцияларға  жатады,  ал   кейбір   деректер   структурасына
қолданылатын арнаулы операциялар бар.

                           Өзін тексеру сұрақтары


        1. Деректер структурасы деген не?
        2. Деректер структурасына қолданылатын амалдар
        3.  Программалау технологиясы деген не?

                            Ұсынылатын әдебиеттер
        1. Е. Бидайбеков, Е. Медеуов, А. Ниязбаев. Информатика бастамалары
           (алгоритмдеу). Алматы, 1990ж.
        2. Вирт Н. Алгоритмы + структуры данных. Программы. – СПб, 2001ж.
        3. Симонович С., Евсеев Г.Практическая информатика: Инфорком-
           Пресс, 1998г.
        4. Острейковский В.А. Информатика, Москва, 2000 г.
        5. Петров А.В., Алексеев В.Е., Ваулин А.С., Петрова М.А., Титов
           М.А., Шкатов П.Н. Вычислительная техника и программирование,
           Москва, 1990.

7-тақырып: «Деректердің жай структурасы»
Дәріс жоспары:
        1. сандық типтер
      • бүтін
      • нақты
      • ондық
      • сандық типтерге қолданылатын операциялар
        2. Биттік типтер
        3. Логикалық типтер
        4. Терілімді типтер
        5. Шектелген типтер
        6. Көрсеткіштер


   Деректер структурасы қабылдайтын мәндерінің түрлеріне қарай келесі
   типтерге бөлінеді:
1. Сандық типтер
2. Биттік типтер
3. Логикалық типтер
4. Символдық типтер
5. Терілімді типтер
6. Шектелген типтер
7. Көрсеткіштер
8. Тізімдер
9. Жазулар
10. Файлдар
11. Массивтер
12. Жиындар
13. Таблицалар
14. Стектер
15. Кезектер
16. Дектер
17. Жолдар
18. Динамикалық типтер
19. Графтар
20. Ағаштар (бұтақтар)
      Жай типтерге жататындары:
   1. Сандық
   2. Биттік
   3. Логикалық
   4. Символдық
   5. Терілімді
   6. Шектелген
   7. Көрсеткіштер
      Сандық типтер нақты-ондық, бүтін  типтер деп  бөлінеді.  Бүтін  сандар
көмегімен табиғаты жағынан дискретті – объектілерінің саны  санаулы  болатын
объектілердің саны беріледі. Таңбалы сандарды ЭЕМ-ң жадысында  орналастыруда
екілік кодпен  немесе  қосымша  кодпен  кодтау  әдісі  қолданылады.  Олардың
ұзындығы 1,2,4 байт болуы мүмкін. Осыған байланысты бүтін типті  деректердің
өзі ұзын бүтін, қысқа бүтін, бүтін болып  бөлінеді,  оларға  сәйкес  байттық
орындар бөлінеді.
      Нақты типті деректердің өзі тұрақты нүктелі,  айнымалы  нүктелі  болып
бөлінеді, олардың да жадыдағы байттары әртүрлі. Бүтін сандардың мәні  жадыда
дәл анықталса, нақты сандардың мәні белгілі бір дәлдікпен анықталады.
      Биттік  типтер  деректердің   екілік   разрядтарымен   жұмыс   жасауға
көмектееді. Биттік типтер бір бірімен байланысы жоқ байттардың жиыны.
      Логикалық типтер логикалық ақиқат, жалған,  иә,  жоқ  сияқты  мәндерді
қабылдайтын, 1 байт орын алатын деректер.
      Символдық типтер алдын ала анықталған символдар жиыныннан қабылданатын
мәндер. Дербес ЭЕМ-дерде көбіне стандартты ASCII –символдар  коды  таблицасы
орнатылған, одан басқа  EBCDIC-кодтар  таблицасы  да  бар.  Символдық  типті
деректерге салыстыру, жалғастыру операциясы қолданылады.
      Терілімді типтерге қолданушы анықтайтын, өз  бетімен  құратын  белгілі
бір шарттарға байланысты топтастырылған  деректер  жиынынан  тұратын  типтер
жатады. Мысалы: жылдың он екі айы, апта күндері, т.б.
      Шектелген типтерге терілімді типтердің  ішінен  белгілі  бір  аралықты
қамтитын  деректерден  құралатын,  кей  жағдайда  қолданушы  өзі  анықтайтын
деректер типтері жатады. Мысалы: жаз айлары, қыс  айлары,  демалыс  күндері,
т.б.
      Көрсеткіштер деректер орналасқан ұяшықтың адресін  анықтайтын  типтер.
Олар типтендірілген  көрсеткіштер  және  типтендірілмеген  көрсеткіштер  деп
бөлінеді. Егер типтендірілген көрсеткіш деп жарияланса, онда   олар  бүтінге
көрсеткіш, символға көрсеткіш т.б. деп аталуы  мүмкін.  Ал  типтендірілмеген
көрсеткіштер кез келген ұяшықтың адресін анықтайды,  ол  деректердің  мәніне
көңіл  аудармайды.  Көрсеткіштер  деректерді  алмастыру   уақытында   жадыны
реттеуге тиімді.
                           Өзін тексеру сұрақтары
1. Деректердің қандай типтері бар?
2. Сандық типтер қалайша бқлінеді?
3. Күрделі типтер қалайша бөлінеді?
                            Ұсынылатын әдебиеттер
   1. Е. Бидайбеков, Е. Медеуов, А. Ниязбаев. Информатика бастамалары
      (алгоритмдеу). Алматы, 1990ж.
   2. Вирт Н. Алгоритмы + структуры данных. Программы. – СПб, 2001ж.
   3. Симонович С., Евсеев Г.Практическая информатика: Инфорком- Пресс,
      1998г.
   4. Острейковский В.А. Информатика, Москва, 2000 г.
   5. Петров А.В., Алексеев В.Е., Ваулин А.С., Петрова М.А., Титов М.А.,
      Шкатов П.Н. Вычислительная техника и программирование, Москва, 1990.

8-тақырып: «Деректердің статикалық структурасы»
Дәріс жоспары:
        7. векторлар
        8. массивтер
        9. жиындар
       10. жазулар
       11. таблицалар


      Деректердің статикалық структурасы базалық, примитивті структуралардың
құрылымды жиынынан тұрады. Оларға  жады  тұрақты-автоматты  түрде  бөлінеді,
себебі олардың мәндері өзгермейді.
      Векторлар – бір өлшемді массивтер- бір типті саны  санаулы  элементтер
жиынынан тұратын деректер.  Вектордың  әр  элементінің  нөмірі  оның  тұрған
орнын  анықтайды.  Элементтері   тізбектелген   ұяшықтар   жиынын   құрайды.
Элементтің типіне қарай жадыдан байттар  бөлінеді.  Жады  көлемі  элементтер
санын элементтер ұзындығына көбейту арқылы анықталады.
      Массивтер – екі өлшемді, көп өлшемді болады.
      Біртипті  саны  санаулы  элементтердің  жиынтығынан   тұратын,   әрбір
элементі  индекспен   номерленген,   индекстерінің   саны   массив   өлшемін
білдіретін атаулы деректерді массив дейді.
      Массивті қолдану үшін оның атауы және  индексі  анықталуы  керек.  Екі
индексті массив екі өлшемді, үш индексті массив үш өлшемді деп аталады.
      Жазулар (структуралар).
      Әртүрлі типті деректерді анықтайтын өрістердің ақырлы реттелген  жиыны
жазулар деп аталады.
      Жазуларды белгілі бір заттық облыстан алынған объектіні толық анықтап,
программалау үшін қолданған  тиімді.  Жазу  өрістермен  құралады.  Өрістерді
компоненттер  деп  те  атайды.  Жазу  деректер  таблицасын  еске   түсіреді.
Таблицаның бағандарының атаулары өрістер, таблицаның  әр  жолы  жазу  немесе
жазба деп аталады Программада жазулар өздерінің атауымен және өріс  атауымен
біріктіріліп қолданылады.
      Жиындар - біртипті, мәндері қайталанбайтын деректердің жиынтығы.
      Жиын  базалық типке жататын деректердің бәрін қабылдайды. Базалық  тип
256 мүмкін мәндерден аспауы керек, жадыда 32 байтқа дейін  орын  алады  және
массивтер сияқты орналасады, элементтері индекстеледі.
      Таблицалар -  элементтері жазу болатын векторды айтуға болады.  Вектор
сияқты әр элементі индекстелмейді. Әр өрісті толық анықтайтын  кілттік  өріс
тағайындалып, сол кілт бойынша деректер қолданылады.  Кілт  -  біртипті  көп
жазулардың жиынынан таңдалынатын мәндері қайталанбайтын  белгілі  бір  өріс.
Бір таблицада бір немесе бірнеше  кілт  болуы  мүмкін.  Таблицаға  логикалық
деңгейдегі операциялар қолданылады: іздеу, сұрыптау.
      Іздеу операциясы екі әдіспен орындалады:
1. Біртіндеп іздеу немесе сызықты іздеу
       Деректер  реттелмеген  болса,  элементтің  кілті  анықталып,  кілттің
мәнімен жазулар салыстырылады,  сәйкестік  болса  жазудың  табылғаны  туралы
ақпарат шығады, әйтпесе іздеу сәтсіз аяқталады.
2. Бинарлы іздеу.
      Жазулар таблицаға алфавит бойынша немесе өсу реті бойынша  енгізіледі.
Белгілі бір жазуды іздеу таблицаның ортасындағы сол  жазуға  сәйкес  кілттік
өрістің мәнін зерттеуден басталады. Егер  кілттің  мәні  үлкен  болса,  онда
таблицаның  үстіңгі  жартысының  ортасындағы  жазуға  сәйкес  кілттің   мәні
тексеріледі,  осы  процедура  таблицаның  үстіңгі  жартысында  сәйкес   жазу
табылғанша жалғасады да, егер іздеу сәтті аяқталса іздеу  тоқтатылады.  Егер
кілттің мәні кішкентай болса, онда  таблицаның  төменгі  жартысының  ортаңғы
жазуына сәйкес кілт мәні тексеріледі,
      Таблицаны сұрыптау  белгілі  бір  ереже  талабын  қанағаттандыратындай
етіп жазуларды реттеуге жатады.  Сұрыптау  алгоритмдері  көп,  оны  таңдауға
әсер ететін факторлар:
- Қол  астында  бар  жады  ресурсы:  енгізілетін  және  шығарылатын  жиындар
жадының әртүрлі облысында  орналасуы  керек  пе,  әлде  шығарылатын  жиындар
енгізілетін жиындардың орнына жазылуы керек пе - сол зерттеледі.
- Енгізілетін жиындар бастапқы кезден бастапреттелген болуы.
-  Операцияның  уақытша  мінездемесі:  алгоритмнің  жылдам  орындалуы   үшін
кілттік өрістің мәндері сандық тип немесе символдық  тип болуы ескеріледі.
- Алгоритмнің күрделілігі:  алгоритм  неғұрлым  қарапайым  болса,  орындалуы
соғұрлым жеңіл болады.
      Сұрыптау стратегиялары:
1.   Таңдау   стратегиясы.   -   енгізілетін    жиыннан    реттелу    шартын
қанағаттандыратын элемент таңдалынып алынады  да  номеріне  байланысты  орны
анықталып, шығарылатын жиынға енгізіледі.
2. Енгізу стратегиясы -  енгізілетін  жиыннан  номерлі  элемент  таңдалынып,
реттелу шартына сәйкес орнын анықтап шығарылатын жиынға енгізіледі.
3. Тарату, орналастыру стратегиясы - енгізілетін жиын  бірнеше  ішкі  жиынға
бөлінеді де, сұрыптау әр ішкі жиында жүргізіледі.
4  Біріктіру,  жымдастыру  стратегиясы  -  Сұрыпталған  әрбір  ішкі   жиынды
жымдастыру арқылы шығарылатын жиын құрастырылады.


              Көпмүшелікті Горнер схемасымен есептеу алгоритмі

    y= a0xn+a1 xn-1+…+an-1 x + an    теңдеуімен  берілген  көрсеткіші  n-ге
тең көпмүшеліктің мәнін есептеү керек.
    Горнер схемасы бұл көпмүшеліктегі көбейту және қосу  амалдарының  санын
максималды азайтады.
    n=2 болсын, сонда көпмүшелік былай жазылады:
    y= a0x2+a1x1+a2  -> 3көбейту, 2 қосу амалдары  бар  бұл  өрнекті  былай
жазуға болады:
    y= (a0x2+a1)x+a2   -> 2 көбейту, 2 қосу амалы болды.
    n=3 болсын:
    y= a0x3+a1x2+a2x+a3 – 9 амал бар
    y= ((a0x+a1)x+a2)x+a3  –  6  амал  бар.  Сонда  бұл  әдіс  алгоритмі  2
операциядан тұрады:
    1) x-ке көбейту
    2) келесі коэффициентті қосу

[pic]

алг   Горнер (бүт n, нақ x, y, нақ таб a[0, n])
      арг   n, x, a
      нет   y
басы  бүт   i
      i:=0
      y:=a[0]                               (немесе y:=a[i])
      әзір  i 3көбейту, 2 қосу амалдары  бар  бұл  өрнекті  былай
жазуға болады:
    y= (a0x2+a1)x+a2   -> 2 көбейту, 2 қосу амалы болды.
    n=3 болсын:
    y= a0x3+a1x2+a2x+a3 – 9 амал бар
    y= ((a0x+a1)x+a2)x+a3  –  6  амал  бар.  Сонда  бұл  әдіс  алгоритмі  2
операциядан тұрады:
    3) x-ке көбейту
    4) келесі коэффициентті қосу

[pic]

алг   Горнер (бүт n, нақ x, y, нақ таб a[0, n])
      арг   n, x, a
      нет   y
басы  бүт   i
      i:=0
      y:=a[0]                               (немесе y:=a[i])
      әзір  i3
                            3. ->1
2. Лентада n белгіленген ұяшықта массив берілсін. Каретка шеткі сол  жақтағы
   белгіні көретеді. Берілген массивтің оң жағынан  t  қашықтықтағы  ұяшықта
   тағы бір белгі тұр. Пост машинасы үшін берілген массивті берілген ұяшыққа
   жылжыту программасын құрыңыз.
3.  Лентада  әр  түрлі  ұзындықты  2  массив  берілген.  Каретка   массивтің
   біреуінің шеткі секциясын көрсетіп тұрсын. Пост машинасы  үшін  массивтің
   ұзындықтарын салыстырып, ұзынын өшіретін программа құру.

СОӨЖ №4. Пост машинасы алгоритм  ұғымын тереңдетуші.
Сұрақтар:
   1. Шама деген не?
   2. Шаманың неше түрі бар?
   3. Айнымалы шама деген не?
   4. Тұрақты шама деген не?
   5. Енетін шама деген не?
   6. Шығатын шама деген не?
   7. Аралық шама деген не?
   8. Литерлік шама деген не?
   9. Сандық шамалардың қандай типтері бар?
  10. Логикалық шама деген не?
  11. Есептеу алгоритмі деген не?
  12. Есептеу алгоритміндегі негізгі объект-
  13. Орындаушы үшін реттеліп жазылған әрекеттер тізбегі қалай аталады?
  14. Алгоритм белгілі бір класқа жататын  есептерді  шығаратындай  құрылса,
      алгоритмнің қай қасиетін анықтайды?
  15.  Алгоритмнің  барлық  нұсқауларын  дәл  орындаған  жағдайда   шектеулі
      қадамнан соң белгілі бір жауап алынса, қай қасиетті қнағаттандырады?
  16. Алгоритмде мағынасын әрқалай түсінетін нұсқаулар болмаса, қай қасиетті
      қанағаттандырады?
  17.  Алгоритмде  орындалатын  әрекеттердің  бірнеше  жеке  жеке   қадамдар
      тізбегіне бөлінуі қай қасиетін анықтайды?
  18. Алгоритм адамның бір тілді білетін, оқи  алатын  қасиеттеріне  сүйеніп
      құрылса, алгоритмнің қай қасиетін анықтайды?
  19. Команда немесе нұсқау деген не?
  20.  Математикалық  формула  көмегімен  шығарылатын   есептерге   құрылған
      алгоритм қалай аталады?


Тапсырмалар:
   4. Тақ сандар тізбегі берілген. 7-ге еселі сандардан жаңа тізбек құру.
   5. Тақ сандар тізбегі берілген. 5-ке еселі сандары нешеу екенін анықтау.
   6.  n саннан тұратын тізбек берілген. 6-ға  еселі  сандары  нешеу  екенін
      анықтау.
   7. [pic] қатар қосындысын анықтау.
   8. [pic] қатар қосындысын анықтау.
   9. [pic], i<=10 қатар қосындысын есептеу
  10. [pic] қосындысын есептеу алгоритмін құру.
  11.  [pic] қосындысын есептеу алгоритмін құру.

СОӨЖ №5. Массивтер. Бірөлшемді массивтер.
Сұрақтар:
                   12. Массив деген не?
                   13. Массивтің қандай түрлері бар?
                   14. Массивті құрастыру?
                   15. Массивтің типтері деген не?
                   16.   Массив   қандай   деректерді   қабылдайды,    қалай
                       сипатталады?
                   17. Циклдік операторлардың массивтегі рөлі?
                   18.  Берілген  есеп  бойынша  деректерді  анықтау   қалай
                       жүреді?
                   19.   Математика   курсынан   функция   анықтамасы    мен
                       есептелетін функция анықтамасын салыстырыңыз
                   20. Программалық орындалуы  қиын  алгоритмдерге  мысалдар
                       келтіріңіз
                   21. Алгоритмдер теориясынан болған маңызды жетістіктердің
                       хронологиялық таблицасын жасаңыз. Автордың  аты-жөні,
                       өмір сүру датасы белгілі болсын. Әр автордың өмірінің
                       нешінші жылында қай жұмысты жасағанын есептеңіз.
Тапсырмалар:
     1. Өлшемдері бірдей екі вектор берілген.  Олардың  тақ  элементтерінің
        қосындысын табу алгоритмін құру.
     2. Екі массив берілген. Олардың сәйкес i-ші элементтерінің  қосындысын
        табу.
     3.  Екі  массив   берілген.   Олардың   сәйкес   j-ші   элементтерінің
        көбейтіндісін табу.
     4. Вектордың элементтерін өсуі бойынша реттеу.
     5. Вектордың i –ші және j-ші элементтерінің орындарын ауыстыру.
     6. Вектордың элементтерін кемуі бойынша реттеу.
     7. Вектордың минималды және максималды элементтерін табу.
     8. 30 элементтен тұратын вектор берілген. Жұп және тақ  элементтерінен
        жаңа 2 вектор құру.
     9. Вектордың нөлден өзгеше және нөлге тең элементтерінің санын анықтау


    10. 10 элементтен тұратын вектордың 5-ші элементін  өшіру  арқылы  жаңа
        вектор құру.

СОӨЖ №6. Алгоритм күрделілігі ұғымы.
Сұрақтар:
       1. Алгоритмнің күрделілігі дегенді қалай түсінесіз?
       2. Уақытша күрделілік деген не?
       3. Теориялық күрделілік деген не?
       4. Күрделілік қалай бағаланады?
       5. Екі өлшемді массив қалай сипатталады?
       6. Екі өлшемді массивтерге циклдық операторлар қалай қолданылады?


Тапсырмалар:
   3. Екі натурал санның цифрларын көбейту алгоритмін құрып, күрделілігін
      анықтау. 1-ші сан n цифрдан, 2-ші сан m цифрдан тұрсын.
   4. Сызықты күрделілігі бар алгоритмге мысалдар келтіру.
   5. N цифрдан тұратын бір натурал санның цифрларын қосу алгоритмін құрып,
      күрделілігін анықтау.
   6.  Өлшемдері  бірдей   екі   матрица   берілген.   Олардың   диагональды
      элементтерінің қосындысын табу алгоритмін құру.
   7. Екі массив берілген. Олардың i-ші  жолында  орналасқан  элементтерінің
      қосындысын табу.
   8. Екі массив берілген. Олардың j-ші бағанында орналасқан  элементтерінің
      қосындысын табу.

СОӨЖ №7. Іздеу алгоритмі
Сұрақтар:
       1. Үлкен көлемді  ақпараттан  қажетті  ақпаратты  іздеуді  қолданатын
          мысалдар келтіру.
       2. Интернет желісінде ақпарат іздеудің қандай серверлерін білесіз?
       3. Интернет желісінде іздеу алгоритмін құрастырыңыз.
       4. Интернеттен Аллан Тьюринг, Эмиль Пост туралы ақпаратты іздеу.
       5. Жол деген не?
       6. Жолдар қандай типті деректерден тұрады, қалай сипатталады?
       7. Жолдарға қандай операциялар қолданылады?
       8. Ішкі жол деген не?
       9. Жолдарды қандай проблемаларды шешуге қолдануға болады?
      10. Жолдарды программада қала қолданады?
Тапсырмалар:
   1. Бірнеше жолдан тұратын символдар тізбегі берілген. Оның 3 символдан
      тұратын кез келген ішкі жолын қиып алып, жаңа жол құрау.
   2. Екі символдық жол берілген. Бір бірімен салыстыру, әр жолдағы дауысты
      және дауыссыз дыбыстардың санын анықтау.
   3. Бір жол берілген. Оның ішіндегі түбірлі сөзден жаңа сөз құрау

СОӨЖ №8. Сұрыптау алгоритмі
Сұрақтар:
   1. Сұрыптау деген не?
   2. Сұрыптаудың неше тәсілі бар?
   3. Бір өлшемді массивтерді сұрыптау қалай орындалады?
   4. Екі өлшемді массивтерді сұрыптау қалай орындалады?
   5. Іздеу алгоритмі қалай орындалады?
   6. Жиын деген не?
   7. Жиынды есептерге қолануға болатын жағдайлар№
   8. Жиындарды сипаттау
   9. Жиындарды программалау әдістері
  10. Жиын мен массивтің айырмашылықтары

Тапсырмалар:
   1.  Бір  өлшемді  массив  берілген.  Жұп   элементтерін   бірыңғай,   тақ
      элементтерін бірыңғай сұрыптау.
   2.  Екі  өлшемді  массив  берілген.  Жұп   элементтерін   бірыңғай,   тақ
      элементтерін бірыңғай сұрыптау.
   3. Екі өлшемді массив берілген. N-ші жолының жұп  элементтерін  бірыңғай,
      тақ элементтерін бірыңғай сұрыптау.
   4. Екі өлшемді массив берілген. N-ші бағанының жұп элементтерін бірыңғай,
      тақ элементтерін бірыңғай сұрыптау.
   5. Екі өлшемді массив берілген. N-ші бағанының элементтерін өсуі бойынша,
      N-ші жолының элементтерін кемуі бойынша сұрыптау.
   6. Тақ сандар жиыны берілген. 7-ге еселі сандардан жаңа тізбек құру.
   7. Тақ сандар жиыны берілген. 5-ке еселі сандары нешеу екенін анықтау.
   8.  n саннан тұратын жиын  берілген.  6-ға  еселі  сандары  нешеу  екенін
      анықтау.

СОӨЖ №9. Деректер структурасы
Сұрақтар
   1. Деректер деген не?
   2. Деректердің қандай түрлері бар?
   3. Деректердің сипатталуы, программада қолданылуы.
   4. Структураланған деректер деген не?
   5. Структураланбаған деректер деген не?
   6. Бүтін, нақты типті деректердің қасиетін анықтаңыз.
   7. Литерлік, жолдық шамалардың қасиеттері.
   8. Логикалық деректер деген не?
Тапсырмалар:
   1. Адамдардың логикалық, интеллектуалдық даму  деңгейін  көрсететін  тест
      құру. Тест тапсырған әрбір адамның  даму деңгейінің қортындысы ұпаймен
      шығарылсын.
   2. Бір топта оқитын студенттердің аты – жөні, адресі берілген. Студенттің
      фамилиясын енгізгенде оның қай адресте тұратынын  шығаратын  программа
      құру.
   3. Бір пәннен білім тексеру үшін тест құру. Оны тапсырушы адамның бағасын
      анықтау.

СОӨЖ №10. Қосалқы алгоритмдер
Сұрақтар:
   1. Қосалқы алгоритм деген не?
   2. Қосалқы алгоритмнің түрлері
   3. Қосалқы алгоритмдерді шақыру.
   4. Қосалқы алгоритмнің қажеттілігі
Тапсырмалар:
     1. Екі таблицалық  шамалар  берілген.  Элементтер  саны  тең.  Олардың
        сәйкес элементтерінің айырымдарының минимумдарын табу  арқылы  жаңа
        таблицалық шама құру қосалқы алгоритмін құру.
     2. а саны берілген. Егер ол сан оң  болса  (n!-m!)-ды  есептеу,  теріс
        болса  (n!*m!)-ды есептеу,  нөлге  тең  болса   (n!/m!)-ды  есептеу
        қосалқы алгоритмін құру.
     3. Асық ойнау және сақаны ұту ойынының алгоритмін құру.
     4. Бір сыныпта оқитын оқушылардың есімдері берілген.  Есімдері  бірдей
        оқушылардың санын анықтау қосалқы алгоритмін құру.
     5. Таблицалық шама 10 элементтен  тұрсын.  Мәндері  тең  элементтерден
        жаңа таблицалық шама құрау қосалқы алгоритмін құру.
     6. Төбелерінің координаттары  А(1,1),  В(5,2),  С(3,3)   және  А(2,5),
        В(4,3), С(6,4) болатын  екі  үшбұрыш  берілген.   Герон  формуласын
        қолданбай үшбұрыштардың аудандарын тауып, қайсысының  ауданы  үлкен
        екенін анықтау.
     7. Үш үшбұрыштар берілген. Олардың төбелерінің  координаттары  белгілі
        болса  қабырғаларының  ұзындығын  және  олардың  аудандарын  тауып,
        қайсысының ауданы кіші екенін анықтау.

СОӨЖ №11. Деректердің статикалық структурасы
Сұрақтар мен тапсырмалар:
   1. Суреттегі массив жол бойынша негізгі жадыда қалай жазылады?
|5 |3 |7 |
|4 |2 |8 |
|1 |9 |6 |


   2. Екі  өлшемді  массивтің  I-ші  жолы  мен   j-ші  бағанында  орналасқан
      элементін табудың формуласын келтіріңіз. Массив негізгі  жадыда  баған
      бойынша жазылсын.
   3. 8 жол 11  бағаннан  тұратын  екі  өлшемді  массив  жол  бойынша  25-ші
      адрестен бастап негізгі жадыға жазылған. Егер массивтің әрбір элементі
      жадының 2  ұяшығын  алатын  болса,  3-ші  жол  6-шы  бағандағы  массив
      элементінің адресі қандай болады?

СОӨЖ №12. Жартылай статикалық деректер структурасы
Сұрақтар мен тапсырмалар:
   1. Күнделікті өмірде стектер ұғымының кездесуіне мысалдар келтіру.
   2. Негізгі программа А процедурасын, ал А процедурасы В  процедурасын,  В
      процедурасы жұмысын  аяқтаған  соң  С  процедурасын  шақыратын  болсын
      делік.  Осы  сценарий  бойынша   адрестерде   стектердің   деректермен
      толтырылуын көрсетіңіз.
   3. Стек бос дегенді қалай түсінуге болады, егер жады  ұяшықтың  үзіліссіз
      блогында қолданылса?
   4. Қарындаш пен қағазды қолдану арқылы циклдік кезектің қалай көрінетінін
      жазу. Кезек үшін бөлінген  жады  блогы  тек  4  элементті  қабылдайтын
      болсын. А элементін кірістіру.  В  элементін  кірістіру.  С  элементін
      кірістіру. Элементті шығару. Элементті шығару. D элементін  кірістіру.
      Е  элементін  кірістіру.  Элементті  шығару.  F  элементін  кірістіру.
      Элементті шығару.
   5. Тізімнің бос және толтырылғанын қалай анықтауға болады?

СОӨЖ №13. Динамикалық деректер структурасы
Сұрақтар мен тапсырмалар
   1. Егер үзіліссіз тізімнің бірінші элементінің адресі белгілі болса,
      бесінші элементінің адресін қалай анықтайды. Байланысты тізім болған
      жағдайда не істеу керек?
   2. Байланысты тізім бос екенін қай шарт көрсетеді?
   3. Байланысты тізіммен белгілі бір элементті тауып, сосын өшіретін
      процедура құрыңыз

СОӨЖ №14. Сызықты емес деректер структурасы
Сұрақтар мен тапсырмалар:
   1. Төмендегі ағаш структурасында жапырақтарды және түбірдің діңгегін
      көрсетіңіз.9-төбеде жатқан ұсақ ағаштарды көрсетіңіз. Ортақ аналогы
      бар элементтер тобын көрсетіңіз.
   2. Машиналық жадыда байланысты ағаштың бос екенін қай шарт көрсетеді
   3. Төмендегі ағаштың машиналық жадыда орналастыру схемасын сызыңыз:
   4. Келесі элементтерді тізімде іздеу және сақтау бинарлы ағашын салыңыз

СОӨЖ №15. Деректердің файлдық структурасы
Сұрақтар
   1. ОЖ мен СЖ –ң ұғымдарының ерекшеліктері.
   2. FAT таблицалық жүйе деген не?
   3. Файлдық тип деген не?
   4. Файлдарды оқу үшін ашу, жазу үшін ашу қалай орындалады?
   5. Файлдарды анықтау деген не?
Тапсырмалар: Барлық тапсырмаларда файлдарды қолдану ұсынылады.
1. Қоймада n тауар түрі бар. Әр тауардың  мөлшерін,  бағасын  беру.  Қоймада
   жалпы құны қанша тауар бар? Егер оны екі есе бағасымен сатса қанша  табыс
   келетінін есептеу.
2. Қоймада n тауар түрі бар. Әр тауардың мөлшерін, бағасын,  сатылған  тауар
   мөлшерін беру. Ең көп сатылған тауар түрін анықтау.
3. Бір топта оқитын студенттердің аты-жөні, 1-ші  және  2-ші  семестрда  қай
   пәндерден  емтихан  тапсырғандығы,  олардан  алған   бағалары   берілген.
   Студенттің аты-жөні енгізілгенде оның қай пәннен  қандай  баға  алғандығы
   туралы ақпарат беретін программа құру.
4. Күрделі есептеулерге не жатады?
5. Көпмүшелік деген не?
6. Көпмүшеліктердің мәнін есептеу үшін қандай операторлар қолданылады?
7. s=4*6*8*...*20 көбейтіндісін есептеу
8. 2+22+23+...+210 есептеу
9. 5+8+11+...+35 қосындысын есептеу
10. у=2х+х2; х=2, 4, 6, ... , 20 функциясының мәндерін есептеу
11. у=10х2; х=-2, -1, 8, ..., 2 функциясының мәндерін есептеу
12. Фиббоначи тізбегін шығару. (тізбектің үшіншісінен бастағандағы  әр  саны
   алдыңғы екі санның қосындысы болып табылады, бірінші,  екінші  саны  1-ге
   тең. Яғни 1 1 2 3 5 8 13 21 ...)
13. ех қатарының Тейлор қатарына жіктелуін есептеу
14. sin(x) яункциясының Тейлор қатарына жіктелуін есептеу
15. 10х19 өлшемді массив берілген. Оның  бірінші  жолының  тура  ортасындағы
   элементі  1,  қалғандары  5,  әрбір  келесі  жолдың  элементтері   өзінің
   алдындағы жолдың элементтерінің жартысына тең болсын.
16. у=10х2+sin(x); х= 8,6, 4, 2 функциясының мәндерін есептеу

4.2 Студенттердің өздік жұмыстарының құрылымы:
   СӨЖ №1
      Тапсырма нұсқасын есеп кітабының соңғысының  алдындағы цифрға сәйкес
алу.
      А) MS Word –тің графикалық мүмкіндіктерін қолданыңыз.Таблицада
кестеленген функцияларды есептеу алгоритімін блок-схема құрыңыз,
      Б) Берілген формаларды MS Equation3.0 объектілерінің көмегімен
жазыңыз.
      В) Блок-схеманың барлық элементтерін біріктіріп, тұтас объект
жасаңыз.

|Вариант      |Тапсырмалар                                                      |
|нөмірі       |                                                                 |
|1            |[pic], мұндағы [pic], ал [pic], [pic]                            |
|2            |[pic], мұндағы, [pic]ал [pic], [pic]                             |
|3            |[pic], мұндағы, [pic]ал [pic], [pic]                             |
|4            |[pic], мұндағы [pic], ал [pic], [pic]                            |
|5            |[pic], мұндағы [pic], ал [pic], [pic]                            |


      СӨЖ №2.
Келесі тақырыптардың біреуін қарастыру:
        1. Алгоритм ұғымының қалыптасу тарихы
        2. Математика тарихындағы атақты алгоритмдер
        3. Алгоритмнің негізін қалаушылар-Клини,Черч,Пост,Тюринг
        4. Марковтың қалыпты алгоритмдері
        5. Пост машинасы
        6. Тюринг машинасы
        7. Рекурствті функциялар теориясының негізгі анықтамалары мен
           теоремалары
        8. Черч тезисі
        9. Фон Нейман принципі мен Тюринг машинасын ұйымдастыру
           принциптерін салыстыру
       10. Жан-жақты әмбебап орындаушының бар болуының дәлелдемесінің
           мәдени мәні
       11. Алғашқы ЭЕМ-ді құрастырудың биографиялары
Бұл баяндамалар 10-15 баспа беттен тұратын қағаз жүзінде немесе тұсаукесер
түрінде болуы керек.
   Жалпы тапсырмалар:
     1. Матрицада қанша оң сан, қанша теріс сан бар екенін анықтау.
     2. Матрицада бірлік элементтер санын анықтау.
     3. Бірнеше тең қабырғалы үшбұрыштардың  жиынынан  тұратын  көпбұрыштың
        ауданын табудың қосалқы алгоритмін құру.
     4. n!! –ды есептеу қосалқы алгоритмін құрып, оны (n+k)! –ды  есептеуде
        қолдану.
     5. а саны  берілген.  Егер  ол  сан  нөлден  өзгеше  болса  (n!+m!)-ды
        есептеу, басқа жағдайда  (n!*m)! - ды  есептеу  қосалқы  алгоритмін
        құру.
     6. n жолдан  m бағаннан  тұратын  массив  берілген.  Егер  элементтері
        нөлден өзгеше болса  (n/m!)-ды есептеу қосалқы алгоритмін құру.
     7. [pic], i<=10 қатар қосындысын есептеу
     8. [pic] қосындысын есептеу алгоритмін құру.
     9. [pic] қосындысын есептеу алгоритмін құру.
    10. Символдық жол берілген. Бір рет кездесетін әріпті шығару.
    11. Символдық жол берілген. Жолдағы тыныс белгілерін  жою  арқылы  жаңа
        жол құрау.
    12. Мәтін берілген. Мәтіннің n-ші сөзін мәтіннің соңына жазу.
    13.  Мәтін  және  әріп  берілген.  Әріп  мәтіннің   ішінде   неше   рет
        кездесетінін анықтау.
    14. Қоймада n тауар түрі  бар.  Әр  тауардың  мөлшерін,  бағасын  беру.
        Қоймада жалпы құны қанша тауар бар?  Егер  оны  екі  есе  бағасымен
        сатса қанша табыс келетінін есептеу.
    15. Қоймада n тауар түрі бар. Әр тауардың мөлшерін,  бағасын,  сатылған
        тауар мөлшерін беру. Ең көп сатылған тауар түрін анықтау.
    16. Бір топта оқитын студенттердің аты-жөні, туған датасы берілген.  Әр
        студенттің   туған  датасын  енгізгенде  оның  жасы  нешеде  екенін
        шығаратын программа құру.
    17. Бір топта оқитын студенттердің аты-жөні, 1-ші және  2-ші  семестрда
        қай  пәндерден  емтихан  тапсырғандығы,  олардан   алған   бағалары
        берілген. 1-семестр және 2-семестр қортындысын жеке жеке шығару.
    18. Бір  топта  оқитын  студенттердің  аты  –  жөні,  адресі  берілген.
        Фамилиялары бірдей студенттерді анықтау.
    19. Бір топта оқитын студенттердің аты-жөні, 1-ші және  2-ші  семестрда
        қай  пәндерден  емтихан  тапсырғандығы,  олардан   алған   бағалары
        берілген. Сессияны тапсыра алмағандардың тізімін шығару.
    20. Бір топта оқитын студенттердің аты-жөні, 1-ші және  2-ші  семестрда
        қай  пәндерден  емтихан  тапсырғандығы,  олардан   алған   бағалары
        берілген. Студенттің аты-жөні енгізілгенде оның қай  пәннен  қандай
        баға алғандығы туралы ақпарат беретін программа құру.
    21. s=4*6*8*...*20 көбейтіндісін есептеу
    22. 2+22+23+...+210 есептеу
    23. 5+8+11+...+35 қосындысын есептеу
    24. у=2х+х2; х=2, 4, 6, ... , 20 функциясының мәндерін есептеу
    25. у=10х2; х=-2, -1, 8, ..., 2 функциясының мәндерін есептеу
    26. Фиббоначи тізбегін шығару. (тізбектің үшіншісінен  бастағандағы  әр
        саны алдыңғы екі санның қосындысы болып табылады,  бірінші,  екінші
        саны 1-ге тең. Яғни 1 1 2 3 5 8 13 21 ...)
    27. ех қатарының Тейлор қатарына жіктелуін есептеу
    28. sin(x) яункциясының Тейлор қатарына жіктелуін есептеу
    29.  10х19  өлшемді  массив  берілген.  Оның   бірінші   жолының   тура
        ортасындағы  элементі  1,  қалғандары  5,   әрбір   келесі   жолдың
        элементтері өзінің алдындағы жолдың  элементтерінің  жартысына  тең
        болсын.
    30. у=10х2+sin(x); х= 8,6, 4, 2 функциясының мәндерін есептеу


4.3 Рефераттар тақырыптары

1-тақырып: «Жолдар. Жолдарды өңдеу алгоритмдері. Ішкі жол. Оларды іздеу.»
2-тақырып: «Реккуренттілік, итерация ұғымдары»
3-тақырып: «Алгоритмді таблица толтыруда қолдану.»
4-тақырып: «Марков машинасы»
5-тақырып: «Алгоритмді өңдеу әдістері»
6-тақырып: «Бұтақтар алгоритмі»
7-тақырып: «Кезектер ұғымы. Алгоритмі»
8-тақырып: «Шекара алгоритмі»
9-тақырып: «Евклид алгоритмі»
10-тақырып: «Графтар, олардың түрлері»
11-тақырып: «Дербес мақсаттар әдісі»
12-тақырып: «Көтерілу әдісінің алгоритмі»
13-тақырып: «Коммивояжер еебі»
14-тақырып: «Программалық жабдықтың өмір циклі»
15-тақырып: «Бір санау жүйесінен екінші санау жүйесіне көшу әдістері»
16-тақырып: «Итерациялық процестердің мүмкіндіктері»
17-тақырып: «Реккурентті формулаларды жүйені шешуде қолдану»
18-тақырып: «Ішкі программалар. Олардың түрлері»
19-тақырып: «Пост машинасы»
20-тақырып: «Рекурсивті функциялар»
21-тақырып: «Примитивті рекурсия»
22-тақырып: «Стек ұғымы. Қолданылуы»
23-тақырып: «Күрделі структуралар. Сипатталуы»
24-тақырып: «Деректердің типтері. Күрделі типті деректер»
25-тақырып: «Стандартты емес типтер»

4.4 Өзін тексеру үшін тест тапсырмалары

@@@ Алгоритмдеу пәні, негізгі ұғымдары
$$$ 1.
Алгоритмнің шығу тарихы қай ғалыммен байланысты?
A. Фердауси
B. Ибн Сина
C. Әл - Фараби
D. Әл - Хорезми
E. Шыңғыс хан
$$$ 2.
Алгоритм деген не?
A. компьютердің қатты дискісі
B. компьютердің негізгі құрылғысы
C. ЭЕМнің жұмысын басқаратын жүйелік программалар жиыны
D. қолданушы мен ЭЕМ арасында байланыс орнататын программалар жиыны
E. белгілі бір мәслені шешуге қажетті  әрекеттердің  шектеулі  жиынтығы  мен
орындаушыға берілетін нұсқаулар жүйесі
$$$ 3.
Алгоритмнің топтары
A. тұрмыстық, есептеу
B. программалық, программалық емес
C. ауызша, жазбаша
D. ашық, тұйық
E. жөнделетін, жөнделмейтін
$$$ 4.
Алгоритмнің қызметі -
A. компьютерді өшіру
B. берілген информацияны өңдеу арқылы басқа, жаңа информация құру
C. компьютерді іске қосу
D. файлды ашу
E. берілген информацияны тасымалдау
$$$ 5.
Алгоритмнің қасиеттері -
A. ашық, жабық, анықталмаған, жеке
B. қайталану, қайталанбау, нәтижесіздік
C. анықтық, дискреттілік, түсініктілік, ортақтық, нәтижелілік
D. шарттылық, циклдік, көшу, шартсыз көшу
E. анықталмағандық, даралық, үзіліссіздік
$$$ 6.
Есептеу алгоритміне қайсысы жатады?
A. сабаққа қатысу алгоритмі
B. телефон шалу алгоритмі
C. компьютерді іске қосу
D. логикалық амалдарды қолдану
E. фигура ауданын табу
$$$ 7.
Есептеу алгоритміндегі негізгі объект -
A. формула
B. қадам
C. ойлау
D. таблица
E. блок схема
$$$ 8.
Алгоритм  белгілі  бір  класқа  жататын  есептерді   шығаратындай   құрылса,
алгоритмнің қай қасиетін анықтайды?
A. ортақтық
B. нәтижелілік
C. түсініктілік
D. дискреттілік
E. анықтылық
$$$ 9.
Алгоритмнің барлық нұсқауларын дәл орындаған жағдайда шектеулі қадамнан  соң
белгілі бір жауап алынса, қай қасиетті қнағаттандырады?
A. ортақтық
B. түсініктілік
C. нәтижелілік
D. дискреттілік
E. анықтылық
$$$ 10
Алгоритмде мағынасын  әрқалай  түсінетін  нұсқаулар  болмаса,  қай  қасиетті
қанағаттандырады?
A. ортақтық
B. түсініктілік
C. нәтижелілік
D. анықтылық
E. дискреттілік
$$$ 11
[pic]есебіне құрылатын алгоритм түрі
A. сызықты
B. қайталанатын
C. қайталанбайтын
D. тармақталған
E. сызықты емес
$$$ 12
[pic] есебіне құрылатын алгоритм түрі
A. сызықты
B. тармақталған
C. қосалқы
D. тізбектелген
E. циклдік
$$$ 13
[pic] формуласының алгоритмі қай түрге жатады?
A. тармақталған
B. циклдік
C. қосалқы
D. сызықты
E. қайталану
$$$ 14
a=3; b=4; c:= a>b өрнегі қандай мән қабылдайды
A. ақиқат
B. жалған
C. мән қабылдамайды
D. жазу дұрыс емес
E. екі мән қабылдайды
$$$ 15
Ақиқат және жалған мәндерді қабылдайтын айнымалыларды қалай атайды?
A. символдық
B. тұрақты
C. литерлік
D. логикалық
E. нақты
$$$ 16
Әріптер мен сандардың бірігуінен құралған мән қандай айнымалыға жатады?
A. тұрақты
B. натурал
C. бүтін
D. нақты
E. литерлік

@@@ Алгоритм түрлері

$$$ 1.
Алгоритмнің түрлері -
A. үзілісті, үзіліссіз, біркелкі, тұрақты
B. шартты, шартсыз, қайталаусыз
C. сызықсыз, тармақсыз, қайталанбайтын
D. сызықты, тармақталған, қайталану, қосалқы
E. анық, анық емес, айқындалмаған, айқындалған
$$$ 2.
Құрылған әрекеттер жиыны бірінен кейін бірі тізбектеліп  орындалатын  болса,
қай алгоритмге жатады?
A. тармақталған
B. қайталану
C. циклдік
D. қосалқы
E. сызықты
$$$ 3.
Айнымалының мәніне байланысты 1 немесе бірнеше  әрекеттерді  таңдап  орындау
керек болса, қай алгоритмге жатады?
A. қосалқы
B. қайталану
C. циклдік
D. тармақталған
E. сызықты
$$$ 4.
Айнымалының  мәніне  байланысты  бір  немесе  бірнеше  әрекеттерді  қайталап
орындау керек болса, қай алгоритмге жатады?
A. циклдік
B. үзілісті
C. тармақталған
D. сызықты
E. қосалқы
$$$ 5
Алгоритмнің анықтық қасиетін қанағаттандыратын нұсқау:
A. Бір өлшемді массивтің бір, екі элементінің қосындысы
B. Бір өлшемді массивтің бір элементінің қосындысы
C. Екі өлшемді массивтің бір, екі элементінің қосындысы
D. Үш өлшемді массивтің бір, екі элементінің қосындысы
E. Төрт өлшемді массивтің бір, екі элементінің қосындысы
$$$ 6
Ортақтық қасиетті қанатағттандыратын алгоритм  мысалы-
A. ax2+bx-c=0 алгоритмі
B. 3x2+4x-1=0 алгоритмі
C. 2x+3=0 алгоритмі
D. 5x2=0 алгоритмі
E. 6x3=0 алгоритмі
$$$ 7
Шарт бойынша орындалатын алгоритм қай түрге жатады?
A. негізгі
B. қосалқы
C. тармақталған
D. арифметикалық
E. логикалық
$$$ 8
Алгоритмде меншіктеу командасы қалай жазылады?
A.  -
B.  =
C.  +
D.  *
E.   ;
$$$ 9
Егер, онда әйтпесе қызметші сөздерімен қандай алгоритм түрі жазылады?
A. циклдік
B. сызықты
C. сызықты емес
D. логикалық
E. тармақталған
$$$ 10
Әзір қызметші сөзімен қандай алгоритм түрі жазылады?
A. циклдік емес
B. циклдік
C. сызықты емес
D. логикалық
E. тармақталған
$$$ 11
Циклдік алгоритм командасына  қай команда жатады?
A. әзір
B. меншіктеу
C. көшу
D. басы
E. соңы
$$$ 12
Меншіктеу командасының жазылуының дұрыс түрі:
A. шарт:=айнымалы
B. айнымалы:= мән
C. мән:=айнымалы
D. шарт:=мән
E. функция:=шарт
$$$ 13
Сызықты алгоритмде командалар қандай ретпен орындалады?
A. бір команда бірнеше рет қайталанады
B. шартқа байланысты әртүрлі командалардың біреуі орындалады
C. бірінен соң бірі тізбектеліп
D. командалардың ең соңғысы орындалып, басына көшеді
E. командалардың ең алғашқысы ғана орындалып, тоқтайды
$$$ 14
Көпмүшелікті есептеу қандай алгоритмге жатады?
A. сызықты
B. тармақталған
C. қосалқы
D. циклдік
E. тізбекті
$$$ 15
Циклдік алгоритмге жатпайтын алгоритм қайсысы?
A. «дейін»
B. қосалқы
C. «кейін»
D. параметрлі
E. әзір

@@@ Шамалар, тұрақтылар, айнымалылар

$$$ 1
Шама деген не?
A. есепті шығару барысында қолданылатын белгілеулер
B. есепті шығару барысында қолданылатын командалар
C. есепті шығару барысында қолданылатын формулалар
D. есепті шығару барысында қолданылатын функциялар
E. блок-схема
$$$ 2
Шамаға жатпайтын ұғымды анықта -
A. аргумент
B. команда
C. нәтиже
D. айнымалы
E. тұрақты
$$$ 3
Нәтижелер деген не?
A. қайталанбайтын шамалар
B. қайталанатын шамалар
C. енетін шамалар
D. шығатын шамалар
E. тұрақты шамалар
$$$ 4
Аралық шамалар деген не?
A. алгоритмді орындау процесінде аралық мәндерді сақтауға арналған шамалар
B. алгоритмді орындау процесінде барлық мәндерді есептеуге арналған шамалар
C. енетін шамалар
D. шығатын шамалар
E. тұрақты шамалар
$$$ 5
Аргументтер қандай шамаға жатады?
А.  шығатын
B. енетін
C. нәтиже
D. тұрақты
E. айнымалы емес
$$$ 6
Нәтижелер қандай шамаға жатады?
А.  шығатын
B. енетін
C. нәтиже
D. тұрақты
E. айнымалы емес
$$$ 7
Алғашқы информация деген не?
A. есептің нәтижесі
B. есептің берілгендері
C. есептің аралық информациясы
D. команда
E. жеке алгоритм
$$$ 8
Берілген информацияны өңдеу арқылы басқа, жаңа  информация  құру  анықтамасы
нені анықтайды?
A. алгоритм қызметін
B. алгоритм қасиетін
C. алгоритм командасын
D. алгоритм түрін
E. алгоритм бейнесін
$$$ 9
Енетін шама деген не?
A. алгоритм барысында пайда болатын айнымалылар
B. алгоритм үшін бастапқы берілгендер
C. тұрақтылар
D. алгоритмдегі командалар
E. алгоритм түрі
$$$ 10
Шаманың структурасы неден тұрады?
A. шаманың формуласынан
B. шаманың типінен
C. шаманың түрінен
D. шама атауы мен мәнінен
E. шама түрі мен қасиетінен
$$$ 11
Шаманың атауы деген не?
A. шаманың мәні
B. шаманың қасиеті
C. шаманың белгіленуі
D. шама формуласы
E. шама түрі
$$$ 12
Алгоритмді орындаған сайын мәндері өзгеретін шамаларды қалай атайды?
A. айнымалылар
B. тұрақтылар
C. енетін шамалар
D. шығатын шамалар
E. есептелетін шамалар
$$$ 13
Алгоритмді орындаған сайын мәндері өзгермейтін шамаларды қалай атайды?
A. айнымалылар
B. тұрақтылар
C. енетін шамалар
D. шығатын шамалар
E. есептелетін шамалар
$$$ 14
Литерлік шамалар деген не?
A. нақты сандардан тұратын шамалар
B. бүтін сандардан тұратын шамалар
C. сандардан тұратын шамалар
D. символдық мән қабылдайтын шамалар
E. натурал сандардан тұратын шамалар
$$$ 15
Нақты шамалар қандай мәндер қабылдайды?
A. бөлшек
B. бүтін
C. символдық
D. логикалық
E. жолдық

@@@ Алгоритмдік тіл
$$$ 1
Тіл дегенді қалай түсінуге болады?
A. кейбір мағлұматтарды өрнектеу және жеткізу құралы
B. блок-схема
C. программа
D. алгоритм түрі
E. шама
$$$ 2
Тіл мағынасына қарай қандай болып бөлінеді?
A.логикалық тіл, логикалық емес тіл
B. қатынас тілі, математика тілі,  автоматтар тілі
C. арифметикалық тіл, геометриялық тіл
D. жай тіл, күрделі тіл
E. шартты тіл, шартсыз тіл
$$$ 3
Алгоритмді жазу үшін пайдаланылатын тіл
A. арифметикалық тіл
B. математикалық тіл
C. есептеу тілі
D. алгоритмдік тіл
E. табиғи тіл
$$$ 4
Тіл деңгейі қандай фактордан тәуелді емес?
A. алгоритмді жазу командаларының элементарлығынан
B. тілдің формальдандырылу дәрежесінен
C. берілгендердің сипаты мен қасиетінен
D. түсініктілік дәрежесінен
E. орындаушының мүмкіндігінен
$$$ 5
Кәдімгі, табиғи тілге  жақын,  бірақ  нағыз  алгоритмдік  тілдердің  негізгі
қасиеттері бар тілді қалай атайды?
A. оқу алгоритмдік тіл
B. программалау тілі
C. компьютерлік тіл
D. табиғи тіл
E. ана тілі
$$$ 6
Алгоритмдік тіл деп нені түсінуге болады?
A. адамға түсінікті тілде жазылған нұсқаулар тізімі
B. компьютерге түсінікті тілде жазылған нұсқаулар жиыны
C. программаға түсінікті тілде жазылған командалар
D. антивирустік программалар жиыны
E. компьютер жадысын үнемдеу командасы
$$$ 7
Программа деп нені түсінуге болады?
A. табиғи тілге аударылған алгоритм
B. қолданушы адамға берілген нұсқаулар
C. блок-схема
D. компьютерге түсінікті етіп аударылған алгоритм
E. құрылғы
$$$ 8
Алгоритмдік тілдің анықтамасы
A. компьютерге қойылатын талаптар
B. алгоритмді біркелкі және дәл жазудың формалары
C. алгоритмді біркелкі және дәл жазудың  және  оларды  орындаудың  ережелері
мен белгілер жүйесі
D. қолданушыға қойылатын талаптар
E. командалар жиыны
$$$ 9
Алгоритмдік тіл ұғымында қолданылмайтын термин қайсысы?
A. алфавит
B. жұмыс облысы
C. конструкция
D. семантика
E. команда
$$$ 10
Алгоритмдік тілде  қолданылатын  символдардың,  белгілердің  жиынтығы  қалай
аталады?
A. алфавит
B. жұмыс облысы
C. конструкция
D. семантика
E. команда
$$$ 11
Алгоритмдік жазудың жалпы құрылымының ережелері қалай аталады?
A. алфавит
B. конструкция
C. жұмыс облысы
D. семантика
E. команда
$$$ 12
Алгоритмдік тілдегі әртүрлі командалардың  қызметі  мен  орындалу  ережелері
қалай аталады?
A. алфавит
B. конструкция
C. жұмыс облысы
D. семантика
E. команда
$$$ 13
Алфавитке жатпайтын түсінікті анықта
A. қызметші немесе көмекші сөздер
B. латын, орыс алфавитінің әріптері мен символдары
C. ішкі цикл толығымен сыртқы цикл ішінде жатуы керек
D. салыстыру таңбалары
E. арифметикалық амалдарды орындау таңбалары
$$$ 14
Ақиқат, жалған мән қабылдайтын айнымалылар қалай аталады?
A. жолдық айнымалылар
B. сандық айнымалылар
C. литерлік айнымалылар
D. тұрақты айнымалылар
E. логикалық айнымалылар
$$$ 15
Алгоритмдік тілдің негізгі объектілеріне жатпайтын объектіні ата
A. команда
B. айнымалы
C. құрылғы
D. тұрақты
E. берілгендер

@@@ Таблицалық шамалар

$$$ 1
Таблицалық шама деген не?
A. мүшелерінің құрылуы қандай да бір тәуелділікке бағынбатын және алдын  ала
формуламен байланыста болмайтын сандық тізбектер
B. мүшелерінің құрылуы қандай да бір  тәуелділікке  бағынатын  өсуі  бойынша
реттелген сандық тізбек
C.  мүшелерінің  құрылуы  қандай  да  бір  формуламен   берілген   реттелген
элементтер тізбегі
D. белгілі бір құру ережесіне бағынатын символдар жиыны
E. ондай түсінік жоқ
$$$ 2
Таблицалық шама элементтері немен белгіленеді
A. индекстермен белгіленген әріппен
B. файл атауымен
C. тек қана әріптермен
D. әріптермен белгіленген индекспен
E. формуламен
$$$ 3
х1, х2, ... хn деп белгіленген таблицалық шаманың индексі қайсысы?
A. х әріпі
B. 1,2,3,...n сандары
C. үтірлер
D. х1 белгілеуі
E. индекс келтірілмеген
$$$ 4
х1, х2, ... хn деп белгіленген таблицалық шаманың атауы қайсысы?
A. х әріпі
B. 1,2,3,...n сандары
C. үтірлер
D. х1 белгілеуі
E. индекс келтірілмеген
$$$ 5
Алгоритмдік тілде таблицалық шаманың дұрыс сипатталуы:
A. арг таб элементтер саны
B. таб. атауы элементтер типі. [өлшемі]
C.  [өлшемі] элементтер типі.таб. атауы
D. элементтер типі.таб. атауы[өлшемі]
E. арг таб. Атау типі
$$$ 6
Бір индексті таблицалық шамалар қалай аталады?
A. екі өлшемді массив
B. төртбұрышты таблицалық шамалар
C. векторлар
D. үшбұрышты таблицалық шамалар
E. үш өлшемді массив
$$$ 7
Екі индексті таблицалық шамалар қалай аталады?
A. екі өлшемді массив
B. бесбұрышты таблицалық шамалар
C. векторлар
D. үшбұрышты таблицалық шамалар
E. үш өлшемді массив
$$$ 8
Вектор элементтерінің қосындысын есептеу керек болса,  неше  өлшемді  массив
қолданылады?
A. екі
B. үш
C. төрт
D. бір
E. бес
$$$ 9
Матрица элементтерінің  көбейтіндісін  есептеу  керек  болса,  неше  өлшемді
массив қолданылады?
A. екі
B. үш
C. төрт
D. бір
E. бес
$$$ 10
Вектор  элементтерінің  көбейтіндісін  есептеу  керек  болса,  неше  өлшемді
массив қолданылады?
A. екі
B. үш
C. төрт
D. бір
E. бес
$$$ 11
Матрица элементтерінің қосындысын есептеу керек болса, неше  өлшемді  массив
қолданылады?
A. екі
B. үш
C. төрт
D. бір
E. бес
$$$  12
Бір өлшемді массивті енгізу уақытында неше цикл қолданылады?
A. бір
B. үш
C. төрт
D. екі
E. бес
$$$ 13
Егер таблицалық шама екі индексті болса, оны қалай атауға болады?
A. матрица
B. вектор
C. айнымалы
D. тұрақты
E. сан
$$$ 14
Егер таблицалық шама бір индексті болса, оны қалай атауға болады?
A. матрица
B. вектор
C. айнымалы
D. тұрақты
E. сан
$$$ 15
Егер таблицалық шама үш индексті болса, оны қалай атауға болады?
A. екі өлшемді массив
B. бір өлшемді массив
C. айнымалы
D. үш өлшемді массив
E. сан

@@@  Қосалқы алгоритмдер

$$$ 1.
Қосалқы алгоритмнің кәдімгі алгоритмнен ерекшелігі
A. ол бірнеше алгоритмнен тұрады
B. ол бірнеше алгоритмді біріктіріп орындайды
C. ол басқа алгоритмнің ішінде бірнеше рет қолданылады
D. ол басқа алгоритмнің ішінде қолданылмайды
E. ол жеке дара команда
$$$ 2
Қосалқы алгоритмді шақыру командасы
A. алгоритм атауы (іс жүзіндегі параметрлер тізбегі)
B. алгоритм атауы (формальды параметрлер атауы)
C. алгоритм атауы(типі)
D. алгоритм типі (атауы)
E. алгоритм атауы(өлшемі)
$$$ 3
Іс жүзіндегі параметр деген не?
A. қосалқы алгоритмде жоқ айнымалылар
B. қосалқы алгоритмде қолданылатын айнымалылар
C. негізгі алгоритмде қолданылатын айнымалылар
D. шақырылатын айнымалылар
E. уақытша айнымалылар
$$$ 4
Қосалқы алгоритм деген не?
A. басқа алгоритмдердің құрамында толығымен пайдаланылатын алгоритм
B. басқа алгоритмде пайдаланылмайтын алгоритм
C. тармақталып орындалатын алгоритм
D. жеке дара орындалатын алгоритм
E. ешқандай қызмет атқармайтын алгоритм
$$$ 5
Қосалқы алгоритмге қандай әрекеттер тізімі біріктіріледі?
A. ешқандай қызмет атқармайтын әрекеттер тізімі
B. атқаратын қызметтері әртүрлі, алгоритм ішінде бірнеше жерде  қайталанатын
әрекеттер
C. атқаратын қызметі  ұқсас,  алгоритм  ішінде  бірнеше  жерде  қайталанатын
әрекеттер
D. атқаратын қызметі әртүрлі, алгоритм ішінде қайталанбайтын әрекеттер
E. шартқа байланысты орындалатын әрекеттер
$$$ 6
Қосалқы алгоритмнің айнымалыларын басқаша қалай атауға болады?
A. литерлер
B. символдар
C. сандар
D. тұрақтылар
E. параметрлер
$$$ 7
Қосалқы алгоритм параметрлеріне жатпайтын ұғым?
A. іс жүзіндегі параметр
B. формальды параметр
C. локальды параметр
D. сөз
E. глобальды параметр
$$$ 8
Локальды параметр деп неге айтады?
A. қайталана беретін айнымалыны
B. негізгі алгоритмде ғана жұмыс істейтін айнымалыны
C. қосалқы алгоритм ішінде ғана жұмыс істейтін айнымалыны
D. негізгі алгоритмдегі литерлік айнымалыны
E. қосалқы алгоритмдегі циклді
$$$ 9
Глобальды параметр деп неге айтады?
A. қайталана беретін айнымалыны
B. негізгі алгоритмде ғана жұмыс істейтін айнымалыны
C. қосалқы алгоритм ішінде ғана жұмыс істейтін айнымалыны
D. негізгі алгоритмдегі литерлік айнымалыны
E. қосалқы алгоритмдегі циклді
$$$ 10
бір алгоритмнің ішінде қосалқы алгоритм болуы мүмкін бе?
A. мүмкін емес
B. қосалқы алгоритм басқа алгоритмнің ішінде болмайды
C. жалғыз
D. қажетінше, бірнешеу
E. екеу ғана болуы мүмкін

4.5 Межелік бақылау сұрақтары:

                       №1 - межелік бақылау сұрақтары
   1-вариант
   1. Алгоритмдерге қойылатын негізгі талаптар?
   2. Алгоритмнің детерминделгендік қасиеті?
   3. Алгоритмнің дискреттілік қасиеті?
   4. Алгоритмнің ортақтық қасиеті?
   5. Алгоритмдер командалардың қандай екі негізгі типінен құрылады?
   6. Алгоритмнің белгілері. Олардың атқаратын қызметі?
   7. Блок-схема деген не? Ол қалай қолданылады?
   8. Деректер деген не?
   9. Деректердің қандай түрлері бар?
  10. Деректердің сипатталуы, программада қолданылуы.


   2-вариант
     1. Есептеу алгоритмі деген не?
     2. Формула көмегімен шешілетін есептерге қандай алгоритм құрылады?
     3. Таблица деген не?
     4. Таблицалық әдістің блок схемадан айырмашылығы неде?
     5. Екі санның үлкенін табу алгоритмі қандай алгоритмге жатады?
     6. Ақиқат және жалған мәндерді қабылдайтын айнымалыларды қалай атайды?
     7. Әріптер мен сандардың бірігуінен  құралған  мән  қандай  айнымалыға
        жатады?
     8. Алгоритмнің түрлері -
     9. Құрылған әрекеттер жиыны бірінен кейін бірі тізбектеліп орындалатын
        болса, қай алгоритмге жатады?
    10. Айнымалының мәніне байланысты 1 немесе бірнеше  әрекеттерді  таңдап
        орындау керек болса, қай алгоритмге жатады?

   3-вариант
     1.  Айнымалының  мәніне  байланысты  бір  немесе  бірнеше  әрекеттерді
        қайталап орындау керек болса, қай алгоритмге жатады?
     2. Алгоритм геометриялық фигуралармен құрылса қалай аталады?
     3. Алгоритмнің берілу тәсілдері?
     4. Таблицалық әдіс деген не?
     5. Төртбұрыштың ауданын есептеу қандай алгоритмге жатады?
     6. Алгоритм белгілі бір класқа жататын есептерді шығаратындай құрылса,
        алгоритмнің қай қасиетін анықтайды?
     7. Алгоритмнің барлық  нұсқауларын  дәл  орындаған  жағдайда  шектеулі
        қадамнан   соң   белгілі   бір   жауап   алынса,    қай    қасиетті
        қнағаттандырады?
     8. Алгоритмде  мағынасын  әрқалай  түсінетін  нұсқаулар  болмаса,  қай
        қасиетті қанағаттандырады?
     9. Алгоритмде орындалатын  әрекеттердің  бірнеше  жеке  жеке  қадамдар
        тізбегіне бөлінуі қай қасиетін анықтайды?
    10. Алгоритм адамның бір тілді білетін, оқи алатын қасиеттеріне сүйеніп
        құрылса, алгоритмнің қай қасиетін анықтайды?


      4-вариант
     1. Команда немесе нұсқау деген не?
     2. Математикалық  формула  көмегімен  шығарылатын  есептерге  құрылған
        алгоритм қалай аталады?
     3. Пост машинасы.
     4. Пост машинасы мен Тьюринг машинасын салыстыру.
     5. Пост машинасын құру әдістері.
     6. Тьюринг машинасын құру әдістері.
     7. Алгоритмнің формальды анықтамасы?
     8. Массив деген не?
     9. Массивтің қандай түрлері бар?
    10. Массивті құрастыру?

      5-вариант
   1. Массивтің типтері деген не?
   2. Массив қандай деректерді қабылдайды, қалай сипатталады?
   3. Циклдік операторлардың массивтегі рөлі?
   4. Берілген есеп бойынша деректерді анықтау қалай жүреді?
   5.  Математика  курсынан  функция  анықтамасы  мен  есептелетін   функция
      анықтамасын салыстырыңыз
   6. Программалық орындалуы қиын алгоритмдерге мысалдар келтіріңіз
   7. Алгоритмдер теориясынан болған  маңызды  жетістіктердің  хронологиялық
      таблицасын  жасаңыз.  Автордың  аты-жөні,  өмір  сүру  датасы  белгілі
      болсын. Әр автордың өмірінің нешінші  жылында  қай  жұмысты  жасағанын
      есептеңіз.
   8. Алгоритмнің күрделілігі дегенді қалай түсінесіз?
   9. Уақытша күрделілік деген не?
  10. Теориялық күрделілік деген не?



                        №2-межелік бақылау сұрақтары
1-вариант
   1. Шама деген не?
   2. Шаманың неше түрі бар?
   3. Айнымалы шама деген не?
   4. Тұрақты шама деген не?
   5. Енетін шама деген не?
   6. Шығатын шама деген не?
   7. Аралық шама деген не?
   8. Литерлік шама деген не?
   9. Сандық шамалардың қандай типтері бар?
  10. Логикалық шама деген не?

2-вариант
   1. Күрделілік қалай бағаланады?
   2. Екі өлшемді массив қалай сипатталады?
   3. Екі өлшемді массивтерге циклдық операторлар қалай қолданылады?
   4. Күрделі есептеулерге не жатады?
   5. Көпмүшелік деген не?
   6. Көпмүшеліктердің мәнін есептеу үшін қандай операторлар қолданылады?
   7. Цикл деген не?
   8. Циклдың қандай түрлері бар?
   9. Таңдау операторы қай уақытта қолданылады?
  10. Таңдау операторының жазылу форматы қандай?

3-вариант
   1. Деректердің статикалық және статикалық емес структурасын атаңыз.
   2. Деректердің жартылай статикалық структурасына жататын деректер?
   3. Деректердің динамикалық структурасына жататын деректер?
   4. Деректердің Сызықты емес структурасы?
   5. Деректердің файлдық структурасы деген не?
   6. Сұрыптау алгоритмдерінің түрлері?
   7. Іздеу алгоритмдерін атаңыз?
   8. Алгоритм күрделілігі деген не?
   9. Үлкен көлемді ақпараттан қажетті ақпаратты іздеуді қолданатын мысалдар
      келтіру.
  10. Интернет желісінде ақпарат іздеудің қандай серверлерін білесіз?

4-вариант
   1. Интернет желісінде іздеу алгоритмін құрастырыңыз.
   2. Интернеттен Аллан Тьюринг, Эмиль Пост туралы ақпаратты іздеу.
   3. Жол деген не?
   4. Жолдар қандай типті деректерден тұрады, қалай сипатталады?
   5. Жолдарға қандай операциялар қолданылады?
   6. Ішкі жол деген не?
   7. Жолдарды қандай проблемаларды шешуге қолдануға болады?
   8. Жолдарды программада қала қолданады?
   9. Сұрыптау деген не?
  10. Сұрыптаудың неше тәсілі бар?

5-вариант
   1. Бір өлшемді массивтерді сұрыптау қалай орындалады?
   2. Екі өлшемді массивтерді сұрыптау қалай орындалады?
   3. Іздеу алгоритмі қалай орындалады?
   4. Жиын деген не?
   5. Жиынды есептерге қолануға болатын жағдайлар
   6. Жиындарды сипаттау
   7. Жиындарды программалау әдістері
   8. Жиын мен массивтің айырмашылықтары
   9. Деректердің құрылымды типі деген не?
  10. Деректердің құрылымды емес типтері деген не?
-----------------------
басы

шарт

Цикл
денесі

соңы

                                     ...

                                     жоқ

                                     Иә

                                     ...

   S=0

       i=1


   i[pic]n

S=S+x [i]
I=i+1

Иә


  S=S/n

  S

Соңы

Жоқ

                                     S=0
                                     I=1

                                    I<=11

                                     Иә

                                     J=1

                                    j<=3

                                     Иә

                                 S=s+кл[I,j]
                                    J=j+1

                                     жоқ

                                    I=i+1

                                      S

                                    соңы

                                     жоқ

[pic]

                                    i = 0
                                  y = a[0]

                                     i            
Пәндер