- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •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) Тізбектелген, циклдық, тармақталу
- •Мазмұны
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
21 Дәріс тақырыбы: Екілік іздеу.
Егер арасында іздеу жүріп жатқан деректер туралы қандай да бір ақпарат жоқ болса, іздеуді шапшаңдатудың басқа тәсілдері жоқ екені анық. Егер деректер реттелген болса іздеуді едәуір тиімді етуге болатыны жақсы таныс. Көз алдыңызға фамилиялар рет-ретімен орналастырылмаған телефон анықтамалығын елестетіңіз. Бұл мүлдем пайдасыз нәрсе. Сондықтан біз а жиымы реттелген алгоритмді келтіреміз, яғни ол мына шартты қанағаттандырады:
Ak:1≤k≤N:a k-1≤ak
Негізгі идея - кездейсоқ кейбір элементті таңдау, оны aм деп аламыз және х іздеу аргументімен салыстырыңыз. Егер ол х-қа тең болса, онда іздеу аяқталады, ал егер ол х-тан кем болса, онда біз м-нан кем немесе тең индекстері бар барлық элементтерді одан әрі іздеуден шығарып тастауға болады деп тұжырым жасаймыз; егер ол х-тен артық болса, онда м-ға тең немесе артық индекстер алып тасталады. Бұлай ойлау бізді келесі алгоритмге алып келеді (ол қақ ортасынан бөліп іздеу деп аталады). Мұнда L және R екі индексті айнымалылар қажет болып отырған элемент тағы қай жерден табылуы мүмкін болатын а жиымы секциясының сәйкесінше сол және оң соңын атап көрсетеді.
L : = 0 R:= N-1; found := FALSE;
WHILE (L <= R) and (not found) DO BEGIN
m := любое значение между L и R;
IF a[m] = x THEN found := TRUE
ELSE IF a[m] < x THEN L := m+1
ELSE R := m-1
END;
Әрбір қадам алдында орындалатын цикл инварианты, яғни шарты мынадай:
нәтижесі мынадай болады:
одан:
m таңдау алгоритмнің қисындылығы оған байланысты емес болғанда тұрақты. Алайда оның тиімділігіне m таңдауы әсер етеді. Біздің міндетіміз – салыстырудың нәтижесі қандай да болмасын әрбір қадамда алға қарай іздеуден барынша көп элементтер алып тастау екені анық. Оңтайлы әдіс орташа элементті іздеу болады, өйткені кез келген жағдайдажиымның жартысы алып тасталады. Нәтижесінде салыстырмалардың ең жоғарғы саны жақын бүтін санға дейін дөңгелектелген log N тең. Осылайша келтірілген алгоритм сызықтық іздеумен салыстырғанда едәуір ұтады, ондағы салыстырулардың күтілетін саны - N/2.
Тиімділікті шартты операторлардың тақырыптарының орнын ауыстыра отырып біршама жақсартуға болады. Теңдікке тексеруді екінші кезекте орындауға болады, өйткені ол бір рет қана қанағаттандырылады және жұмыстың аяқталуына әкеледі. Келесі пікір барынша елеулі: сызықтық іздеу кезіндегідей аяқталу шартын ықшамдайтындай шешімді іздеуге болмай ма. Біз сәйкестік белгіленген кезде іздеуді аяқтау ниетінен бас тартқан бойда мұндай шапшаң алгоритмді табамыз. Бастапқыда бұл таңқаларлық болуы мүмкін, алайда мұқият қарау кезінде әрбір қадамда тиімділіктегі ұтыс бірнеше қосымша элементтермен салыстыру шығындарынан артық болатыны байқалады. Кері жағдайда қадамдар саны - log N екенін еске саламыз. Шапшаң алгоритм келесі инвариантқа негізделген:
(Ak:0<k<L:ak<x)&(Ak:R<k<N:ak>x),
дегенмен іздеу екі секция жиымды тұтастай «жапқанға» дейін жалғасады.
L := 0; R := N;
WHILE L < R DO BEGIN
m := (L + R) DIV 2;
IF a[m] < x THEN L := m+1 ELSE R := m;
END;
L R аяқталу шарты, бірақ ол қол жетімді ме? Мұның дәлелі үшін біздер барлық жағдайларда R-L айырмасы әрбір қадамда жоятынын көрсетуіміз қажет. Әрбір қадамның басында L < R. Орташа арифметикалық т үшін L т < R шарты әділ. Демек, айырма шындығында жояды, немесе т + 1 мәнін берген кезде L көбейеді, немесе R т мәнін берген кезде кемиді. L = R кезінде циклды қайталау аяқталады. Алайда біздің инвариан пен L = R шарты әлі де сәйкестікті куәландырмайды. Әрине R = N кезінде ешқандай сәйкестік жоқ. Басқа жағдайларда біз a[R] элементі салыстыруларға ешуақытта қатыспайтынын ескеруіміз қажет. Демек, a[R] = х теңдігіне қосымша тексеру қажет. Біздің бірінші шешімімізден айырмашылығы келтірілген алгоритм сызықтық іздеу жағдайындағыдай ең аз элементі бар сәйкес келетін элементті табады.
