ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ
БIЛIМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛIГI
Техникалық кибернетика кафедрасы
Программалау пәнi бойынша
КУРСТЫҚ ЖОБАҒА ТҮСIНIК
Тақырыбы:
“5 Ферзі”
Мазмұны
1. Кiрiспе..........................................................................................……………...3
2. Есептiң математикалық қойылымы..........................................……………....6
3. Есептi шығарудың тәсiлдерiн баяндау......................................………….…..7
3.1. Iздеу алгоритмдерi........................................................…………….....7
3.1.1. Сызықты iздеу..................................................…………….....7
3.1.2. Тосқауылы бар iздеу.......................................…………….....8
3.2.Сорттау алгоритмдерi...................................................…………….......9
3.2.1. Таңдау арқылы сорттау....................................…………….....9
3.2.2. Айырбаспен сорттау (“көбiкше” тәсiлiмен)..……………...10
4. Алгоритмнiң негiзгi ойын баяндау....................................................................12
4.1. Қайталану операторлары......................................................................12
4.2. Графиктік режиммен жұмыс істеу.......................................................13
5. Блок-схема...........................................................................................................17
6. Қолданылған техникалық жабдықтар...............................................................22
7. Бағдарламаны шақыру және жүктеу.................................................................22
8. Есептi шығару алгоритмнiң программалық жазбасы (Паскаль тiлiнде).......23
9. Енгізілген мәліметтер.........................................................................................27
10. Шығарылған мәліметтер..................................................................................27
11. Қорытынды........................................................................................................27
12. Пайдаланылған әдебиеттер тiзiмi....................................................................28
1. Кiрiспе
Ойын деген – ойын сауық, демалыс, спорттық жарысқа
Осындай ойындардың бірі – шахмат ойны!!!
Шашмат ойнын кім білмейді, бәрі біледі, кішкентайынан үлкеніне
Осы шахматтың шығуының бір көп тараған хикаясы бар.
Қазіргі кезеңде шахмат ойыны биік шыңға жетті. Оны
Жаңа технологиялардың дамуына байланысты компьютерлік шахматтар пайда болды
Бұл шахматтың адам баласына қаншалықты маңызды екенін көрсетеді.
Шахмат тақтасы 8 × 8 клеткалы болып келеді.
Негзінен алты түрлі фигуралар бар, олар: пешка, ат,
Тақтайдың көрінісі келесідей.
Бұл тақтада 8 жол және 8 баған бар.
Жолдары: 1,2,3,4,5,6,7,8.
Бағандары: a,b,c,d,e,f,g,h.
Ал енді олар қалай жүреді? Пешка 1 қадам
2. Есептiң математикалық қойылымы
Бұл курстық жұмыста «5 Ферзі» тапсырмасы қарастырылған. Бұл
«5 Ферзінің » тапсырмасы виртуалды шахмат тоқтасында 5
3. Есептi шығарудың тәсiлдерiн баяндау
3.1. Iздеу алгоритмдерi
Iздеу алгоритмдерi мысалы массивте белгiлi қасиеттерi бар элементтердi
3.1.1. Сызықты iздеу
Сызықты iздеу екi еселi шарты бар циклмен (while
Циклдан шыққаннан кейiн қай шарт бойынша шыққанымызды тексеруiмiз
Мысалы: Сызықты iздеу.
program Poisk1;
var A:array[1..100] of integer;
N, X, i:integer;
begin
read(N); {NA[m] then m:=i
else if A[i]A[i+1] then
{көршiлес элементтердi орындарымен ауыстырамыз}
begin x:=A[i]; A[i]:=A[i+1]; A[i+1]:=x;
for i:=1 to n do write(A[i],' '); {реттелген
end.
4. Алгоритмнiң негiзгi ойын баяндау
Бұл бағдарлама негiзiнен бiрнеше функция мен процедура,
Қайталану командалары
Программаның белгілі бір бөлігінің орындалуын бірнеше рет қайталану
Түрлері:
1. For – параметрлі циклдік оператор;
2. While – алдын – ала циклдің орындалу
3. Repeat – соңында циклдің тоқтау шартын тексеретін
For циклдік операторы (Үшін циклі).
Параметрлі циклдік операторлар цикл денесінің қайталануы алдын –
For K:=M to N do
Цикл денесі;
Бұндағы: К – циклдік айнымалы (есептеуіш), әр цикл
Мысалы: Экранға X – тің барлық 1-ден 100-ге
Program Tend;
Var x:byte; y:longint;
Begin for x:=1 to 100 do
Begin y:=SQR(x)+50*x-30;
Writeln(‘y=’,y); end;
Readln
End.
Repeat…Until циклдік операторы (Дуйін циклі).
Бұл оператор да While операторы сияқты қайталану саны
Repeat
Цикл денесі;
Until шарт;
Until операторында жазылған шарт орындалмағанға дейін цикл денесінің
Мысалы: s=1+2+3+4+5 қатарын есептеу программасын құру.
Program Summa;
Var s,k:intrger;
Begin s:=0; k:=1;
Repeat
S:=s+k;
K:=k+1;
Until K>5;
Writeln (‘s=’,s);
Readln
End.
Графиктік режиммен жұмыс істеу
Компьютердің мониторы нүктелердің (пиксельдардың) жиынтығынан тұрады. Ал символдарды
Графиктік режимде экранға бейнелер шығару үшін координаталр жүйесі
Turbo Pascal – да графиктік режимде жұмыс істеуге
USES қызметші сөзінде GRAPH модулі жазылады; USES
Графиктік режим орнатылады:
Var d1, d2 : integer;
Begin d1:=Detect; InitGraph(d1, d2, ‘C:\Turbo\Graph’);
Мұндағы: InitGraph – графикалық режимді орнату процедурасы,
Экранды басқаратын процедуралар мен функциялар
Экранның фоны Setbkcolor процедурасының көмегімен орнатылады, жазылуы:
Setbkcolor (C);
Мұндағы: C – түс коды 0-ден 15-ке
Процедураның орныдалу нәтижесінде экран C нөмірлі түске боялып
Экрандағы барлық салынған графиктік обьектілерді өшіріп тастау үшін
Графикалық режимнің көзге көрінбейтін сілтеме – көрсеткіш курсоры
Moveto(x,y); //курсорды A(x,y) нүктесіне апарып
Графикалық режимнен шығу үшін параметсіз CloseGraph процедурасы қолданылады.
………………………….; CloseGraph End
1. Random – функциясы. Бұл функцияның негiзгi атқаратын
а) бұлар міндетті түрде ферздер болу керек;
ә) олар тақтада орналасқанда олардың біреуі қалғандарын міндетті
б) және де бұл программаның дұрысы нәтижесінде оны
2. PrintText – процедурасы. Процедураның негiзiнен атқаратын қызметi
3. Zastavka – процедурасы. Бұл роцедура программаның бет-келбетiн,
4. ReadPlayerDigits –процедурасы. Бұл процедураның негiзгi атқаратын
а) шахматтана координаталарын беру арқылы көріністі алуға
ә) егер енгiзiлген координаталары дұрыс болса, ойыншы бұл
б) егер енгiзiлген координаталр дұрыс емес болса, ойыншыға
Сонымен қатар бұл процедура келесi жұмысты атқара
а) егер ойыншы ойыннан шыққысы келсе, “end” сөзiн
5. Бағдарламаның негiзгi денесi. Бағдарлама ойынның негiзгi шарттарын
6.Setcolor – графиктік фигуралардың тісн орнату үшін қолданылатын
Setcolor (C); C – палитрадағы түс коды
7.Line – түзу салу үшін қолданылады. Сондай –
Line (x1,y1,x2,y2);
8.Bar – экранда боялған тік төртбұрыш салу үшін
Bar (x1,y1,x2,y2);
Процедураның орындалу нәтижесінде экранда сол жақ жоғарғы бұрышының
9. Setlinestyle – түзулерді әртүрлі стильдерде шығару үшін
Setlinestyle (L,T,p);
Мұндағы:
L – Түзу стильдері;
P – Түзу үлгісі , егер түзі стильдері
T – Түзудің қалыңдығы, егер түзу қалыңдығы қалыпты
5. Блок-схема
6. Қолданылған техникалық жабдықтар
Процессор – Intel
Монитор
ЖЕСҚ
Бейнеадаптер – 128Mb
Принтер
7. Программаны шақыру мен жүктеу
1. Жұмысқа кiрiспес бұрын, компьютердi ток көзiне қосып
F3 пернесiн басып, бiзге қажеттi файлды ашамыз. Егер
2. Жұмысқа кiрiспес бұрын, компьютердi ток көзiне қосып
F3 пернесiн басып, бiзге қажеттi файлды ашамыз. Егер
8. Есептi шығару алгоритмнiң программалық жазбасы (Паскаль тiлiнде)
Uses Crt,Graph;
Var
X
A,B,C,D,Gs,Gm,Z,i: Integer;
S
Test
Ch
Procedure konez;
begin
Setfillstyle(solidfill,0);
Bar(0, 0, 640, 480);
Setcolor(yellow);
SetTextStyle(DefaultFont, HorizDir, 2);
Outtextxy(40,50,'Орындаған: КазНТУ университетінің, Впб-04-5к тобы студенті Аширбаев Ж.П');
Outtextxy(40,150,'ойларыңызды Shokhan@mail.ru – ге жіберіңіз');
Outtextxy(40,250,'Қабылдаған:Кенжалиева');
Outtextxy(180,350,'Алматы 2004');
SetTextStyle(2, HorizDir, 2);
Outtextxy(180,450,'Шығу үшін -ді басыңыз');
Readln;
end;
Function KOR( Y : Integer):Integer;
Var W,I,J,a,b,c,k :
Begin
If Y=0 Then
Begin
KOR:=0;
Test:=True;
For I:=1 To 8 Do
For J:=1 To 8 Do
If X[I,J]=0 Then Test:=False;
End;
Else
For I:=1 To 8 Do
For J:=1 To 8 Do
If X[I,J]8)or(B8)or(B=10 Then
OutTextXy(b*30+60,a*30+55,'F');
End;
I:=8;J:=8;
End;
End;
End;
Begin
Gs:=Detect;InitGraph(Gs,Gm,'A:\Bgi');
KOR(5);
i:=1;
repeat begin
Setcolor(i);
SetTextStyle(DefaultFont, HorizDir, 2);
outtextxy(400,50,'5 ферзі');
SetTextStyle(2, HorizDir, 2);
outtextxy(200,400,'Шығу үшін кез-келген пернені басыңыз');
i:=i+1;
end;
until keypressed;
konez;
ReadLn;
CloseGraph;
End.
9. Енгізілген мәліметтер
Ойынның барысында берілген фигуралардың координаталары беріліп, осының нәтижесін
10.Шығарылған мәліметтер
Енгізілген мәліметтердің арқасында компютер программа бойынша сол фигураларды
11. Қорытынды
Осы курстық жобада жазылған программаның негізгі мақсаты ыңғайлы
12. Пайдаланылған әдебиеттер тiзiмi
Шелест В. Программирование. – Санкт-Петербург, BHV, 2001.
Роджерс Д. Алгоритмические основы машинной графики. – Москва,
Вирт Н. Алгоритмы + структуры данных = программы.
Вирт Н. Алгоритмы и структуры данных. – Москва,
Лахтин А.С., Искакова Л.Ю. Языки и технология программирования.
Бондарев В.М., Гублинский В.И., Качко Е.Г. Основа програмирования
Турбо Паскаль 7.0 – К.: торгово – издательское
Фаронов В.В. Turbo Pascal 7.0. Начальный курс. –
Н.Ы. Омарова, К.У. Тұрмағамбетова, К.Н. Нүриденова. Паскаль тiлiнде
Шаметов Ералы Бақтайұлы. Паскаль тiлiн үйренейiк. Шымкент, 1993.
Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в
М.: Наука, 1988.
Х.М. Дейтел, П.Дж. Дейтел. Как программировать на С++.
“Бином”, 2000.
Программирование на С и С++ для Windows 95.
«Язык программирования для персонального компьютера Си»,
© С.О. Бочков, Д.М. Субботин, М.: Диалог-МИФИ, 1990.
Turbo C++ (Version 1.0). Руководство для программиста.
28
Соңы
Setcolor (i)
CloseGraph
keypressed
Шығару
N
i:=1
konez
KOR(5);
InitGraph(Gs,Gm,'A:\Bgi');)
i:=i+1;
Gs:=Detect
outtextxy(200,400,'Шығу үшін кез-келген пернені басыңыз')
I:=8;J:=8
SetTextStyle (2, HorizDir, 2)
OutTextXy b*30+60,a*30+55,'F')
Outtextxy (400,50,'5 ферзі')
SetColor(2)
SetTextStyle (DefaultFont, HorizDir, 2)
SetTextStyle(1,0,2)
Bar (b*30+50,a*30+50,b*30+80,a*30+80)
SetFillStyle(1,15)
For a:=1 To 8 Do
For b:=1 To 8 Do
If odd(a-b)
SetFillstyle (1,1)
a:=i;b:=j;
X[I,W]:=X[I,W]-1
OutTextXy (60,50+D,S)
X[W,J]:=X[W,J]-1
OutTextXy (55+D,50,Ch)
For W:=1 To 8 Do
D:=D+30
X[I,J]:=X[I,J]-6
For Ch:='A'
To 'H' Do
SetColor(2)
KOS
a:=A+1;B:=B-1
X[a,b]:=X[A,B]+1
a:=A+1;B:=B+1
(A>8)or(B>1)
X[a,b]:=X[A,B]+1
a:=i;b:=j
(A>8)or(B>8)
a:=i;b:=j
a:=A-1;B:=B+1
X[a,b]:=X[A,B]+1
a:=A-1;B:=B-1
(A8)
X[a,b]:=X[A,B]+1
a:=i; b:=j
a:=i; b:=j
TextBackground(0)
bas
TextColor
(Yellow)
Соңы
Test:=False
X[I,W]:=X[I,W]+1
Шығару
(Text)
29
X[W,J]:=X[W,J]+1
X[I,J]=0
For W:=1 To 8 Do
For I:=1 To 8 Do
For J:=1 To 8 Do
X[I,J]:=X[I,J]+6
Test:=True
34
KOR:=0
X[I,J]