- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •1. Пәннің оқу бағдарламасы - syllabus
- •1.1. Оқытушы жөнінде мәліметтер:
- •1.2. Пән бойынша мәліметтер:
- •1.3. Осыған дейінгі пәндер тізімі: Информатика, Математикалық талдау, Алгебра және геометрия, Математикалық логика.
- •1.4. Шектес пәндер тізімі: Сандық әдістер, Бағдарламалау тілі, Компьютерде тәжірибе
- •1.5. Пән мақсаты:
- •1.6. Пән бойынша берілген тапсырмаларды орындау және тапсыру графигі
- •11. Рашбаев ж.М. Массивті реттеу алгоритмдерін программалау. Оқу және методикалық әдебиеттер жөніндегі Республикалық баспа кабинеті. Алматы-1991 ж.
- •1.8. Бағалау ақпараттары
- •1.9. Курс саясаты және процедурасы
- •2. Пән бойынша оқу-әдістемелік кешен материалдары
- •2.1. Курстың тақырыптық жоспары
- •2.2. Дәріс сабақтар
- •1 Дәріс тақырыбы: Алгоритмдер. Алгоритмдерді талдау. Алгоритмдер құру.
- •2 Дәріс тақырыбы: Программа құру тілі. Программа құрылымы. Енгізу және шығару командалары.
- •3 Дәріс тақырыбы: Есептің қойылымы. Математикалық моделін тұрғызу. Алгоритмін құру. Есепті компьютерде шешу. Проектіні тексеру.
- •4 Дәріс тақырыбы: Циклдік алгоритм. Цикл түрлері. Цикл құрылымы.
- •5 Дәріс тақырыбы: Берілгендердің символдық типі. Жолдық тип.
- •6 Дәріс тақырыбы: Берілгендердің фундаментальді типі. Массив, жазба және жиынның қойылымы.
- •7 Дәріс тақырыбы: Рекурсивті алгоритмдер.
- •Мұндай рекурренттік қатынас п- факториалды санының рекурсивтік есептеу алгоритмін шамалайды.
- •8 Дәріс тақырыбы: Қосалқы программа. Функция. Процедуралық тип.
- •9 Дәріс тақырыбы: Ақпараттық құрылым. Сызықты тізім.
- •10 Дәріс тақырыбы: Ақпараттық құрылымдар. Стектер, кезектер.
- •1 Сурет
- •2 Сурет
- •4 Сурет
- •5 Сурет
- •11 Дәріс тақырыбы: Тізбекті үлестіру. Байланысқан үлестіру.
- •12 Дәріс тақырыбы: Бірбағытталған және екібағытталған байланысқан тізімдер. Көрсеткіштер.
- •13 Дәріс тақырыбы: Ақпараттық құрылым. Ағаш. Ағаштардың қойылымы.
- •14 Дәріс тақырыбы: Көпбайланысқан құрылымдар. Жадыны динамикалық бөлу.
- •15 Дәріс тақырыбы: Ішкі сұрыптау алгоритмдері: таңдау, қосу. Тікелей таңдауға талдау.
- •16 Дәріс тақырыбы: Ішкі сұрыптау алгоритмдері: Екілік қосылымға талдау жасау.
- •17 Дәріс тақырыбы: Көпіршікті және шейкерлік сұрыптауды талдау.
- •18 Дәріс тақырыбы: Бөліп алу көмегімен сұрыптау.
- •19 Дәріс тақырыбы: Медиананы табу.
- •20 Дәріс тақырыбы: Сызықты іздеу.
- •21 Дәріс тақырыбы: Екілік іздеу.
- •22 Дәріс тақырыбы: Қатарда іздеу. Кнут - Моррис - Пратт алгоритмі.
- •23 Дәріс тақырыбы: Қатарда іздеу. Боуер-Мура алгоритмі.
- •24 Дәріс тақырыбы: Жолды өңдеу алгоритмі. Рабин алгоритмі.
- •25 Дәріс тақырыбы: Қайталанбалы алгоритм.
- •26 Дәріс тақырыбы: Қайталанбалы алгоритм. Аттың жүрісі туралы есеп.
- •27 Дәріс тақырыбы: Программалаудың кейбір фундаментальді әдістері. Программаны құрастырудың технологиясы және таралуы.
- •28 Дәріс тақырыбы: Есептеуді тиімдеу. Программаны жөндеу және тестілеу әдістемесі.
- •29 Дәріс тақырыбы:
- •30 Дәріс тақырыбы: Объектіге-бағытталған программалау.
- •2.3. Зертханалық сабақ жоспарлары
- •Алгоритм. Қасиеттері. Алгоритм қойылымы.
- •2.4. Оқытушы жетекшілігімен жүргізілетін студенттердің өзбетіндік жұмысы
- •Орындаушы тәжірибе аяқталғаннан кейін шығыс ақпаратын немесе екі хабардың бірін береді.
- •65387 Санында – 5 цифр !
- •Тақырыбы: Ағаш. Ағашты қалыптастыру. Қалыпты ағашты құру.
- •Ноталардың дыбысталу жиілігі
- •Студенттердің өзбетіндік жұмыс жоспары
- •Тақырыбы: Берілгендер. Берілгендер типі, тұрақты және айнымалы. Өрнектер.
- •Тақырыбы: Динамикалық ақпаратты құрылым. Ағаш.
- •Тақырыбы: Ішкі жолдарды іздеу. Текстке сөз енгізу.
- •Тақырыбы: Ішкі сұрыптау алгоритміне программа құру.
- •Тақырыбы: Сұрыптау алгоритмі
- •Тақырыбы: Массивті сұрыптау алгоритмінің таралымы
- •Тақырыбы: Файлдық тип. Тексттік файлдар.
- •Тақырыбы: Файлмен жұмыс
- •Тақырыбы: Кіру және шығу файлдарымен жұмыс.
- •Тақырыбы: Файлдарды сұрыптау және последовательностей
- •Тақырыбы: Кнут-Морис- Пратта алгоритмін қолдану
- •Тақырыбы: Поиск подстроки в строке
- •Тақырыбы: Манипулирование строками
- •Тақырыбы: Рекурсивті алгоритмдердің таралымы. Лабиринт есебі.
- •Тақырыбы: Рекурсивті алгоритмдер құрастыру.
- •2 Мысал:
- •Тақырыбы: Мәтіндік режимде экранды басқару. Crt модулін қою.
- •2 Мысал: Күн жүйесінің динамикалық моделі.
- •2.6. Курс бойынша жазба жұмыстарының тақырыптамалары
- •Курстық жұмыс және проектілер тақырыптамалары
- •Алгоритм дегеніміз -
- •B) Тізбектелген, циклдық, тармақталу
- •Мазмұны
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
13 Дәріс тақырыбы: Ақпараттық құрылым. Ағаш. Ағаштардың қойылымы.
Біздің көзіміз жеткендей тізбектер мен тізімдерді былайша анықтау ыңғайлы: Т базалық типті тізбек (тізім) бұл:
1
)
немесе бос тізбек (тізім);
2) Т типті элементті тіркестіру (біріктіру) және Т базалық типті кейбір тізбектер.
Құру принциптерін анықтау үшін, атап айтқанда итерация немесе еріп жүру, бұл жерде рекурсия пайдаланылады. Итерация немесе еріп жүру өте жиі кездеседі.
Оларды әдетте деректер құрудың және программа бағытының фундаменталдық бейнесі деп есептейді.
Алайда оларды тек қана рекурсияның көмегімен (кері дұрыс емес) анықтауға болатынын барлық уақытта есте ұстаған жөн, сонымен бірге рекурсия сияқты едәуір күрделі құрылымдарды анықтау үшін тиімді және ретімен қолдануға болады.
Ағаш жақсы таныс мысал бола алады. Ағашты былайша анықтаймыз:Т базалық типі бар ағаш бұл:
1) бос ағаш;
2) немесе соңғы саны кіші ағаш деп аталатын Т базалық типі бар кейбір ағаштар онымен байланысты Тс типті кейбір төбе.
і
1-сурет. Ағаш түріндегі құрылымды
көрсету:
а — енгізілген
жиын;
б —
енгізілген жақшалар;
в —
шегіністер; г- граф
Сондықтан тізбекті (тізімді) кей кезде өзгеше ағаш деп атайды.
Ағаштың құрылымын бейнелеудің бірнеше тәсілі бар. 1-суретте мұндай құрылымның бірнеше мысалы берілген, онда Т базалық типі -әріптер жиыны. Бұл схемалар сол бір құрылымға жатады, демек эквивалентті. Графа (баған) түрінде берілген және тармақталуды айқын көрсететін құрылым белгілі бір себептермен жалпы қолданылатын ағаш терминінің пайда болуына әкелді. Алайда ағашты аударып салу немесе тек қана оның тамырын осылай бейнелеу таңдандырады. Неде болса соңғы түсіндіру де шатастырады, өйткені жоғарғы төбені (А) әдетте түбір деп атайды.
Реттелген ағаш – бұ қабырғалары (бұтақтары) (әрбір төбеден шығатын) реттелген ағаш. Сондықтан 2–суреттегі екі реттелген ағаш бұл әртүрлі бір бірінен айырмашылығы бар объектілер. х төбесінен тікелей төмен орналасқан у төбесі х-тың тікелей ұрпағы болып табылады, егер х і деңгейінде орналасса, онда у і+1 деңгейінде жатыр дейді. Және керісінше, х төбесін у-дың (тікелей) арғы түбі деп атайды. Ағаштың түбі 0 деңгейінде болады деп есептеледі. Ағаштың қандай да бір төбесінің ең жоғарғы деңгейі оның тереңдігі немесе биіктігі деп аталады.
2-сурет. Екі әртүрлі қос ағаш.
Егер элементтің ұрпақтары болмаса, онда оны терминалды төбе немесе жапырақ деп атайды, ал терминалды емес төбені ішкі деп атайды. Ішкі төбенің тікелей ұрпақтарының саны оның дәрежесі деп аталады. Барлық төбелердің ең жоғарғы дәрежесі ағаштың дәрежесі. Түбірден х төбесіне өтуге тиіс бұтақтардың немесе қабырғалардың саны х-қа баратын жолдың ұзындығы деп аталады. Түбірдің 0 жолы бар болады, оның тікелей ұрпақтары ұзындығы 1 жолға ие болады және т.б. Жалпы төбе і деңгейінде жолдың і ұзындығына ие болады. Барлық ағаштың жолының ұзындығы ішкі жолдың ұзындығының сомасы ретінде анықталады.
Енді ағашты беру проблемасы туралы. Тармақталу терминдерінде мұндай рекурсивті құрылымдарды беруге тырысу тікелей сілтемелерді пайдалануға әкелетіні анық. Ағаштың белгіленген құрылымы бар айнымалыларды суреттемеген дұрыс екендігі де анық, мұның орнына біз төбелері белгіленген құрылымдары бар айнымалалыр сияқты суреттейтін боламыз, яғни олардың типтері белгіленетін болады және ағаштың дәрежесі кіші ағаштардың төбелерін көрсететін сілтеме компоненттердің санын анықтайтын болады. Бос ағаштарға сілтеме NIL мәнімен белгіленетін болады. Осылайша, 3-суреттегі ағашты 4-суреттегідей беруге болады, ал оның компоненттерінің осындай типі болады:
TYPE Ptr = ^Node;
TYPE Node = RECORD op: CHAR;
left, right: Ptr
END;
