„Трэк” ойыны


ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ

Қ. И. Сәтпаев атындағы Қазақ ұлттық техникалық университеті

Ақпараттық технологиялар институты

Техникалық кибернетика кафедрасы

КУРСТЫҚ ЖОБАҒА ТҮСІНІКТЕМЕ ЖАЗБА

Тақырыбы : „Трэк” ойыны

Жетекші: доцент

Мұртазина Ә. Ө.

«» 2005 ж.

Норма бақылаушы:

аға оқытушы

Мұртазина Ә. Ө.

«» 2005 ж.

Студент: Мусинов Е. Е.

Мамандығы: 050704

Оқу тобы: І

АЛМАТЫ 2005

КУРСТЫҚ ЖҰМЫСТЫ ОРЫНДАУҒА ТАПСЫРМА

Студент: Мусинов Е:Е.

Тақырыбы:

Аяқталған жұмысты тапсыру уақыты:

«» 2005 ж.

Жұмыс барысында қолданылатын бастапқы мәліметтер мазмұны, жұмысты сипаттайтын негізгі бөлім қорытынды.

Сызба материалдар саны:

Жұмыс жетекшісі: Муртазина Ә. Ө.

Тапсырманы орындауға қабылдап алған студент: Мусинов Е. Е.

«» 2005 ж.

МАЗМҰНЫ

Кіріспе

1. Есептің қойылымы . . . 5

2. Есепті шығарудың тәсілдерін баяндау . . . 6

2. 1 Іздеу алгоритмдері . . . 6

2. 1. 1 Сызықты іздеу . . . 6

2. 2 Сұрыптау алгоритмдері . . . 7

2. 2. 1 Ауыспалы сұрыптау . . . 7

2. 3 Қосалқы программалар . . . 8

2. 3. 1 Процедура . . . 8

2. 3. 2 Функция . . . 9

2. 4 Рекурсивті функция . . . 10

2. 5 Турбо Паскальдағы графика . . . 10

3. Есептің алгоритмі . . . 13

4. Программаны баяндау . . . 14

4. 1 Жалпы мағлұматтар . . . 14

4. 2 Функционалдық тағайындалуы . . . 14

4. 3 Қолданылатын техникалық жабдықтар . . . 14

4. 4 Программаны шақыру мен орындау . . . 14

4. 5 Енгізілетін мәліметтер . . 14

4. 6 Шығарылатын мәліметтер 15

4. 7 Программаның логикалық структурасы . . . 15

4. 8 Программаның листингі . . . 17

Қорытынды

Қолданылған әдебиеттер

Кіріспе

Бұл курстық жұмысты ПиАяз пәнінен үйренгенімді көрсету мақсатымен ойлап шығардым.

Бұл курстық жұмыста ойын жазу қарастырылған. Осы курстық жобада есепті шығарудың тәсілдерін баяндау бөлімінде іздеу, сұрыптау алгоритмдері, қосалқы программалар, одан кейін графика жатады. Әр тақырыпқа мысал келтірілген. Бірақ курстық жобадағы ең басты түйіні программаның есебі болып табылады.

Ойын деп, осыны графика арқылы ғана шығарылған деп есептейді. Бірақ, бұл олай емес, өйткені әр жарыста да әйтеуір бір ойыншы жеңу керек. Ал сол жеңімпазды шығару үшін, оған берілген ұпайды санап шығу керек.

Кейбір ойындарда графика көрсету арқылы, бірден жеңімпазды бірден шығарып отырады. Ал менің курстық жобадағы программа екі бөлімнен тұрады: графика бөлімі және есепті шығаруға арналған операторлар бөлімнен тұрады.

1 Есептің қойылымы

Велосипед жарысының трекіне 20 спортшы қатысады, жарыс 20 айналымнан тұрады. Әрбір айналымның финишінде 1-ші орынға ие болған спортшыға 7 ұпай, 2-ші орынға - 5 ұпай, 3-ші орынға - 3 ұпай, 4-ші орынға - 2 ұпай, 5-ші орынға - 1 ұпай беріледі. Ең көп ұпай жинаған немесе 5 айналымда жеңіске жеткен велосипедші жеңімпаз (жеңімпаздар) болып саналады. Веложарысқа қатысушылар жарыс басталмас бұрын өздеріне кездейсоқ түрде нөмір таңдап, жарыста олар сол нөмірмен белгіленеді.

2 Есепті шығарудың тәсілдерін баяндау

2. 1 Іздеу алгоритмдері

Программада көп кездесетін қимыл - іздеу. Iздеу алгоритмдерi мысалы массивте белгiлi қасиеттерi бар элементтердi табу үшiн қолданылады.

Төменде келтiрiлген барлық алгоритмдерде N бүтiн санды a массивiнде Х-қа тең элемент iздеу керек деп есептеледi.

2. 1. 1 Сызықты іздеу

Іздеу алгоритмінде : массив арқылы элементтерді енгізіп, әр қадам сайын белгілі бір санды сол элементтермен салыстырғанда, жауабы жалған болып шығуы керек. Мұндай іздеуді сызықты іздеу деп аталады. Мынадай шығарылатын мәліметтер болуы керек:

  1. элемент табылды: а[i] =x;
  2. бүкіл массив көрілген және элемент табылмады: a[i] =0.

Мысалы: Егер А(10) массивінде В-ға тең элемент бар болса, онда М айнымалысына, осындай теріс элементке дейінгі, теріс элементтер санына тең мәнді меншіктеу керек, әйтпесе М-ге 0-ді меншіктейміз.

program izdey1;

const n=10;

var a: array [1. . n] of integer ;

i, b, m, k:integer;

begin

for i:=1 to n do

read(a[i] ) ;

read(b) ;

m:=0;

k:=0;

for i:=1 to n do

begin

if a[i] =b then m:=m+1;

if a[i] <0 then k:=k+1;

end ;

writeln('M=', m) ;

end .

2. 2 Сұрыптау алгоритмдері

Жалпы алғанда кез-келген программа сұрыптаудан басталады. Ал тез сұрыптап қажет элементті табу үшін сұрыптау және іздеу тәсілдерін жетік білген жөн. Сондықтан сұрыптау қарастырып көрейік.

Сұрыптаудың ең қарапайым есебi массив элементтерiнiң өсу не кему ретiмен орналастыру болып табылады. Басқа есеп болып, берiлген белгiлер бойынша массив элементтерiн реттеу. Әдетте мұндай белгi ретiнде аргументi массив элементтерi болып табылатын белгiлi функция мәнi болып табылады. Бұл функцияны реттеушi функция деп атау қабылданған.

Сұрыптаудың әр түрлi тәсiлдерi бар. Әрбiр тәсiлдi N бүтiн сандардан өспелi массивтi сұрыпттау мысалында көрсетемiз.

2. 2. 1 Ауыспалы сұрыптау

Тізбек бойынша 1-ші элементі қалғандарымен салыстырамыз және ол салыстырған элементтен кіші болса, онда олардың орындарын ауыстырамыз және жаңа 1-ші элементі келесі массив элементтері мен салыстыра отырып және т. б. . Сосын соңғының алдындағы элементі соңғы элементпен салыстырамыз.

Мысалы: А(10) массив элементтерін кему реті бойынша реттеу.

program ayispaly;

const n=10;

var a: array [1. . n] of integer;

i, j, b: integer;

begin

for i:=1 to n do

read(a[i] ) ;

for i:=1 to n-1 do

for j:=i+1 to n do

if a[i] <a[j] then

begin

b:=a[i] ;

a[i] :=a[j] ;

a[j] :=b;

end;

for i:=1 to n do

write(a[i] ) ;

end.

2. 3 Қосалқы программалар

  1. Процедура

Процедура дегеніміз - белгілі бір әрекеттерді орындайтын, идентификаторы берілген, программаның тәуелсіз бөлігі. Процедура процедураның тақырыбы мен денесінен тұрады және оны құрылымына қарай жеке дербес программа ретінде қарастыруға болады. Процедураны негізгі программаның сипаттау бөлімінде бір рет анықтаған соң, оны программаның кез келген жерінен идентификаторы бойынша шақыруға болады. Процедура өз мақсатын орындалғаннан кейін, негізгі программа келесі оператордан жалғасып орындала береді. Программаның ішінде процедура идентификаторын оператор түрінде қолдану процедура операторы немесе процедураны шақыру деп аталады. Көңіл бөлетін жайт, процедура идентификаторын өрнек ішінде операнда есебінде қолдануға болмайды.

Процедура тақырыптан және блоктан тұрады, біріншіден, локальдық сипаттамадан және процедура операторлардан:

Procedure < аты > [(<нақтылы параметрлер тізімі>) ] ;

[<сипаттау бөлімі>]

Begin

< оператор-1 >;

< оператор-2 >;

. . .

<оператор-N>;

End.

Мысалы: толық көрсеткішімен дәкежені есептеу.

program primer1;

var

n:integer;

x, y:real;

procedure Step1;

var

i:integer;

begin {Step1}

y:=1;

for i:=1 to n do

y:=y*x;

end; {Step1}

begin {primer}

write('x=', x) ;

read(x) ;

writeln('y=', y) ;

read(n) ;

if n=0

then

y:=1

else if n>0

then

Step1

else

begin

n:=-n;

x:=1/x;

Step1;

end;

writeln('y=', y) ;

end. {primer}

2. 3. 2 Функция

Функция түсінігі жалпы процедурамен бірдей, бірақ қолданылуының мынадай екі ерекшелігі бар: функция өзінің жұмысы нәижесінде шақыру нүктесіне белгілі бір мән қайтарады: функция идентификаторы өрнектерде операнда есебінде қолданыла алады. Функция идентификаторы өрнектерде қолданылса, функция көрсеткіші немесе функцияны шақыру операторы деп аталады.

Function < аты > [(<нақтылы параметрлер тізімі>) ] :<типтік аты>;

[<сипаттау бөлімі>]

Begin

. . .

<аты>:=<өрнек>

End;

Мысалы: натуралды сандарды көбейту.

Program function;

Uses Crt;

Const a=4;

b=6;

Function Mult(a, b:Word) : integer;

begin

if a=1 then Mult:= b

else Mult:= Mult(a-1, b) +b

end;

BEGIN

Write(a, ' x ', b, ' = ', Mult(a, b) ) ; ReadLn

END.

2. 4 Рекурсия

Өзін өзі шақыратын процедуралар мен функциялар рекурсивті деп аталады. Паскаль тілінде қосалқы программалардың рекурсивті шақырылуларына шектеу жоқ, бірақ әрбір кезекті шақыру қосалқы программадағы жергілікті объектілердің жаңа көшірмелерінің пайда болуына әкелетінін еске сақтау қажет. Екпінді және аяқталмаған рекурсивті шақырылулардың тізбегіне сәйкес келетін бұл көшірмелер бір-бірінен тәуелсіз болады.

Бүтін санның факториялын функцияның рекурсивті шақырылуын және цикл операторын қолдану арқылы есептеудің мысалы:

program Factorial;

var n:integer;

function fact(n:integer) :integer;

begin

if n=0

then

fact:=1

else

fact:=n*fact(n-1) ;

end;

begin

write('n=') ;

read(n) ;

writeln(n, '=', fact(n) ) ;

end.

2. 5 Turbo Paskal тіліндегі графиктік режимі.

Turbo Paskal программалау тілінде символдық режимнен бөлек графиктік режимде жұмыс істеуге болады. Онда әр түрлі графиктик кескіндер құрастыру мүмкіндігі бар. Turbo Paskal графиктік мүмкіндіктерін пайдалану үшін арнайы “GRAPH” кітапханасы іске қосылады. GRAPH модулінде орналасқан процедуралар мен функцияларды пайдалану үшін программаның сипаттау бөлімінде көрсетіледі.

USES GRAPH

Графиктермен жұмыс істеу алдында оған сәйкес келетін монитор режимін орнату қажет. Turbo Paskal тілінде алдын ала бекітілген драйверлер саны бар. Олардың әрқайсысы үш түрлі режимдердің бірінде жұмыс істей алады. Драйвер типі мен оның режимі санмен немесе тұрақты түрінде берілген.

Драйвер: Драйвер
Режим: Режим
Нүктелер саны: Нүктелер саны
Файл: Файл
Драйвер: CGA(1)
Режим: CGACO, CGAHi
Нүктелер саны: 320*200 (640*200)
Файл: CGA. BGI
Драйвер: EGA(2)
Режим: EGALo, EGAHi
Нүктелер саны: 640*200 (640*350)
Файл: EGAVGA. BGI
Драйвер: VGA(3)
Режим: HERCM, ONOHI
Нүктелер саны: 720*348
Файл: HERC. BGI

GRAPH модулі іске қосылысымен оның ішіндегі процедуралар мен функцияларды пайдалана беруге болады.

Графикалық режимді іске қосу:

InitGraph (var Driver, Mode: integer; Path: string) ;

Мұндағы Driver - графикалық режимді анықтайтын параметр;

Mode - орнатылған драйверге байланысты берілетін графиктік режим параметрі;

Path - графиктік драйвер файлының атауы және жолы.

Driver мәні Graph модулінде хабарланған тұрақтылар жиынымен шектеледі.

Тұрақты атауы: Тұрақты атауы
Сандық коды: Сандық коды
Тұрақты атауы: Detect
Сандық коды: 0
Тұрақты атауы: CGA
Сандық коды: 1
Тұрақты атауы: MCGA
Сандық коды: 2
Тұрақты атауы: EGA
Сандық коды: 3
Тұрақты атауы: EGA64
Сандық коды: 4
Тұрақты атауы: EGAMono
Сандық коды: 5
Тұрақты атауы: IBM8514
Сандық коды: 6
Тұрақты атауы: HercMono
Сандық коды: 7
Тұрақты атауы: ATT400
Сандық коды: 8
Тұрақты атауы: VGA
Сандық коды: 9
Тұрақты атауы: PC3270
Сандық коды: 10

Инициализацияланған графикалық режим InitGraph процедурасы арқылы жұмыс істейді. Ал жабу - CloseGraph процедурасы арқылы.

InitGraph процедурасы мынадай сипаттамадан тұрады:

InitGraph(Драйвер: Integer; Режім: Integer; Путь к файлу драйвера: String)

Алғашқы екі параметр константамен сипатталады: графикалық драйвер және режім.

Үшінші типтік параметр String болып табылады. MS-DOS операциялық жүйесіндей каталогқа баратын жолын көрсетеді. Оның ішінде графикалық драйверлердің файлдары орналасқан (*. BGI) .

SetColor процедурасы

Бейнелейтін символдар мен түзулердің түсін орнату процедурасы. SetColor процедурасының жалпы жазылуы:

SetColor(Color:Word) ;

Мұндағы Color - ағымдағы түс.

SetFillStyle процедурасы

SetFillStyle боялу түсін және нұсқасын анықтайды.

Процедураның жазылуы:

Procedure SetFillStyle(Pattern:Word; Color:Word) ;

Мұндағы: Pattern - толтыру нұсқасы;

Color - боялу түсі.

Line процедурасы

Line берілген координаталар бойынша екі нүкте аралығында түзу бейнелеу процедурасы.

Процедураның жазылуы:

Procedure Line(X1, Y1, X2, Y2:Integer) ;

Мұндағы: Х1, Y1 - түзудің басталу нүктесінің координаталары;

Х2, Y2 - түзудің соңғы нүктесінің координаталары.

Түзудің қалыңдығын және бейнелеу түрін SetLineStyle процедурасының көмегімен анықталады.

Ал түзудің түсі SetColor процедурасының көмегімен беріледі.

SetLineStyle процедурасы

SetLineStyle түзудің жаңа түрін белгілейді.

Процедураның жазылуы:

Procedure SetLineStyle(Type, Pattern, Thick:Word) ;

Мұндағы Type - түзу типі;

Pattern - түзу түрі;

Thick - түзу қалыңдығы.

Circle процедурасы

Circle шеңбер салу процедурасы.

Процедураның жазылуы:

Procedure Circle(X, Y:Integer; Rad:Word) ;

Мүндағы X, Y - шеңбердің центрі.

Rad - шеңбердің радиусы.

CloseGraph процедурасы

Графиктік режимді жабу процедурасы. Процедура жазылымы:

CloseGraph;

Бұл процедура жадыда орналасқан барлық графиктік параметрлерден босатады.

Мысалы: үшбұрыш салу.

Program salu;

Uses Graph;

Const a=100; b=5;

Var Gd, Gm, x, y: Integer;

Procedure Triangle(x0, y0: Integer) ;

begin

MoveTo(x0, y0) ;

LineRel(0, 200) ; LineRel(200, 0) ; LineRel(-200, -200)

end;

BEGIN

InitGraph(Gd, Gm, 'd:\tp\bgi') ;

x:=100; y:=100;

Triangle(x, y) ;

Triangle(x+a, y+b) ;

Readln; CloseGraph

END.

3 Есептің алгоритмі

Алгоритм дегеніміз - программаны орындауға қажетті процедуралармен функциялар жиыны болып табылады.

Бұл програманы іске қосу үшін бір процедура және программаның негізгі денесі сынды циклдар қажет: процедураны программаның ішіндегі Graph-тың басында енгіземіз, бірақ оны программаның негізгі бөлімінде шақырамыз. Содан кейін Graph-ты жабамыз. Келесі бөлімінде массив қолданамыз: ол үшін 20 айналымнан тұратын 5 орынды цикл оператор арқылы енгіземіз. Егер спортшы 5 кругта да 1-ші орын алса, ол басқалардың ұпайын санамай, бірден сол спортшыны экранның бетіне шығарады.

4 Программаны баяндау

4. 1 Жалпы мағлұматтар

Бұл программа паскаль тілінің Turbo Pascal 7. 0 версиясында жазылған. Мұнда crt, graph стандартты кітапхана модулдерін қолданамыз. Өйткені мұнда көптеген процедуралар мен функциялар қолданылған.

4. 2 Функционалдық тағайындалуы

Бұл программа жоғарыда берілген есептің сол тілде шығарылуы жолын тексеріп, соларды салыстыруға арналған. Turbo Pascal тілі арқылы іске асады.

4. 3 Қолданылатын техникалық жабдықтар

Процессор - Pentium 4 1, 7 Ghz

Монитор - FLATRON 775FT

Пернелік тақта

Тышқан

Turbo Pascal есептеуіш

4. 4 Программаны шақыру мен орындау

Жұмысқа кiрiспес бұрын, компьютердi ток көзiне қосып жүктеймiз. Содан кейiн Windows операциялық жүйесiнен бiзге қажет Turbo Pascal 7. x Borland Pascal 7. x интегралды бағдарламалау ортасына енемiз.

Егер ешқандай қате болмаса, онда Ctrl+F9 пернелерiн басып, бағдарламаны жүктеймiз. Ойнап болған соң кез келген пернені басып, бағдарламадан шығамыз. Ойынды қосудың басқа жолы ол [ойын файлының аты] . exe файлын жүктеу арқылы да жүзеге асыруға болады.

4. 5 Енгізілетін мәліметтер

Алғашқы бес орын алған велосипедшілердің тізімі

4. 6. Шығарылатын мәліметтер

Велосипедшілердің жүрген жүрісін бейнелейді, максимум ұпайын шыққан немесе 5 айналымында бірінші орын алған велосипедшіні экранның бетіне шығарылуы.

4. 7 Программаның логикалық структурасы

  1. программа аты esep;
  2. crt - стандартты кітапханасын және graph-ты қолдану;
... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Математиканы модульдік технологиямен оқыту
Спорттық ойындар және олардың өткізілуі
Шаңғы спорты
Жаратылыстану цикіліндегі пәндерді оқытудың жағдайын және осы пәндер бойынша оқушылардың білім сапасын ұбт нәтижесі негізінде талдау
Дене тәрбие саласы. Дене тәрбиесінің міндеттері мен маңызы
Шорт – трек туралы мағлұмат
Көліктік байланыс туралы жалпы мәлімет
Информатика курсында оқушыларды оқытуда компьютерлік ойындарды пайдалану
Медиа және медиа білім беру
ТАЛАП ҚОЮ АРЫЗЫН ЖАУАПКЕРГЕ ТАПСЫРУ
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz