Главная страница
Навигация по странице:

  • Әйтпесе

  • Алгоритмнің түсінігі, түрлері. Алгоритмдер


    Скачать 61.84 Kb.
    НазваниеАлгоритмдер
    АнкорАлгоритмнің түсінігі, түрлер
    Дата02.02.2022
    Размер61.84 Kb.
    Формат файлаdocx
    Имя файлаАлгоритмнің түсінігі, түрлері.docx
    ТипДокументы
    #349891
    страница2 из 4
    1   2   3   4

    АЛГОРИТМНІҢ ТҮРЛЕРІ




        1. Тізбектік алгоритмдер

    Жоғарыда қарастырылған алгоритмдер ең қарапайым болып саналады. Олар жазылған қалпында орындалатын бірізді әрекеттерді суреттейді, яғни, бірінен кейін бірі орындалады. Бұл әрекеттерді орындау үшін қажетті заттар дайын және оларды орындау барысында сұрақтар мен қиындықтар туындамайды, яғни, нан нансалғышта тұр, май – тоңазытқышта, оқулық – үстелдің үстінде, ал сізден тек қана алгоритмде берілген әрекеттерді рет-ретімен орындау талап етіледі. Бірінен соң бірі рет-ретімен орындалатын алгоритмдер тізбектікалгоритмдердеп аталады.
        1. Тармақталған алгоритмдер


    Шынайы өмірде барлығы да оңай емес. Сіздің бутерброд жегіңіз келді, нансалғышты аштыңыз, ал онда нан жоқ. Не істеу керек? Егер шынымен де қарныңыз ашып тұрса, дүкенге барып нан сатып алып келуге тура келеді. Бұл ретте сіздің әрекетіңіз жағдайға байланысты болады нансалғышта нан бар ма, жоқ па?

    Мұндай жағдайда бутерброд жеуге деген құштарлығыңыздан кейінгі сіздің әрекетіңіздің реті төмендегідей болады:

    1. Нансалғыштыашу.
    2. Егер нан бар болса, оны алу.

    3. Нансалғыштыжабу.
    4. Егер нан жоқ болса, онда дүкенге бару.

    5. Нан сатыпалу.

    6. Нандыүйгеалыпкелу.

    7. Нанды үстелге қоюжәнет.б.

    Сіз ерекше көңіл бөлуді қажет ететін жолдар жартылай қою шрифпен белгіленген, яғни, біздің жағдайда сіздің әрі қарай атқаратын әрекеттеріңіздің шарттары берілген.

    Сонымен, сізде бутерброд бар, бірақ әрекеттер ретін баяндауда белгісіздік жағдайы пайда болды. Егер осы баяндауды қатаң сақтасақ, нансалғышта нанның болуына қарамастан және 2- әркетті ойдағыдай орындағанмен, сізге 3,4,5 және 6-әрекеттер ретін орындай отырып, бәрібір дүкенге бару керек болады. Әйтпесе 3-әрекеттен кейін не істеу керектігі түсініксіз болып қалады. Нансалғыштыжабу. Әрине, сіз парасатты адам ретінде әрі қарай не істеу керектігін білесіз. Ал егер осы жағдайда алгоритмді орындау машинаға тапсырылған болса қалай болады?

    Мұндай жағдайда алгоритмнің сипаттамасына кейбір нақтылықты енгізу керек екендігі анық. Біріншіден, бір кездерде әрекеттерді орындау ретінің бұзылуы мүмкін екендігін көрсету керек және сол кезде келесі әрекетті таңдауға болады. Бұл таңдау кейбір шарттарды ( нансалғышта нан бар ма) орындауға (немесе орындамауға) байланысты болады. Екіншіден, қандай да бір нәтижені таңдау барысындағы кезекті әрекеттің нақты қандай болатындығын көрсету қажет. Жағдайды таңдау белгісі болып «егер» сөзі қызмет етеді, ол шартты енгізеді (нан бар). Бірақ нанның болмау мүмкіндігіне байланысты алгоритмде тағы бір «егер» болуы мүмкін, ол қарама қарсы шартты енгізеді (нан жоқ). Бұл жағдайларда шатаспас үшін, әдетте, екінші шартты «әйтпесе» сөзімен алмастырады:

    1. Нансалғыштыашу.
    2. Егер нан бар болса, оны алу.

    3. Нансалғыштыжабу.
    4. Әйтпесе дүкенге бару.

    5. Нан сатыпалу.

    6. Нандыүйгеалыпкелу.

    7. Нанды үстелге қоюжәнет.б.

    Осылайша, «егер» сөзі енгізілген бірінші шарт негізгі болып есептеледі. Осы шарттардың орындалу немесе орындалмауына байланысты сіз не 3-әрекетке немесе 4,5,6-әрекеттерге өтесіз.

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

    Кейбір шарттардың орындалуына байланысты әрекеттің бірнеше нұсқаларының біреуіне ғана таңдау жүргізетін алгоритмдер тармақталғаналгоритмдернемесе шарттыалгоритмдердеп аталады.

    Әрбір тармақ қай жерден басталып, қай жерден аяқталады? Егершартын орындау барысында алгоритмдегі әрекеттің реті қалай жазылса, солай орындалады, себебі оны бұзуға негіз жоқ. Сіз бірінші тармақты құратын әрекетті орындайсыз. Ол қай жерде аяқталады? Ол Егершарты қарастырған әрекетте аяқталады, яғни, екінші Әйтпесешартының алдында.

    Ал Егер шарты орындалмаса ше? Онда әрекет ретін бұзуға негіз пайда болады. Егершартының орындалуын (дәлірек айтқанда орындалмауын) тексергеннен кейін алгоритмде Әйтпесешартынан кейін тұрған әрекетті орындау басталады, яғни, екінші тармақ әрекеттері.

    Сонымен, Егер шартының орындалуына қарай сіз не бірінші, не екінші тармақтағы әрекеттерді жасайсыз. Ал әрі қарай тағы да түсініксіз: алгоритмді орындауды қай жерден жалғастырамыз, мысалы, бірінші тармақтың 3-әрекетінен кейін бе? Сіз ғой келесі алгоритмнің 7- әрекет екенін, яғни, Нанды үстелге қою керектігін түсінесіз, ал мұндай жағдайда машина не істейді? Ол түсіне алмайды ғой!

    Белгісіздікті шешу үшін алгоритмге алгоритмді жалғастырудан тармақтарды бөлетін арнайы көрсеткішті енгізеді. Әдетте, мұндай нұсқаушы болып Тармақталудың соңы тіркесі табылады. Кез келген тармақтың әрекетін аяқтаған соң, Тармақталудың соңы тіркесін іздеп табу керек және алгоритмді осы тіркестен кейінгі әрекетті орындаудан бастау керек

    Алгоритм келесі түрде көрінеді:

    1. Нансалғыштыашу.
    2. Егер нан болса, оны алу.

    3. Нансалғыштыжабу.
    4. Әйпесе дүкенге бару.

    5. Нан сатыпалу.

    6. Нандыүйгеалыпкелу.
    7. Тармақталудың соңы.

    8. Нанды үстелге қоюжәнет.б..

    Енді алгоритмнің қай тармағының орындалғанына байланысты келесі кезектегі әрекет Тармақталудың соңы тіркесінен кейінгі әрекет болады (8. Нандыүстелгеқою). Тағы да бір тармақталған алгоритмді қарастырып көрелік. Цилиндрлік бұйымдарды диаметрі бойынша сұрыптау қажет делік, және оны екі дүкенге бөлу керек (жәшіктерге, қораптарға). Бұйым конвейрден олардың диаметрін өлшегіш құрылғыға түседі және өлшеу нәтижелеріне қарай басқа құрылғы бұйымдарды сол не басқа дүкенге орналастырады.

    Сұрыптау алгоритмі былай болуы мүмкін:

    1. Бұйымдыөлшегішқұрылғығаорналастыру.

    2. Бұйымдиаметрінөлшеу.
    3. Егер диаметр мөлшерден артық болса, онда бұйымды №1 дүкенге жібереді.

    4. Әйтпесебұйымды2дүкенгежібереді.
    5. Тарамақталудың соңы.

    Бұл алгоритмді орындаушы адам болуы да, машина болуы да мүмкін ( мысалы, робот). Егер мұндай алгоритмді орындау машинаға жүктелсе, онда оның нұсқауды түсінетіндігіне ғана емес, таңдау жасай білетіндігіне де сенімді болу керек, яғни, машинаның Егер шартының орындалғандығын анықтауға қабілетті техникалық құралы болуы керек. Біздің жағдайда машина тек қана бұйымның диаметрін өлшеп қоймай, сонымен бірге оны міндеттелген диаметрмен салыстыруы керек және салыстыру нәтижесі бойынша бұйымды қай дүкенге орналастыру туралы шешім шығаруы тиіс.

    Адамның қатысуынсыз жұмыс жасайтын автоматты жүйеде әртүрлі мәселелер туындаған жағдайда әрекет нұсқаларын таңдауға машинаның өзіне шешім шығаруға тура келеді, сондықтан мұндай жүйелерде тармақталған алгоритмдер жиі пайдаланылады. Бір немесе бірнеше әрекет нұсқаларының ішінен біреуін ғана таңдау қажет болған кез келген жағдайды әрдайым алгоритмнің бір немесе бірнеше тармақтарына түйстіруге болады.
        1. 1   2   3   4


    написать администратору сайта