- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •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) Тізбектелген, циклдық, тармақталу
- •Мазмұны
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
Мұндай рекурренттік қатынас п- факториалды санының рекурсивтік есептеу алгоритмін шамалайды.
8 Дәріс тақырыбы: Қосалқы программа. Функция. Процедуралық тип.
Практикалық есептерге программа құрғанда үлкен программаның белгілі бір бөлігін әртүрлі мәндер бойынша бірнеше рет қайталанып пайдалануға тура келеді. Мұндай бір типтес программа бөлігін программаның әр бөлігінде қайталап жаза бермеу үшін оны жеке қосалқы программа ретінде бөліп жазған ыңғайлы. Жеке программа түрінде бөлек жазылған, қажет кезінде оған оралып, оны пайдаланып отыруға болатын негізгі программаның арнайы бөлігін қосалқы программа дейді. Қосалқы программаға автоматты түрде енуге және одан шығуға болады. Қосалқы программаны пайдалану төмендегідей мүмкіндіктер береді:
негізгі программаның көлемі кішірейді;
негізгі программада пайдаланылған айнымалыларды қосалқы программада пайдалануға болады;
қосалқы программаға берілген жады ұяшықтарын ол орындалмай тұрғанда бос ұяшық ретінде пайдалануға болады;
қосалқы программаны пайдалану құрылымдық программалауға мүмкіндік береді.
Паскаль тілінде алгоритмдік тіл тәрізді қосалқы программаның екі түрі пайдаланылады. Олар процедура (procedure) және функция (function). Бір программада бір немесе бірнеше процедура және функция пайдаланылуы мүмкін.
Паскаль тілінде процедуралар мен функциялар программаның басында айнымалылар белгіленіп болғаннан кейін жазылады. Негізгі және қосалқы программада бір айнымалы, мысалы, “К” қатар пайдаланылуы мүмкін, бірақ әр программада пайдаланылғанда К-ның физикалық мағынасы бірдей болуы шарт емес. Атау берілген операторлар тізбегін Паскаль тілінде процедура дейді. Яғни: әр қосалқы программаның (процедураның немесе функцияның) атау (аты) болуы керек, қосалқы программаға атау негізінде оралады.
Процедура. Кез келген процедура программаға ұқсас түрде жазылады. Олардың басы, бейнелеу және операторлар бөліктері болады. Процедураны параметрсіз де пайдалануға болады. Екі процедуралық программа схемасы төмендегідей болады.
Program P (input, output)
Ортақ берілгендерді бейнелеу бөлігі
Procedure P1;
Р1-ң процедураларын бейнелеу бөлігі
BEGIN
Р1-ң операторлар бөлігі
END;
Procedure P2;
Р2-ң процедураларын бейнелеу бөлігі
BEGIN
Р2-ң операторлар бөлігі
BEGIN
Негізгі программаның операторлар бөлігі
END.
Программаның орындалуы негізгі программаның операторларының орындалуынан басталады. Негізгі программада әрқашан процедураның орындалуы қажет болғанда ғана процедураға көшеді. Бұл жағдайда берілгендер негізгі программадан процедураға (енетін параметрлер) беріледі. Процедура орындалып болған соң оның нәтижесі (шығатын параметрлер), процедураға негізгі программадан қай жерден көшті, сол жерге береді. Одан соң негізгі программа орындала бастайды.
Негізгі программада хабарландырылған (бейнеленген) атау, негізгі және қосалқы программада да (процедуралар да, функцияларда да) пайдаланылады. Мұндай атаулар ортақ (глобальды) атаулар деп аталады. Қосалқы программада хабарланған атаулар тек сол қосалқы программада ғана пайдаланылады. Мұндай атауларды жергілікті (локальды) атаулар.
Функция. Басқа тілдер тәрізді Паскаль тілінде де функцияны арнайы программа ретінде жеке жазуға болады, сондықтан оны көмекші программа ретінде қарауға болады. Функция-программаның процедура – программаадн ерекшелігі мынада:
функция бір ғана белгілі мән қабылдайды, функция – программадан алынатын нәтиже біреу;
нәтиже функция аты арқылы алынады да, негізгі программада пайдаланылады.
Функция – программаның жазылу түрі:
Функция шынайы параметрлердің мәндері берілгеннен кейін өз аты арқылы шақырылады. Онымен қатар функцияны тікелей өрнектің ішінде шақыруға болады. Процедура мен функция айырмашылықтарын түсіну үшін екі санды қосу программасын процедура және функция түрінде жазайық.
1-мысал. Екі санның қосындысын табаық.
А) Program KR;
Var a:integer;
Procedure KOS (b,c:integer; Var k:integer);
Begin
K:=b+c;
End;
Begin
KOS (15,4,a);
Writeln(‘koc=’,a:2);
End.
B) Program KR;
Var a:integer;
Function KOS (b,c:integer):integer;
Begin
K:=b+c;
End;
Begin
KOS (15,4);
Writeln(‘koc=’,a:2);
End.
Екі программаның нәтижесі бірдей: экранда КОС=19 көрінеді. Сонымен бұл программаларды салыстырғаннан мынаны анықтадық:
процедура мен функцияның ұқсастығы – олардың екеуінде де айнымалыларды, белгілерді, тұрақтыларды бейнелеу бөліктері болады;
олардың бір-бірінен өзгешелігі процедура – Procedure ал функция Function қызмет сөздері пайдаланылады;
процедурада нәтижесі (айнымалы) параметрінің типі процедура атауынан соң тұратын кіші жақша ішінде бейнеленсе, ал функцияда нәтиже үшін арнайы параметр алынбайды, нәтиже (функция мәні) функция атына меншіктеледі, сондықтан функция типі, аргументтер типтері бейнеленген жақша сыртында, қос нүте арқылы көрсетіледі. Мысалы,
Function f (a:real; Var b:real):real;
Function g (var a,b : integer):integer;
Function h(a:integer):char;
негізгі программада функцияның мәнін тек функция атауы арқылы пайдаланылады.
X:=x+f(x,y); y:=sin (f(x)/3); немесе while f(x,y)<f(y,x) do x:=f(x,x); Функция мәні символдық бола алатын мүмкіндігін жоғарыдағы һ-функциясын көруге болады.
