Жоспар №6433

5 ферзі тапсырмасының алгоритмдік талдауы және Паскаль тілінде жүзеге асырылуы

Сұрақ-жауап

Сұрағыңызға жасанды интеллект жауап береді

ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ Б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]

Мәтінді көшіру үшін белсенді жазылым қажет.

Пайдаланушы ID: 343347

Жарияланған күні: