- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •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) Тізбектелген, циклдық, тармақталу
- •Мазмұны
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
5 Сурет
Компоненттерді кезекке қосу кезектің соңына жүргізіледі (6-сурет):
6-сурет.
Келесі компонентті қосу осылайша жүргізіледі.
Кзектен компонентті таңдау кезектің басынан бастап жүзеге асырылады, сонымен бір мезгілде компонент кезектен шығарылады. ЭЕМ жадында үш элементтен тұратын кезек қалыптастырылды деп алайық:
7-сурет.
Компонентті таңдау келесідей операторлармен орындалады:
Dl:=pBegin^.D;
pBegin:=pBegin^.pNext;
8-сурет.
11 Дәріс тақырыбы: Тізбекті үлестіру. Байланысқан үлестіру.
Программалауда көбінесе алгоритмді орындау процесінде ауысып отыратын жиындармен жұмыс жасауға тура келеді. Өзгермелі (динамикалық) жиындарды сақтауға арналған деректер құрылымын қарастырамыз.
Түрлі алгоритмдер түрлі операцияларды пайдаланады. Мысалы, тек қана жиынға элементтер қосу және алып тастау, сондай-ақ осы элементтің жиынға тиістілігін тексеру талап етіледі. Мұндай операцияларды қолдайтын деректер құрылымы сөздік деп аталады. Басқа жағдайларда барынша күрделі операциялар қажет болуы мүмкін. Мысалы, артықшылығы бар кезектер ең кіші элементті (элементтер қосудан басқа) таңдауға және алып тастауға мүмкіндік береді, рұқсат етеді. Динамикалық жиынды жүзеге асыруды таңдау онымен қандай операциялар жасау қажет етілетініне байланысты екені түсінікті.
Деректердің сызықтық құрылымын беру жадыны тізбекті үлестіру әдісінің көмегімен суреттеледі. Бұл әдіс белгілі бір қолданбаларда жарамды болса да, бұл әдісті қолдану қанағаттанарлықсыз нәтижелерге жеткізетін есептердің үлкен тобы бар. Осы топтың есептерінің әдетте мынадай ерекшеліктері болады.
1. Жадының өлшеміне қойылатын талаптардың жоғарылығы. Мұндай түрдегі программаларда деректерді сақтау үшін қажетті жадының дәл өлшемі көбінесе өңделетін деректердің нақты түріне байланысты болады, демек, программаны жазу кезінде оңай анықталмайды.
2. Деректермен жасалатын күрделі операциялардың көптігі. Бұл түрдегі программаларда деректермен енгізу және шығарып тастаудың көптеген операциялары орындалады.
Жадыны байланысқан үлестіру әдісі есептеуіш машинаның уақытын үнемдеуге де, жадыны барынша тиімді пайдалануға да мүмкіндік береді. Сондықтан осы тарауда деректердің сызықты құрылымдарына сәйкес байланысқан үлестіру ұғымы енгізіледі.
Деректердің құрылымы тізбектеп ұсынған кезде сызықтық реттелген, және реттің бұл қатынасы тізбекті үлестіру принципін қолдану нәтижесінде жадының сәйкес құрылымында сақталды. Әрбір элемент үшін одан кейінгі элементтің жағдайын арнайы анықтау қажеттілігі болмады.
Түрлі ұзындықтағы элементтерден тұратын тізімді қарастырамыз. Ерікті элементтің адресін тура есептеумен алу есебі бірден барынша күрделене түседі. Тізімнің торабының (элементінің) адресін алудың анық тәсілі осы адресті жадыда сақтау болып табылады. Адрестеудің бұл тәсілі нұсқағыштардың көмегімен адрестеу немесе сілтемелі адрестеу деп аталады. Егер қарастырылып отырған тізім п тораптардан тұрса, онда әрбір тораптың адресін ұзындығы п векторда сақтауға болады. Вектордың бірінші элементі тізімнің бірінші торабының адресін, ал екінші элементі – екінші тораптың адресін және т.б. қамтиды.
Бірқатар қолданбалар негізінен үздіксіз жаңартылып отыратын (енгізілетін, шығарылатын және т.б.) деректермен жұмыс жасайды. Барлық жағдайда өзгеріс деректермен жасалатын барынша күрделі операциялармен байланысты. Кейбір жағдайларда деректерді тізбектеліп ұйымдастырылған тізімдер түрінде беру жадыны тиімсіз пайдалануға, машина уақытын жоғалтуға әкеліп соқтырады, ал басқа есептер үшін бұл көрсетім мүлдем қолданылмайды.
Нұсқағышты адрес сияқты интерпретациялау барынша қарапайым болады. Компьютерлердің көпшілігінде адрестер орындауға жататын келесі команданы және оның операндасын (операндаларын) табу үшін қолданылады. Көптеген аппаратуралық жүзеге асыруларда мұндай адрестерді сақтау үшін арнайы регистрлер қолданылады.
Нұсқағыштар барлық уақытта бірдей ұзындықта болады және бұл олар қамтитын құрылымның, сілтеменің сипаттамасына қарамастан жадыны үлестірудің қарапайым әдістерінің көмегімен нұсқағыштармен операцияларды орындауға мүмкіндік береді.
Жадыны тізбектеп үлестіру кезінде кез-келген элементтің адресін егер жадының құрылымы белгілі және толық анықталған түрге ие болған жағдайда ғана есептеуге болады. Нұсқағыштар оның ұйымдастырылуына қарамастан құрылымға сілтеме жасауға мүмкіндік береді. Басқаша айтқанда нұсқағыштар сызықтық реттің қатынасына қарағанда құрылымның элементтері арасында барынша күрделі қатынастарды беруге мүмкіндік береді.
Деректердің сызықтық-реттелген құрылымының элементтеріне ауысу кезінде нұсқағыштарды немесе сілтемелерді пайдалану сызықтық реттілік мағынасында аралас элементтер жадының аралас учаскелерінде міндетті емес физикалық орналасатынын білдіреді. Үлестірудің бұл түрі байланысқан деп аталады.
