1-лекция. Алгоритмдештирүүнүн негиздери PDF
Document Details
Tags
Summary
Бул документ алгоритмдер, алардын касиеттери жана алгоритмдерди берүүнүн ар түрдүү ыкмалары жөнүндө маалымат берет. Негизинен маалыматтар университеттик деңгээлдеги окуу программасына арналган.
Full Transcript
**Лекция №1** **Тема: Алгоритмдештирүүнүн негиздери** **План:** - ***Алгоритм жана анын касиеттери.*** - ***Алгоритмди берүү ыкмалары.*** - ***Алгоритмдин типтери.*** 1. ***Алгоритм жана анын касиеттери.*** Көздөгөн максатка жетүүгө же коюлган маселени чечүүгө багытталган аракеттердин...
**Лекция №1** **Тема: Алгоритмдештирүүнүн негиздери** **План:** - ***Алгоритм жана анын касиеттери.*** - ***Алгоритмди берүү ыкмалары.*** - ***Алгоритмдин типтери.*** 1. ***Алгоритм жана анын касиеттери.*** Көздөгөн максатка жетүүгө же коюлган маселени чечүүгө багытталган аракеттердин ырааттуулугун ишке ашыруу үчүн аткаруучуга берилген түшүнүктүү жана так буйрук ***алгоритм*** деп аталат. "Алгоритм" термининин келип чыгышы орто кылымдагы чыгыштын улуу окумуштуусу Мухаммед ибн Муса ал-Хорезминин (Хорезмдик Муса уулу Мухаммед) ысымы менен байланыштуу. Ал көп орундуу сандар менен арифметикалык эсептөөлөрдү аткаруунун ыкмаларын сунуштаган. Кийин Европада бул ыкмалар окумуштуунун атынын латын формасында **algorithmi** жазылышынан алгоритм деп аталып калган. Адегенде алгоритм көп орундуу сандардын үстүнөн жүргүзүлгөн арифметикалык төрт амалдарды аткаруунун эрежелерин гана түшүнүшкөн. Кийин бул түшүнүктү коюлган маселенин чыгарылышына алып келүүчү амалдардын удаалаштыгын белгилөө үчүн колдоно башташкан. Азыркы убакта алгоритм түшүнүгү арифметикалык эсептөөлөр менен эле чектелбестен, кеңири мааниде түшүнүлөт. Ошентип, алгоритм түшүнүгү ЭЭМ пайда боло электе эле келип чыккан, бирок бул түшүнүк азыркы автоматтардын жана роботтордун доорунда кеңири тарады. Мектеп информатикасында алгоритмге дагы мындай аныктама берилген: *алгоритм -- бул алгачкы маалыматтан изделүүчү натыйжага алып келүүчү командалардын чектүү ырааттуулугунан турган аткаруучуга берилген так жана түшүнүктүү буйруктар.* Бул аныктамада алгоритмге байланышкан негизги түшүнүктөр жана анын башкы касиеттери камтылган. Түшүнүктөдүн өз ара байланышы төмөнкү сүрөттө чагылдырылган. *Алгоритмдерди аткаруучунун аракеттеринин схемасы*. Алгоритм эреже катары сүйлөм, текст же схема түрүндө келтирилет. Бул текст кагазга жазылат же атайын белгилерди колдонуу менен компьютердин эсине киргизилет. Ар кандай алгоритм конкреттүү аткаруучунун мүмкүнчүлүктөрүн эске алуу менен түзүлөт. Алгоритмдин аткарылышы үчүн аткаруучу жүзөгө ашыра албаган командаларды койбош керек. Кандай гана толук инструкция болбосун, ашпозчуга токардын ишин тапшырууга болбойт. Ар бир аткаруучунун өзү аткара ала тургандай командаларынын тизмеги болот. Мындай тизмек алгоритмди аткаруучунун командалар системасы (АКС) деп аталат. Компьютерди алгоритмди аткаруучу катары пайдалануу үчүн алгоритмдерге бир канча талаптар коюлат. Адамдардан айырмаланып комьютер так аныкталган операцияларды гана аткаргандыктан машиналык алгоритмдер төмөнкү ***касиеттерге*** ээ болууга тийиш: 1. **Алгоритмдин түшүнүктүүлүгү деп, аткаруучуга түшүнүктүү болгон көрсөтмөнү айтабыз.** 2. **Дискреттүүлүк деп, алгоритмдерди адам же машина аткара алышы эч күмөн болбогон айрым элементардык аракеттерге бөлүү мүмкүндүгүн түшүнөбүз.** 3. **Алгоритмдин массалуулугу деп, маселенин жалпы коюлушуна жооп берүүчү конкреттүү маселелердин бүтүндөй классын чечүүгө колдонууну айтабыз.** 4. **Алгоритмдин чектүүлүгү деп, алгоритмдин ишинин жалпысынан чектелген кадамдардын ичинде аякталышын түшүнөбүз.** 5. **Натыйжалуулук касиети деп, бардык учурларда алгоритмди аткаруу натыйжасын көрсөтүү мүмкүнчүлүгү түшүнүлөт.** 2. ***Алгоритмди берүү ыкмалары**.* Мектеп информатикасында алгоритмдерди жазуунун үч ыкмасы каралат: ***1) Табигый тилде; 2) Блок схема түрүндө; 3) Алгоритм тилинде.*** Биз буга чейинки келтирген мисалдардын баары табигый тилде түзүлгөн алгоритмдер болду. Эми блок -- схема түрүндө жана алгоритм тили аркылуу сыпатталышына токтолобуз. **Алгоритмдерди берүүнүн графикалык ыкмасы.** Алгоритмдин көрсөтмөлүү графикалык сүрөттөлүшүн схема деп атайбыз. Анын айрым аракеттери (этаптары) ар кандай геометриялык фигуралар (блоктор) менен, ал эми этаптар арасындагы байланыш бул фигураларды бириктирген жебелердин жардамы менен көрсөтүлөт. Мындай схемаларды кээде блок -- схемалар деп аташат. Алар компьютерде аткарылуучу кадамдарды жана аларды аткаруунун ырааттуулугун чагылдырат. Алгоритмдердин ар түрдүү кадамдарын блок -- схемада сүрөттөө үчүн ар кандай формадагы фигуралар колдонулат. Алгоритмдин башы жана аягы сүйрү айлананын жардамы менен көрсөтүлөт. Сүйрү айлананын ичине "башы" же "аягы" деп жазылат. Кандайдыр бир аракетти аткаруунун инструкциясы тик бурчтуктун ичине жайгашат. Ал эми маалыматтардын анализинин жыйынтыгына жараша аракеттердин андан ары кайда баруу жолун аныктаган тандоо блогу ромб түрүндө берилет. Шарттын өзү ромбдун ичине жазылат. Эгер текшерилүүчү шарт аткарылса, б.а. "чындык" маанисине ээ болсо, анда "ооба" деген жебе боюнча кийинки этап аткарылат. Эгер шарт аткарылбаса, анда "жок" деген жебе аркылуу өтүү жүрөт. Мурда түзүлгөн жана өзүнчө сыпатталган алгоритмдер менен программалар (т.а. камтылган программалар) каптал сызыктары бар тик бурчтук түрүндө сүрөттөлөт. Мындай "кош" тик бурчтуктун ичинде камтылган алгоритмдин аталышы, анын аткарылышы үчүн зарыл параметрлер көрсөтүлөт. Баштапкы маалыматтарды киргизүү жана жыйынтыктарды чыгаруу паралелограмм түрүндө сүрөттөлөт. Анын ичинде "киргизүү" же "басуу" деген сөз жазылат жана киргизүүгө же чыгарууга тийиштүү өзгөрмөлөрдүн тизмеси берилет. Жебе менен алгоритмдин мүмкүн болгон жолдору сүрөттөлөт, ал эми кичине тегерекчелер менен беттеги ошол жолдордун үзүлүштөрү көрсөтүлөт. Түшүндүрмө текст блоктун ичине батпай калган учурда комментарийлер колдонулат. Блок-схеманын негизги жетишкендиги -- алгоритмдик структураны көрсөтмөлүү түрдө бергендигинде болуп саналат. Ал абдан татаал алгоритмди да "жай-жайына" кое алат. Бирок бул сапат блок-схема стандарттык ыкма менен жүргүзүлгөн учурунда гана көрүнөт. **Алгоритмдин схемаларындагы графикалык шарттуу белгилер.** +-----------------------+-----------------------+-----------------------+ | Аталышы | Белгилениши | Түшүндүрмө | +=======================+=======================+=======================+ | 1. Башы -- аягы | | | +-----------------------+-----------------------+-----------------------+ | 2. Процесс | | Аракеттер, эсептөө | | | | операциялары | +-----------------------+-----------------------+-----------------------+ | 3. Чечим | | | +-----------------------+-----------------------+-----------------------+ | 4. Алдын ала | -- -- -- | Программа, | | аныкталган | | стандарттык камтылган | | процесс | -- -- -- | программа | +-----------------------+-----------------------+-----------------------+ | 5. Киргизүү -- | | Жалпы түрдөгү | | чыгаруу | | киргизүү - чыгаруу | +-----------------------+-----------------------+-----------------------+ | 6. Бириктиргичтер | | Беттеги, барактардагы | | | | сызыктардын үзүлүшү | +-----------------------+-----------------------+-----------------------+ | 7. Комментарий | \_\_ \_\_ Түшүндүрмө | | | | | | | | текст | | +-----------------------+-----------------------+-----------------------+ *Алгоритм тили* -- алгоритмди сыпаттап жазуунун тексттик формасы. Ал блок -- схемага караганда программалоо тилине жакын. Бирок бул али программалоо тили эмес. Ошондуктан алгоритм тилинде катуу талаптуу синтаксис жок. Алгоритмдерди аткаруу жана бир калыпта так жазуу үчүн кабыл алынган белгилөөлөрдүн жана эрежелердин системасы **алгоритм тили** деп аталат. *Алгоритм тилинин жалпы структурасы төмөндөгүдөй:* **алг** \ **башы** \ **аягы** Алгоритм тилинде жазганда анын башталышы **алг** деген кызматчы сөз- дөн турат. Андан кийин автор өзү ойлоп тапкан алгоритмдин аталышын бе- рет. Алгоритмдин телосу **башы** деген кызматчы сөз менен башталып, **аягы** деген сөз менен бүтөт. Алгоритмдин телосу аткаруучу үчүн командалардын ырааттуулугун көрсөтөт. Алгоритм тилинде алгоритмдеги кызматчы сөздөр айырмаланган шрифт менен жазылат. Алгоритмдин текстин структуралоо үчүн алгоритм тилинде саптык кемтиктер колдонулат. Мында төмөнкү прин- цип сакталат: бир денгээлде салынган бардык конструкциялар бирдей вертикалдык денгээлде жазылат, камтылган конструкциялар сырткысына салыштырмалуу онго жылып жазылат. Бул эрежелерди сактоо алгоритмдин структурасынын көрсөтмөлүүлүгүн жакшыртат. Бирок блок-схемадай көрсөтмөлүүлүктү бере албайт. Алгоритм тилиндеги кызматчы сөздөрдүн тизмеси жана алардын толук берилиши +-----------------------------------+-----------------------------------+ | **Алг** -- алгоритм | **Таб** -- таблица | | | | | **Башы** -- башы | **Цб** -- циклдын башы | | | | | **Аягы** -- аягы | **Ца** -- циклдын аягы | | | | | **Эгер** -- эгерде | **Анык** -- анык | | | | | **Анда** -- анда | **Бтн** -- бүтүн | | | | | **Антп** -- антпесе | **Нат** -- натуралдык | | | | | **Ба** -- бутактануунун аягы | **Лит** -- литердик | | | | | **Азыр** -- Азырынча | **Жый** - жыйынтык | | | | | **Арг** - аргумент | | +-----------------------------------+-----------------------------------+ **3. Алгоритмди жазуунун типтери** *Алгоритмди жазуунун типтери негизинен үчко бөлүнөт. **сызыктуу , тармактуу (шарттуу)** жана **циклдик (кайталоо)** болуп.* ***Сызыктуу алгоритм --** бул аткаруу процессинде командалардын өзгөрүүсүз удаалаш аткарылышы. Сызыктуу алгоритмде алгоритмдин командалары удаалаш жана бир типтүү аткарылат.* *Биз блок-схемадан байкагандай, аракеттер биринин артынан бири удаалаш аткарылууда. Эгер удаалаштык бузулса, анда жыйынтыгынды биз күткөн натыйжаны ала албай калабыз.* ***Тармактуу алгоритм --** бул аракеттердин кандайдыр бир логикалык шарттын аткарылышын камсыз кылуу менен аткарылышы. Тарматуу алгоритмде алгоритмдин командалары шарттын аткарылышын камсыздоо менен жыйынтыкты корсотот, т.а. тарматуу алгоритм шарттан көз каранды.* *Шарт аткарылыш үчүн тармактуу аракеттер көрүлөт. Алар "эгер", "анда", "антпесе" деген кызматчы сөздөрдүн жардамы менен ишке ашырылат.* *Тармактуу алгоритмдин формасы толук жана кыскача түрдө болот.* *ооба* *жок* *Толук формасы* *Кыскача формасы* *ооба жок ооба* *Жогоруда блок-схемалардан көрүнгөндөй, аракеттердин аткарылышы анын шартынан көз каранды экендигин байкадык.* *Мисалга, эгерде Эрболдун досу менен жолугушуу планын алсак анда ал биринчиден аба ырайы ачык болсо, анда Эрбол досу менен парктан жолукмак, антпесе телефон менен байланышат.* *Байкап көргүлөчү, биздин турмушубузда ушундай кырдаалдар кездешеби? Сенин эртенки күнгө пландарың барбы жана ал пландарыңды ишке ашырыш үчүн кандайдыр бир шарт барбы?* ***Циклдик алгоритм --** бул кайталоо аракеттеринин (командаларынын) жардамы менен кандайдыр бир логикалык шарттын аткарылышын камсыз кылуу процесси. Циклдик алгоритмде алгоритмдин командалары шарттын аткарылышы камсыздалмайынча кайталануу менен аткарыла берет.* *ооба жок* *Биз жогоруда байкагандай , шарт аткарылмайынча командалар кайталана берет. Мисалга , соода түйүнүндөгү көрүнүштү алсак, соода түйүнүндөгү кардарлардын бардыгы тейленип бүтмөйүнчө процесс кайталана берет. Себеби, " Кардар барбы?" деген шарт коюлууда. Эгер "ооба" деген жооп болсо , анда командалар удаалаш аткарыла берет, качан "жок" деген жооп болмоюнча.*