- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •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) Тізбектелген, циклдық, тармақталу
- •Мазмұны
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
3 Дәріс тақырыбы: Есептің қойылымы. Математикалық моделін тұрғызу. Алгоритмін құру. Есепті компьютерде шешу. Проектіні тексеру.
ЭЕМ-ң көмегімен есептерді шешуге дайындау процесінде бірнеше кезеңді ерекшелеуге болады:
Математикалық модель құруды қамтитын есептің қойылуы (есептің математикалық қойылуы).
Есепті шешудің алгоритмін жазу.
Прорамманы құрастыру.
Программаны жөндеу.
ЭЕМ-де есепті шешу және нәтижелерді талдау.
Есептің қойылуы
Алғашқы деректердің, есеп шарттарының және оны шешу мақсаттарының дәл сипатталуы есептің математикалық қойылуы деп аталады.
Есеп қойылғанда алғашқы және қажетті деректерді анықтап, атап өту керек, қандай нәтижелер және қандай жағдайда алу қажет екенін айқын түсіну керек. Зерттеу объектісі математикалық терминдерде сипатталады, алғащқы деректер мен қажетті нәтижелер арасындағы байланыс белгіленеді (көбіне формулалардың көмегімен), бұл нақты объектіні зерттеу математикалық зерттеуде түйістіреді.
Егер есеп математикалық болса, формулалары, шешу әдісі, математикалық қойылуы айқын болса, бұл кезеңнің орындалуы қажет болмауы да мүмкін. Іс жүзінде ЭЕМ айтарлықтай айтарлықтай күрделі есептерді шешу үшін жиі қолданылады, сондықтан есептердің қойылу кезеңі едәуір күш салуды, уақытты талап етуі мүмкін. Мұндай есептердің мысалы оқу кестесін құрастыру, өнеркәсіп өндірісінің дамуы нәтижесінде ауа райы өзгеруін болжау, табиғи ресурстарды тиімді пайдалану, экология мәселелері бола алады. Бұл жерде математиаклық символиканы барлық уақытта пайдалану шарт емес, бірақ ойды математикаға тән қатаңдықпен жеткізу қажет. Есептің дәл және нақты қойылуы – есепті жартылай шешу деген сөз.
Есеп шығару алгоритмі
Есепті шешу әдісі шын мәнісінде есептің қойылуында көрсетілген. Бірақ егер тәсілдер сипаттамасында формулалар кез келген тәртіпте жазылуы мүмкін болса, алгоритмдерде айнымалылардың әрқайсысы өз мәнін оны басқа операцияларда қолданғанша иемденуі керек.
алг есептеу (арг зат R1, R2, нәт зат S)
басы зат S1, S2
енгізу R1, R2
егер R1<R2 немесе R1<0 немесе R2<0
онда шығару “шешімі жоқ”
әйтпесе S1:=р*R12; S2=p*R22; S:=S1-S2; шығару S
бітті
соңы
Алгоритм алгоритмдік тілде жүзеге асуы мүмкін. Ол сөздік түрінде немесе графикалық көрсетілімде болады.
Программаны құрастыру
Әрбір ЭЕМ-ң машиналық командаларының өз тілі болады және тек сонымен жазылған программаларды орындай алады. Сандар тілі бола тұра, машиналық тіл программалауға жарай бермейді, өйткені программистен программаны жазу және жөндеу үшін көп уақыт талап етеді. Осы себептен Паскаль және т.б. программалау тілдері кеңінен тараған. Алгоритмді программалау тілінде жазу операциясы кодтау деп аталады. Деректерді ЭЕМ-ге енгізу ережелерін, жұртқа ақпаратты көсету пішінін ғана ойластыру қажет. Программаны безендіру үшін машиналық графиканың, дыбыстық сүйемелдеудің құралдарын қосу керек.
алг есептеу (арг зат R1, R2, нәт зат S)
басы зат S1, S2
енгізу R1, R2
егер R1<R2 немесе R1<0 немесе R2<0
онда шығару “шешімі жоқ”
әйтпесе S1:=р*R12; S2=p*R22; S:=S1-S2; шығару S
бітті
соңы
Программаны жөндеу
Жөндеу кезеңінің негізгі мақсаты-программадағы қателерді табу және түзету.
Қазіргі салыстырулар бойынша программаны жөндеу программист оны өңдеуге арналған уақыттың 20-дан 40 % дейін жұмсайды. Сондықтан программа жөндеудің тәсілдері мен құралдарын меңгеру өте маңызды. Программаны іске асыру барысында пайда болатын қателер синтаксистік және логикалық (алгоритмдік) болады. Алгоритмдерді программалау тіліне аударғанда жіберілген синтаксистік қателердің көпшілігі ЭЕМ-мен автоматты түрде айқындалады. Қазіргі заманғы ЭЕМ-дері қателер жөніндегі ақпаратты программа мәтінімен қоса шығарады, олардың орындарын және мінездемесін көрсетеді. Есептерді шешудің логикасы бұзылғанда пайда болатын алгоритмдік қателер қате нәтиже алуға, программаның аяқталмай қалуына, оның авариялық аяқталуына әкеледі. Алгоритмдік қателерді тауып, түзету анағұрлым күрделі.
Тест немесе бақылау мысал бүкіл ауқымда мүмкін алғашқы деректердің жұмыс істеуінің дұрыстығын тексереді. Әр тест нәтижелері белгілі алғашқы деректер жиынтығы болуы мүмкін. Тестті қате жіберу фактісін анықтауға ғана емес, оны ушықтырмай, программаның қатесі бар бөлігін табуға көмектесетіндей етіп таңдап алу керек.
Есептерді ЭЕМ-де шығару және нәтижелерді талдау
Тест есебімен айқындалған қателерді жойғаннан кейін, берілген есептің алғашқы деректері дайындалып, ЭЕМ-ге енгізіледі. Шешу нәтижесінде алынған шығыстық деректер (нәтижелер) есепті қоюшымен талданады, өңделеді (графиктер, кестелер сызады). Талдау негізінде тиісті шешімдер, кепілдемелер жасалады.
