- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •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) Тізбектелген, циклдық, тармақталу
- •Мазмұны
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
Тақырыбы: Рекурсивті алгоритмдер құрастыру.
Тапсырмалар:
Массивтің ең кіші элементін іздеудің рекурсивті программасын жазу.
Геометриялық прогрессияның n мүшесін есептейтін, алғашқы n мүшесінің қосындысын және і-ден к-ға дейінгі мүшелерінің қосындысын табатын рекурсия программасын жаз.
Фиббоначидың санының ең үлкенін есептейтін рекурсия функциясын жаз.
Массивтің ең кіші элементінің нөмірін анықтайтын рекурсия функциясын жаз.
i-шіден j-дейінгі символдар жолының фрагменті палиндром болып табыла ма. осыны тексеретін рекурсивті программа құру.
әдебиет:
1.Негізгі – 3, 5, 9-12
2. Қосымша - 4
Әдістемелік нұсқау: 1-есептеке тоқталайық.
Program Example_1;
Const n=10;
Type MyArray=Array[1..n] Of Integer;
Const a:MyArray=(4,2,-l,5,2,9,4,8,5,3);
Function min (a,b:Integer):Integer;
Begin
If a>b Then min:=b Else min:=a;
End;
Function p_min(n,b:Integer): Integer;
Begin
If n=2 Then p_min :=rnin (n, a [1] )
Else p_min:=min(a[n],p_min(n-1,a[n]));
End;
Begin
Writeln('Минимальный элемент массива -',p_min(n,a[n]));
End.
2 Мысал:
Program Example_2;
Const k=3;
Var a,b,с: Char;
Procedure Rincr(n: Inteaer; a, b, c: Char);
Begin
If n>0 Then Begin
Ring(n-l,a,c,b);
Writeln('кольцо', n, 'c',a, '—>',b, ' ')
Ring(n-1,c,b,a);
End;
End;
Begin
a:='A'; b:='В'; с:='С';
Ring(k,a,b,с);
Readln
End.
№41 жұмыс
Тақырыбы: Мәтіндік режимде экранды басқару. Crt модулін қою.
Тапсырмалар:
Экранның жоғарғы бұрышына екі терезені қой және әрқайсысына 'Терезе 1, 'Терезе 2' деген хабарлама енгіз. Хабарлама 3 минут тұрып экран тазалансын.
Magenta түсімен үлкейтетін (кішкентайдан экранға сәйкес келетіндей үлкейетін) терезе құр. Х-координаты = 3, Y-координаты = 1 қадамда.
Magenta түсімен кішірейтетін (экранға сәйкес үлкеннен кішірейтін) терезе құр.
әдебиет:
1.Негізгі – 3, 5, 9-12
2. Қосымша - 4
Әдістемелік нұсқау:
Енгізілген символдың түсін беретін процедура TextColor(Color:byte), Астардың түсін беру үшін – TextBackGround (Color:byte);
LowVideo, NormVideo, HighVideo-айқындықты басқаратын стандартты функциялар.
1 мысал. Мәтін түсі мен астардың түсін өзгертетін Dem_Crt2 программасы.
program Dem_Crt2;
uses CRT; var I,J: integer;
begin
TextBackGround(1);
ClrScr; {Астарды бояу және тазалау}
TextColor(14); {Мәтін түсін қою}
GoToXY(15,3);
Writeln('Пример окна с изменяющимся цветом фона и текста');
for I:= 0 to 7 do begin
Window(5,5,75,20); {терезені ашу}
TextBackGround(I);
for j :=0 to 15 do begin
ClrScr; {Астарды бою және тазалау}
TextColor(14); GoToXY(25,3);
Writeln('Астар түсі = ',!);
TextColor(j); {Шығару түсін таңдау}
GoToXY(25,7);
Writeln('Цвет текста =',J);
TextColor (14);
GoToXY(15,12);
Write('Жұмысты жалғастыру үшін клавишті басу ');
Write('<Enter>');
Readln;
end;
end ;
end.
2 мысал: Экранға көк түсті астармен біртіндеп үлкейетін терезе шығарып, оған 30 с паузадан кейін кездейсоқ түспен, кездейсоқ координатпен 200 "*" символын шығару керек. Экранның төменгі жағына қызыл түспен символдың координаттары шығып тұру керек. Осыдан кейін терезені қара түсті астар жауып, онда ақшыл-жасыл түспен кездейсоқ символдар шғыуы тиіс. Символдарды шығару кез келген пернені басқанда тоқтау қажет.
program Demo_Crt3;
uses CRT;
var I,XI,Yl,X2,Y2: integer;
begin
TextBackGround(Black) ClrScr;
X1 := 39; Y1:= 12;
X2:= 40; Y2:= 13;
TextBackGround(Blue);
for I:= 0 to 12 do
begin
Window(XI,Yl,X2,Y2);
ClrScr; Delay(100);
X1:= Xl-3; Yl:= Yl-1;
X2:= X2+3; Y2:= Y2+1; Window(1, 1, 80, 25)
end;
Randomize;
for I:=l to 200 do
begin
TextColor(LightCyan);
GoToXY(Random(80),Random (25)); XI:= WhereX;
Yl:= WhereY;
TextColor(Random(15)+Blink); Write('*');
TextColor(LightCyan);
GoToXY(70,25); TextColor(LightRed);
Write(Xl:3,Yl:3); {Нүкте координаттарын жазу)
Delay(30);
end;
Window(50,3,75,15); {Терезені ашу}
TextBackGround(Black)
ClrScr;
TextColor(LightGreen)
repeat {Повторять}
GoToXY(Random(25),Random(14));
Write(Chr(Random(255)));
Delay(20);
until KeyPressed; {Пернені басқанда циклды тоқтату}
TextBackGround(Black); {Қара түсті қою және экранды тазалау)
ClrScr;
end.
№42 жұмыс
Тақырыбы: Дыбысты басқару. Әуендер генерациясы.
Тапсырмалар:
1. Дыбыстық эффектілерді ұйымдастыру үшін қандай құрылым пайдаланылады?
2. Қандай стандартты процедурамен тексттік режимді тағайындауға болады?
3. Енгізілген символдардың жыпылықтау эффектісін қалай алуға болады?
4. CRT модулінің Sound, NoSound және Delay стандартты процедураларының қызметін ата.
5. Екі дененің хаосты қозғалысын бейнелейтін программа құр.
Үш рет ДО дан Си-ге дейін ойнайтын, яғни ДО, РЕ, МИ, ФА, СОЛЬ, ЛЯ, СИ ноталарын, сәйкес 262, 294, 330, 349, 392, 440, 494 жиілігін қолданып программа құр.
Үш рет Си дан ДО -ға дейін ойнайтын, яғни ДО, РЕ, МИ, ФА, СОЛЬ, ЛЯ, СИ ноталарын, сәйкес 262, 294, 330, 349, 392, 440, 494 жиілігін қолданып программа құр.
6. Дабылдың дыбысы 500..2000 жиіліктерін тізбектеп қуалаумен және кері 2000-ден 500-ге дейін алынатынын біле отырып, жедел жәрдем машинасы дабылын модельдейтін программа құрыңыз. Әрбір жиіліктің дыбыстау ұзақтығы 1 мс, NoSound тең, end операторымен программаны аяқтар алдында ғана қолдану.
Пернетақтадан символ енгізгенде кездейсоқ дыбыспен сүйемелдейтін программа құр. '!' символы программадан шығуға арналған болсын.
әдебиет:
1.Негізгі – 3, 5, 9-12
2. Қосымша - 4
Әдістемелік нұсқау:
Sound, NoSound Delay, Dec, Inc, Random функциясы, Succ стандартты процедураларына қолданғанда олардың жұмыс жасау ерекшеліктеріне мән бер.
1 мысал. Түрлі дыбыстар шығаратын Dem_Music программасы.
program Dem_Music;
uses Crt;
procedure Bird(KindOfBird : Byte; Duration : Word; Pitch : Integer);
var I, J, К : Integer;
begin
I := 1;
case KindOfBird of
1 : begin
while I < Duration do begin Sound(Pitch + I); Inc(I); end;
NoSound;
end;
2 : begin
J := I + (I div 10) ;
while I < Duration do begin Sound(Pitch + I) ; Inc(I); end;
NoSound;
Delay(100);
while I > J do begin Sound(Pitch + I) ; Dec(I); end;
NoSound;
end;
3: begin
К := 1;
while К < Random(20) + 10 do begin
Sound(Pitch); Delay(30);
Sound(Pitch + (Pitch div 10));
Delay(30); Inc(K);
end ;
NoSound;
end;
4: begin
I := Random(5) + 10; К := Pitch + (Pitch div 10);
while I > 1 do begin
J := Pitch;
while J < К do begin Sound(J); Delay(6); Inc(J, 10); end;
NoSound; Delay(40) ; Dec(I);
end;
end;
end; {Case}
end;
begin
Randomize;
repeat {Повторять, пока не нажата любая клавиша}
Bird(Succ(Random(4)),Random(2000)+300,Random(4000)+ 200) ;
Delay(Random(400) + 20); until KeyPressed; NoSound;
end.
№43 жұмыс
Тақырыбы: Графика және қозғалыс.
Тапсырмалар:
Тікбұрышты үшбұрыштан тұратын паркет моделі программасын құрастыр.
Тең қабырғалы үшбұрыштан тұратын паркет моделі программасын құрастыр.
Кез келген сүйір бұрышты үшбұрыштан тұратын паркет моделі программасын құрастыр.
Кез келген үшбұрыштан тұратын паркет моделі программасын құрастыр.
Параллелограммнан тұратын паркет моделі программасын құрастыр.
Ромбыдан тұратын паркет моделі программасын құрастыр.
Трапециядан тұратын паркет моделі программасын құрастыр.
Дұрыс көпбұрыштан тұратын паркет моделі программасын құрастыр.
Дөңес көпбұрыштан тұратын паркет моделі программасын құрастыр.
әдебиет:
1.Негізгі – 3, 5, 9-12
2. Қосымша - 4
Әдістемелік нұсқау:
Графикалық программада басқа программа тәрізді қателер болуы мүмкін. Қате кетпес үшін мына екі функцияны қолдану керек: GraphResult және GraphErrorMsg. GraphResult функциясы возвращает значение 0 мәнін қайтарады, егер соңғы графикалық мән қатесіз орындалса немесе -15...-1 аралығындағы сан болса. CloseGraph процедурасы орындалғанда графика драйверіне бөлінген, шрифтілер файлына және аралық берілгендерге жадыны босатады және жұмыс режимі адаптерін қалпына келтіреді. 1 мысал: Жұлдыз.
Program Example_1;
uses crt, graph;
const p=5;
Var gd,gm,i: integer;
r,r2,al,a2,a3,t: real;
Procedure Ugol(xl,у1,х2,у2,хЗ,y3:real;n:integer);
Var k: integer;
a, Lxl,hx2, hyl, hy2 : real;
Begin
hxl:=(x2-l)/n; hx2: = (x3-x2)/n;
hyl:=(y2-yl)/n; hy2:=(y3-y2)/n;
for k:=0 to n do
line(round(xl + k*hxl),round(yl+k*hyl), round(x2+k*hx2),round(y2+k*hy2)};
End;
Begin
gd:=Detect; InitGraph(gd,gm,'');
r:=180; r2:=60; t:= 200 ;
setcolor(green);
for i:=0 to p-1 do Begin
al:=2*pi*i/p; a2:=al+pi/p; a3:=al-pi/p;
Ugol(t,t,t+r*sin(al),t+r*cos(al),t+r2*sin (a2),
t+r2*cos(a2),25);
Ugol(t,t,t+r*sin(al),t+r*cos(al),t+r2*sin (a3),
t+r2*cos(a3),25);
End;
repeat until keypressed;
CloseGraph;
End.
