- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •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) Тізбектелген, циклдық, тармақталу
- •Мазмұны
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
Ноталардың дыбысталу жиілігі
Нота |
Үлкен октава |
Кіші октава |
Бірінші октава |
Екінші октава |
До Ре Ми Фа Соль Ля Си |
130.81 146.83 164.81 174.61 196.00 220.00 246.94 |
261.63 293.66 329.63 349.23 392.00 440.00 493.88 |
523.25 587.33 659.26 698.46 784.99 880.00 987.77 |
1046.50 1174.07 1318.05 1396.09 1568.00 1760.00 1975.00 |
Sound процедурасында қолданылуы үшін барлық жиіліктер дөңгелектенеді.
1 мысал: қарапайым музыкалық гамманы жүзеге асыратын бағдарламаны қарастырайық.(бірінші октаваның барлық плутон жиіліктері F массивіне жазылған).
Program gamma;
uses Crt;
const F: array [1..12] of real=(130.8, 138.6, 146.8, 155.6, 160.8, 174.6, 185.0, 196.0, 207.7, 220.0, 233.1, 246.9) ;
Temp = 150;
Var К,N : integer;
begin
for K:=0 to 3 do
for N:=l to12 do begin
Sound(Round(F[N]*(1 shl k ))); Delay(Temp); NoSound; end;
for K:=3 downto 0 do
for N:=12 downto 1 do begin
Sound(Round(F[N]*(1 shl k ))); Delay(Temp); NoSound; end;
end.
Осы мысал негізінде сіздің бағдарламаңызды дыбысты шығаруда бағдарлама фрагменті ретінде жасауға болады. Бір октавадан келесі көрші октаваға өткен кезде жиілік екі есе өзгерітініне назар аударыңыз.
2 мысал: дыбыстық эффектілермен шығарылатын ақпараттың шығарылуы таң қалдырады. Ол құрамаларды, хабарламаларды, қателерді құру кезінде қолданылады және т.б. мысалы, экран орталығына құрама элементін
'ЭКСПЕРТТІК ЖҮЙЕ'
Дыбыстық сигнал ретінде шығару керек болсын. Zvuk процедурасында дыбысты генерациялау:
procedure ZvukOut;
var St: string[40]; I: byte;
procedure Zvuk;
begin
Sound(5000) ;
Delay(70);
NoSound
end; {Zvuk}
begin
ClrScr;
St:= 'ЭКСПЕРТТІК ЖҮЙЕ'
GoToXY(18,12);
for I:= 1 to Length(St) do begin Write(St[I]); Zvuk end
end;
Жолды шығаруда немесе кез келген ақпаратты шығару ғана емес, өте күрделі бағдарламалар типін жүзеге асыру керек (мысалы, ойындық): жануарлар айғайы,автомобиль немесе авиациялық двигательдің дыбысы және т.б. Мұндай имитацияларды ұйымдастыруда қандай да бір тәжірибе керек.
әдебиет:
1.Негізгі – 3, 5, 9-12
2. Қосымша - 4
№29 жұмыс
Тақырыбы: Графика және қозғалыс.
Тапсырмалар:
«GRAPH модулінің процедурасы мен функциясы» кестесін құрыңыз.
Парабол жүйесіндегі муарлық кестелерді модельдеу бағдарламасын құрастырыңыз.
Полином жүйесіндегі үшінші реттік муарлық кестелерді жасақтау бағдарламасын құрастырыңыз.
берілген функцияның бес графикасын құру бағдарламасын құрыңыз.
z = f(х,у)үшін сызықтар дәрежесін құрыңыз.
Гистограмма және диаграмма құру бағдарламасын жасаңыз.
Жазықтықты екі функция айнымалысы ретінде бейнелеу бағдарламасын құрыңыз.
Әдістемелік нұсқау:
Турбо Паскаль тілінде графикалық бейнелерді құрастыру үшін GRAPH атты арнайы кітапханалық модуль арналған. Онда 79 графикалық процедуралар, функциялар,ондаған стандартты тұрақтылар мен берілгендер типі көрсетілген.
Алдымен графикамен жұмыс істеу үшін мониторға сәйкес видеотәртіпті орнату қажет. Турбо Паскаль фиксальды драйверлер саны бар, олардың әрқайсысы бірден үшке дейінгі тәртіпті қамтиды. Драйвер типі және тәртіп сан ретінде немесе типтің тұрақтысы ретінде берілуі мүмкін.
1 мысал : Муарлық кесте.
Екі топтаманың қиылуының айырылу қиықтарын қарастырайық, онда келесі параметрлерді бөліп қарастыруға болды:
k1, k2 — оң және сол қиықтардың арақашықтығы;
h — ауысу-төмен иілу (жоғары) барлық топтаманың.
Топтама сызықтарын құрастыру этаптары:
1) горизонталды сызықтарды құрастыру графикалық line (0,k,640,k) процедурасымен жүзеге асады;
2) топтаманы п сызықтылардан құрастыру циклде беріледі
for i:=l to n do line(0, i*k, 640, i*k) ;
3) иілмелі топтама у координаты бойынша h қадамды қосумен жүзеге асады:
for i:=l to n do line(0,i*k,640, i*k + h); (h — төмен немесе жоғары ауысу өлшемі);
4) жиырылатын немесе созылатын тік сызықтар k1 және k2 әртүрлілігіне байланысты:
for i:=l to n do line(0,i*kl,640, i*k2 + h) ;
5) сызықтардың келесі тобын осылай құруға болады, бірақ айналық симметриямен:
for i:=l to n do line(0,i*k2+h,640, i*kl);.
Program Example_1;
uses crt, graph;
var gD,gM,i,kl,k2,h: integer;
begin
kl:=8; k2:=3; h:=110; gD:=Detect;
InitGraph(gD,gM,''); setcolor(green);
for i:=l to (480 div kl) do begin
line(0,i*kl,640,i*k2+h); line(0, i*k2+h,640,i*kl);
end;
repeat until keypressed;
CloseGraph;
end.
2 мысал. у = x2sin(l/x)функциясының графигін [а, b] аралығында құрастыру бағадарламасын жасау.
Графикті құру процессін процедура ретінде құрастыруға болады.
Program Example_2;
uses crt, graph;
Var gd,gm, n: integer; a,b: real;
function f(x:real):real;
Begin
if x<>0 then f : =x*x*sin (1/x) ;
End;
Procedure grafun (x0, x1, y0, y1, n: word; a, b:real);
Var h,m,x, tl,t2: real;
i, u,v,xv,yv: word;
Begin
h:=(b-a)/n;
m:=abs(f(a)); {максимумды іздеу Sf(x)S}
for i:=l to n do if m<abs(f(a+i*h)) then m:=abs(f (a+i*h)
tl: = (xl-x0)/ (b-a); t2: = (yl-y0)/(2*m); {координаттық осьтерді құрастыру}
setfillstyle(l,15); bar(x0-5,y0-5,xl+5,yl+5);
xv:=round(x0-a*tl); yv:=round((y0+yl)/2);
setcolor (1); line(xv,y0,xv,yl);
line(x0, yv,xl,yv); {көрсеткішті график басына орналастыру }
Moveto(x0,yv-round(f(a)*t2)); {графикті құру)
setcolor (3);
for i:=l to n do
Begin
x:=a+i*h; u:=x0+round((x-a)*tl); v:=yv-round(f (x)*t2); lineto(u,v)
End;
End; {процедура аяғы}
Begin
clrscr; write('a,b және n енгізіңіз: ');
readln(a,b,n); gd:=Detect;
InitGraph(gd,gm,'');
grafun(100,500,50,300,n,a,b);
grafun(550,620,10,100,200,-0.1,0.1);
repeat until keypressed;
CloseGraph;
End.
Қарастырылып отырған график [а,b] және [—0,1,0,1] екі қиығында берліген. Басқа функцияның графигін құрастыру үшін, оның аналитикалық түрін функцияны анықтау (function f) процедурасымен анықталады.
әдебиет:
1.Негізгі – 3, 5, 9-12
2. Қосымша - 4
№30 жұмыс
Тақырыбы: Мультипликацияны программалау
Тапсырмалар:
«GRAPH модулінің процедурасы мен функциясы» кестісін құрыңыз.
Парабол жүйесіндегі муарлық кестелерді модельдеу бағдарламасын құрастырыңыз.
Полином жүйесіндегі үшінші реттік муарлық кестелерді жасақтау бағдарламасын құрастырыңыз.
берілген функцияның бес графикасын құру бағдарламасын құрыңыз.
z = f(х,у) үшін сызықтар дәрежесін құрыңыз.
Гистограмма және диаграмма құру бағдарламасын жасаңыз.
Жазықтықты екі функция айнымалысы ретінде бейнелеу бағдарламасын құрыңыз.
Әдістемелік нұсқау:
Турбо Паскаль тілінде графикалық бейнелерді құрастыру үшін GRAPH атты арнайы кітапханалық модуль арналған. Онда 79 графикалық процедуралар, функциялар, ондаған стандартты тұрақтылар мен берілгендер типі көрсетілген.
Алдымен графикамен жұмыс істеу үшін мониторға сәйкес видеотәртіпті орнату қажет. Турбо Паскаль фиксальды драйверлер саны бар, олардың әрқайсысы бірден үшке дейінгі тәртіпті қамтиды. Драйвер типі және тәртіп сан ретінде немесе типтің тұрақтысы ретінде берілуі мүмкін.
1 мысал : Муарлық кесте.
Екі топтаманың қиылуының айырылу қиықтарын қарастырайық, онда келесі параметрлерді бөліп қарастыруға болды:
k1, k2 — оң және сол қиықтардың арақашықтығы;
h — ауысу-төмен иілу (жоғары) барлық топтаманың.
Топтама сызықтарын құрастыру этаптары:
1) горизонталды сызықтарды құрастыру графикалық line (0,k,640,k) процедурасымен жүзеге асады;
2) топтаманы п сызықтылардан құрастыру циклде беріледі
for i:=l to n do line(0, i*k, 640, i*k) ;
3) иілмелі топтама у координаты бойынша h қадамды қосумен жүзеге асады:
for i:=l to n do line(0,i*k,640, i*k + h); (h — төмен немесе жоғары ауысу өлшемі);
4) жиырылатын немесе созылатын тік сызықтар k1 және k2 әртүрлілігіне байланысты:
for i:=l to n do line(0,i*kl,640, i*k2 + h) ;
5) второе семейство линий можно построить аналогично, но с зеркальной симметрией:
for i:=l to n do line(0,i*k2+h,640, i*kl);.
Program Example_1;
uses crt, graph;
var gD,gM,i,kl,k2,h: integer;
begin
kl:=8; k2:=3; h:=110; gD:=Detect;
InitGraph(gD,gM,''); setcolor(green);
for i:=l to (480 div kl) do begin
line(0,i*kl,640,i*k2+h); line(0, i*k2+h,640,i*kl);
end;
repeat until keypressed;
CloseGraph;
end.
2 мысал. у = x2sin(l/x)функциясының графигін [а, b] аралығында құрастыру бағадарламасын жасау.
Графикті құру процессін процедура ретінде құрастыруға болады.
Program Example_2;
uses crt, graph;
Var gd,gm, n: integer; a,b: real;
function f(x:real):real;
Begin
if x<>0 then f : =x*x*sin (1/x) ;
End;
Procedure grafun (x0, x1, y0, y1, n: word; a, b:real);
Var h,m,x, tl,t2: real;
i, u,v,xv,yv: word;
Begin
h:=(b-a)/n;
m:=abs(f(a)); {Sf(x)S максимумын іздеу}
for i:=l to n do if m<abs(f(a+i*h)) then m:=abs(f (a+i*h)
tl: = (xl-x0)/ (b-a); t2: = (yl-y0)/(2*m); {координатты осьтер құру}
setfillstyle(l,15); bar(x0-5,y0-5,xl+5,yl+5);
xv:=round(x0-a*tl); yv:=round((y0+yl)/2);
setcolor (1); line(xv,y0,xv,yl);
line(x0, yv,xl,yv); {курсорды графиктің басына орнату}
Moveto(x0,yv-round(f(a)*t2)); {график құру)
setcolor (3);
for i:=l to n do
Begin
x:=a+i*h; u:=x0+round((x-a)*tl); v:=yv-round(f (x)*t2); lineto(u,v)
End;
End; {процедураның соңы}
Begin
clrscr; write('a,b және n енгізіңіз: ');
readln(a,b,n); gd:=Detect;
InitGraph(gd,gm,'');
grafun(100,500,50,300,n,a,b);
grafun(550,620,10,100,200,-0.1,0.1);
repeat until keypressed;
CloseGraph;
End.
Қарастырылып отырған график [а,b] және [—0,1,0,1] екі қиығында берліген. Басқа функцияның графигін құрастыру үшін, оның аналитикалық түрін функцияны анықтау (function f) процедурасымен анықталады.
әдебиет:
1.Негізгі – 3, 5, 9-12
Қосымша – 4
