Delphi жүйесінде ойын құрастыру


Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 27 бет
Таңдаулыға:
ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ
БIЛIМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛIГI
Техникалық кибернетика кафедрасы
Программалау пәнi бойынша
КУРСТЫҚ ЖОБАҒА ТҮСIНIК
Тақырыбы:
Delphi жүйесінде ойын құрастыру
Мазмұны
1. Кiрiспе . . . . . 3
2. Есептiң математикалық қойылымы . . . . . 5
3. Есептi шығарудың тәсiлдерiн баяндау . . . . …6
3. 1. Iздеу алгоритмдерi . . . . . . 6
3. 1. 1. Сызықты iздеу . . . . . . 6
3. 1. 2. Тосқауылы бар iздеу . . . . . . 6
3. 1. 3. Екiлiк (бинарлы) iздеу . . . . . . 8
3. 2. Сорттау алгоритмдерi . . . . . . 9
3. 2. 1. Таңдау арқылы сорттау . . . . . . 9
3. 2. 2. Айырбаспен сорттау (“көбiкше” тәсiлiмен) . . . 10
3. 2. 3. Шейкерлi сорттау . . . 11
3. 2. 4. Қосу арқылы сорттау . . . 11
3. 2. 5. Хоар сорттауы . . . 13
4. Алгоритмнiң негiзгi ойын баяндау . . . 14
5. Логикалық құрылымның баяндалуы (Паскаль тiлiндегi программа үшiн) . 16
6. Блок-схема . . . 20
7. Қолданылған техникалық жабдықтар . . . 26
8. Бағдарламаны шақыру және жүктеу . . . 26
9. Есептi шығару алгоритмнiң программалық жазбасы (Паскаль тiлiнде) . . . 27
10. Пайдаланылған әдебиеттер тiзiмi . . .
1. Кiрiспе
Ойын деген - ойын сауық, демалыс, спорттық жарысқа негiзделген жұмыс түрi. Ойын адамның көңiлiн өсiрiп, ойын сергiтiп қана қоймай, сонымен қатар оның таным-түсiнiгiн арттырады.
Қазір компьютерлік ойындарды жасау кең ауқымды болып отыр. Қазiргi кездегi бағдарламалау тiлдерi көмегiмен бағдарламаларда ойындарды санаулы сағаттар ішінде жасауға болады, көптегкн компьютерлiк ойындарды жасайтын фирмалар бар. Бұл бағдарламалар осындай мақсаттарға арналған құралдары жақсы дамытылған. Онда ойын жасап жүрген шеберлер өздерінің барлық мүмкіндіктерін көрсете алады, ал жас бағдарламалаушылардың үйренуіне болады.
Бүгінгі күнде компьютерлік ойындардың көптеген түрлері бар. Олар типіне, әдістеріне қарай бірнеше топқа бөлiнедi.
Лабиринт ойындары ең ежелгі ойындардың бірі болып табылады. Олардың мағынысын қысқартылған түрде келтірсек: сіз лабиринт бойынша жүресіз, бір жерлерде кедергілер болады т. с. с. Олардың алғашқылары екі өлшемді графика жабдықтарымен жасалса, ал қазір үш өлшемді ойындарға айланып отыр.
Үстелдегі ойындарды жасаудың алғашқы кезеңінде оны жасаушылар бір мақсат көздеді. Ол - жасанды интеллекті ойнату. Кейін барып олардың үш өлшемді түрлері пайда болды. Мұндай ойындар типiне шахмат, дойбы, домино, «Морской бой», «Бильярд» ойындары және т. б. жатады.
Карталық ойындар да үстелдік ойындар сияқты өзінің пайда болу кезінен бері көп өзгере қойған жоқ. Тек ойнаушылар саны арттырылды және колодты таңдау сияқты әртүрлі мүмкіндіктер пайда болды. Бұл ойындарға атақты «Дурак», «Преферанс», «Покер» және басқалары жатады.
Викториналық ойындар әдетте көп орын алады, бірақ жаңадан шыққан көптеген бағдарламалрдың көмегімен оларды жасау қиын емес. Бұл жерде сұрақтар және олардың жауабы мүмкін болатын варианттар беріледі. Ойынның мақсаты - мейлiнше көп сұраққа жауап берiп, ойынның түбiне жету. Бұған мысал ретінде «Поле чудес», «О, счастливчик!», «Угадай мелодию», «Лимпопо» ойындарын жатқызуға болады.
Атқыштар - ойындарда сіз космостық кемені басқарып, әртүрлі нысаналарды атасыз немесе жаудың самолеттарын жаруға тырысасыз, әйтпесе су асты кемелерден теңіз бетіндегі кемелерді бомбылайсыз. Әдетте бұл ойындар екі өлшемді болып келеді.
Жүргіштер (бродилки) - ойындарында басты кейіпкер болады, оны, әрине, сіз басқарасыз. Ол жүгіріп отырып (ойын уақыты маңызды болса) немесе жүріп отырып әртүрлі кедергілерден өтеді, берiлген шарттарды орындауға тырысадыжәне т. с. с.
Стратегиялар - ұзақ уақытты және ойыншыдан белгiлi бiр қабiлеттердi талап етедi. Негiзгi ой - дұрыс ұйымдастырушылық, жылдам ойлау.
Симуляторлар - компьютер көмегiмен автокөлiк, ұшақ, тiкұшақ, танк, мотоцикл және т. б. көлiк түрiн айдауға негiзделген.
Басауыртпа ойындары (головоломки) . Оларға «Тетрис» ойынын жатқызуға болады. Бұл ойының мақсаты - түскен денелерді тығызырақ орналастыру және толған қатарлардан құтылу. Ойын барысында денелер күрделірек бола бастайды және олардың түсу жылдамдықтары артады. Ойын мақсаты - логика көмегiмен ойынды жеңiп шығу. Негiзiнен бұл ойындар типiне әртүрлi пазлдар, кросвордтар, логикалық және т. б. жатады.
Есептi шығарудың тәсiлдерiн баяндау
3. 1. Iздеу алгоритмдерi
Iздеу алгоритмдерi мысалы массивте белгiлi қасиеттерi бар элементтердi табу үшiн қолданылады. Әдетте элементтiң алғашқы және соңғы кiрулерiн iздеудегi есеп берiлгендерiмен ажыратады. Төменде келтiрiлген барлық алгоритмдерде N бүтiн санды А массивiнде Х-қа тең элемент iздеу керек деп есептеледi.
3. 1. 1. Сызықты iздеу
Сызықты iздеу екi еселi шарты бар циклмен ( while немесе repeat - until ) орындалады. Бiрiншi шарт индекстiң массивке тиiстiлiгiн тексередi, мысалы, (i<=N) . Екiншi шарт - бұл iздеудiң шарты. Бiздiң жағдайда while циклiнде бұл iздеудi жалғастыру шарты: (A[i] <>X), ал repeat - until циклiнде бұл iздеудi аяқтау шарты: (A[i] =X) . Цикл денесiнде әдетте тек жалғыз оператор: массивтегi индекстiң өзгеруi ғана жазылады.
Циклдан шыққаннан кейiн қай шарт бойынша шыққанымызды тексеруiмiз керек. Әдетте if операторында циклдiң бiрiншi шартын қайталайды. Бұл шарт орындалуын while циклi жағдайында шарттың орындалуын, ал repeat - until циклiмен оның бұзылуы кезiнде сәттi iздеу деп айтуға болады.
Мысалы: Сызықты iздеу.
program Poisk1;
var A: array [1. . 100] of integer;
N, X, i:integer;
begin
read (N) ; {N<=100}
for i:=1 to N do
writeln ('Массивтi енгiзiңiз') ;
read (A[i] ) ;
writeln ('Iзделiнетiн санды енгiзiңiз') ;
read (X) ;
i:=1; {i:=0; }
while (i<=N) and (A[i] <>X) do i:=i+1;
{ repeat i:=i+1; until (i>N) or (A[i] =X) ; }
if i<=N then write (' A массивiне ', i, ' орында', X, ' санының бiрiншi кiруi ')
else write ('тапқан жоқпыз') ;
end .
Соңғы кiрудi iздеу кезiнде енгiзгеннен кейiн келесi операторлар жүру керек.
i:=N; {i:=N+1; }
while (i>=1) and (A[i] <>X) do i:=i-1;
{ repeat i:=i-1; until (i<1) or (A[i] =X) ; }
if i>=1 then write (' A массивiне ', i, ' орында', X, ' санының соңғы кiруi ')
else write ('тапқан жоқпыз') ;
3. 1. 2. Тосқауылы бар iздеу
Тосқауылы бар iздеу әрб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ң ең шеткi элементiнiң орнына.
Мысалы: Тосқауылы бар iздеу
program Poisk2a;
var A: array [1. . 101] of integer;
N, X, i:integer;
begin
read (N) ; {N<=100}
for i:=1 to N do
writeln ('Массивтi енгiзiңiз') ;
read (A[i] ) ;
writeln ('Iзделiнетiн санды енгiзiңiз') ;
read (X) ;
A[N+1] :=X; {қосымша элемент арқылы тосқауыл қою}
i:=1; {i:=0; }
while A[i] <>X do i:=i+1;
{ repeat i:=i+1; until A[i] =X; }
if i<=N then write (' A массивiне ', i, ' орында', X, ' санының бiрiншi кiруi ')
else write ('тапқан жоқпыз') ;
end .
program Poisk2b;
var A: array [1. . 100] of integer;
N, X, i, y:integer;
begin
read (N) ; {N<=100}
for i:=1 to N do read (A[i] ) ;
read (X) ;
y:=A[N] ; {соңғы элементтi сақтау}
A[N] :=X; {тосқауылды массивтiң соңғы орнына орнату}
i:=1; {i:=0; }
while A[i] <>X do i:=i+1;
{ repeat i:=i+1; until A[i] =X; }
if (i<N) or (y=X) then
write (' A массивiне ', i, ' орында', X, ' санының бiрiншi кiруi ')
else write ('тапқан жоқпыз') ;
A[N] :=y; {массивтiң оңғы элементiн қалпына келтiру}
end .
3. 1. 3. Екiлiк (бинарлы) iздеу
Екiлiк iздеу алгоритмiн берiлген қасиетi бар элементтi iздеу тек сол қасиет бойынша реттелген массивтен табуға болады. Сонымен берiлген мәнi бар элементтi элементтерi өспелi не кемiмелi массивтен табуға болады. Ал, мысалы, берiлген цифрлар қосындысы бар санды табу үшiн, массив элеметтерiнiң цифрлары қосындысының өсу не кему ретiмен орналасуы қажет.
Алгоритм идеясы массив әрбiр рет қақ бөлiнiп, берiлген элемент жатуы мүмкiн бөлiгi алынады. Бөлiну iздеуге арналған массив бөлiгiнiң бiр элементтен көп болғанша жүрiп, содан кейiн сол қалған элементтi берiлген iздеу шартына орындалатындығы тексерiледi.
Бұл алгоритмнiң бiрiншi және соңғы кiрулердi iздеуге арналған екi модификациясы бар. Бұл орташа элемент қалай таңдалынатындығына байланысты: кiшi не үлкен жаққа қарай дөңгелектенуi. Бiрiншi жағдайда орташа элемент массивтiң сол жағына, ал екiншi жағдайда оң жағына тиiстi болады.
Екiлiк iздеу алгоритм жұмысы процесiнде iздеу жүргiзiлуi қажеттi фрагмент бөлiгi әрбiр рет шамамен екi есе азаю керек. Бұл алгоритмнiң есептеу қиындығы 2 негiзi бар N логарифмдi дәрежеге тең, мұндағы N - массив элементтерiнiң саны.
Мысалы: Х санының өсу ретiмен орналасқан массивке енуiн iздеу
program Poisk3a;
var A: array [1. . 100] of integer;
N, X, left, right, i, c:integer;
Begin
Writeln (‘массивтiң өлшемiн енгiз’) ;
read (N) ; {N<=100}
writeln ('өсу ретiмен массив енгiзiңiз') ;
for i:=1 to N do read (A[i] ) ;
writeln (‘өз элементiңдi енгiз’) ;
read (X) ;
left:=1; right:=N;
{iздеуге арналған сол және оң шекара фрагменттерi}
while left<right do
begin
c:=(left + right) div 2;
{кiшi жаққа қарай дөңгелектелiнген орта}
if X>A[c] then
{егер массив кему ретiмен енгiзiлсе, онда if X<A[c] }
left:=c+1
{left ауыстыра отырып ортасыз оң жағын аламыз}
else right:=c;
{right ауыстыра отырып ортасыз сол жағын аламыз }
end ;
if X=A[left] then {мұндағы left = right, бiрақ әрқашан емес = c}
writeln (' A массивiне ', left, ' орында', X, ' санының соңғы кiруi ')
else writeln ('тапқан жоқпыз') ;
end .
3. 2. Сорттау алгоритмдерi
Сорттаудың ең қарапайым есеб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з.
3. 2. 1. Таңдау арқылы сорттау
Тәсiл идеясы массивтiң максималды элементiн тауып, оны соңғы элемент (N номерлi) орнымен ауыстырылады. Содан кейiн максималды элемент N-1 орынға дейiн iзделiп, сол N-1 орынға қойылады және т. с. с. Максимум емес, минимум элемент iзделiп, оны бiрiншi, екiншi және т. с. с. орынға қоюға болады. Сонымен қатар бұл әдiстiң модификацияланған түрi - бiр мезетте максимум және минимум элементтердi iздеу қолданылады. Бұл жағдайда сыртқы циклдың қадамдар саны N div 2.
Таңдау арқылы сорттаудың есептеу қиындығы - N*N шамасының өлшемi, әдетте оны O(N*N) деп жазады. Бұл салыстырулар саны бiрiншi максимумды iздегенде N-1-ге тең, содан кейiн N-2, N-3 және т. с. с. 1-ге дейiн, соымен N*(N-1) /2 болумен түсiндiрiледi.
Мысалы : А массивiнiң N бүтiн сандарының өсуi бойынша таңдау арқылы сорттау.
program Sort_Vybor1;
var A: array [1. . 100] of integer;
N, i, m, k, x : integer;
begin
write ('Массив элементтерiнiң саны') ;
read (N) ;
for i:=1 to n do
writeln ('Массивтi енгiзiңiз') ;
read (A[i] ) ;
for k:=n downto 2 do { k - max-ты iздеуге қажеттi элементтер саны }
begin
m:=1; { m - max орны}
for i:=2 to k do if A[i] >A[m] then m:=i;
{ m және k номерлi элементтердi орындарымен ауыстырамыз}
x:=A[m] ; A[m] :=A[k] ; A[k] :=x;
end ;
for i:=1 to n do write (A[i], ' ') ; {реттелген массив}
end .
Мысалы : Жоғарыдағы есеп, бiрақ бiр мезеттегi max пен min таңдау арқылы.
program Sort_Vybor2;
var A: array [1. . 100] of integer;
N, i, m, k, x, p : integer;
begin
write ('Массив элементтерiнiң саны') ;
read (N) ;
for i:=1 to n do
writeln ('Массивтi енгiзiңiз') ;
read (A[i] ) ;
for k:=1 to n div 2 do { k - max және min жұбының орны }
begin
m:=k; { m - max орны }
p:=k; { p - min орны }
{max және min k-дан n-k+1 элементтер арасында iзделедi }
for i:=k+1 to n-k+1 do
if A[i] >A[m] then m:=i
else if A[i] <A[p] then p:=i;
{ p және k номерлi элементтердi орындарымен ауыстырамыз }
x:=A[p] ; A[p] :=A[k] ; A[k] :=x;
if m=k then m:=p;
{егер max k орында тұрса, ендi ол p орында тұр }
{ m және n-k+1 номерлi элементтердi орындарымен ауыстырамыз }
x:=A[m] ; A[m] :=A[n-k+1] ; A[n-k+1] :=x;
end ;
for i:=1 to n do write (A[i], ' ') ; {реттелген массив}
end .
3. 2. 2. Айырбаспен сорттау (“көбiкше” тәсiлiмен)
Тәлiл идеясы рет бойынша массивтiң көршiлес жұптары тексерiлуiнде құрылған. Егер олар олар керектi реттiлiкте болмаса, онда көршiлес элементтер жұбын орындарымен ауыстырамыз. Мұндай бiр өтуден кейiн N номерi орынында максимал элемент орналасады (бiрiншi көбiкше “қалқып” шықты) . Келесi өту N-1 элементке дейiн қарастыру керек және т. с. с. Барлығы N-1 өту қажет болады. Айырбаспен сорттаудың есептеу қиындығы O(N*N) .
Мысалы : А массивiнiң N бүтiн сандарының өсуi бойынша айырбаспен сорттау. (Негiзгi вариант)
program Sort_Obmen1;
var A: array [1. . 100] of integer;
N, i, k, x : integer;
begin
write ('Массив элементтерiнiң саны') ;
read (N) ;
for i:=1 to n do
writeln ('Массивтi енгiзiңiз') ;
read (A[i] ) ;
for k:=n-1 downto 1 do { k - салыстырылатын жұптар саны }
for i:=1 to k do
if A[i] >A[i+1] then
{көршiлес элементтердi орындарымен ауыстырамыз}
begin x:=A[i] ; A[i] :=A[i+1] ; A[i+1] :=x; end ;
for i:=1 to n do write (A[i], ' ') ; {реттелген массив}
end .
3. 2. 3. Шейкерлi сорттау
Бұл алгоритм негiзiнен айырбас арқылы сорттаудың модификациясы болып табылады. Айырмашылығы айырбас арқылы сорттауда өтулер бiр жақты ғана болса, мұнда бағыт әрбiр рет сайын өзгерiп отырады. Сонымен қатар шейкерлi сорттауда айырбас фактi мен айырбастың соңғы орнын анықтауға болады. Негiзгi алгоритмде екiлiк өтулер саны N div 2-ге теi. Шейкерлi сорттаудың есептеу қиындығы O(N*N) .
Мысалы: N бүтiн сандардан құралған А массивiн Шейкерлi сорттау арқылы өсу ретiмен орналастыру.
program Shaker;
var A: array [1. . 100] of integer;
N, i, k, x, j, d : integer;
begin
write ('Массив элементтерiнiң саны') ;
read (N) ;
for i:=1 to n do
writeln ('Массивтi енгiзiңiз') ;
read (A[i] ) ;
d:=1; i:=0;
for k:=n-1 downto 1 do { k - салыстырылатын жұптар саны }
begin
i:=i+d;
for j:=1 to k do
begin
if (A[i] -A[i+d] ) *d>0 then
{көршiлес элементтердi орындарымен ауыстыру}
begin x:=A[i] ; A[i] :=A[i+d] ; A[i+d] :=x; end ;
i:=i+d;
end ;
d:=-d;
{қозғалыс бағытын қарама-қарсыға өзгертемiз}
end ;
for i:=1 to n do write (A[i], ' ') ; {реттелген массив}
end .
3. 2. 4. Қосу арқылы сорттау
Берiлген тәсiлдiң идеясы әрбiр рет К элементтен тұратын реттелген массивке реттеулiгi өзгермейтiндей етiп тағы бiр элемент қосамыз. Сорттаалу массив енгiзiлумен қатар жүрiп отыруы мүмкiн.
Сорттау алдында массивтiң реттелген бөлiгi тек бiр ғана элементтен тұрады, ол бөлек енгiзiледi немесе егер массив бар болса және ол жалғыз және дұрыс орында тұр деп есептеледi. қосылатын элементке орын iздеудiң әртүрлi тәсiлдерi қосу арқылы сорттаудың түрлi модификацияларына алып келедi.
Сызықты iздеудi қолданғанда, қосу арқылы сорттаудыi есептеу қиындығы O(N*N), ал екiлiк iздеу кезiнде - O(N*LogN) (негiзi 2 болатын логарифм) болады.
Мысалы: N бүтiн сандардан құралған А массивiн сызықты iздеуi бар қосу арқылы сорттау арқылы өсу ретiмен орналастыру.
program Sort_Include1;
var A: array [1. . 100] of integer;
N, i, k, x : integer;
begin
write ('Массив элементтерiнiң саны ') ;
read (N) ;
writeln ('Массивтi енгiзiңiз') ;
read (A[1] ) ; { for i:=1 to n do read (A[i] ) ; }
{k - массивтiң реттелген бөлiгiндегi элементтер саны}
for k:=1 to n-1 do
begin
read (x) ; {x:=A[k+1] ; }
i:=k;
while (i>0) and (A[i] >x) do
begin
A[i+1] :=A[i] ;
i:=i-1;
end ;
A[i+1] :=x;
end ;
for i:=1 to n do write (A[i], ' ') ; {реттелген массив}
end .
Мысалы: N бүтiн сандардан құралған А массивiн екiлiк iздеуi бар қосу арқылы сорттау арқылы өсу ретiмен орналастыру.
program Sort_Include2;
var A: array [1. . 100] of integer;
N, i, k, x, c, left, right : integer;
begin
write ('Массив элементтерiнiң саны') ;
read (N) ;
writeln ('Массивтi енгiзiңiз') ;
read (A[1] ) ; { for i:=1 to n do read (A[i] ) ; }
{k - массивтiң реттелген бөлiгiндегi элементтер саны }
for k:=1 to n-1 do
begin
read (x) ; {x:=A[k+1] ; }
left:=1; right:=k;
{iздеуге керектi фрагменттiң оң және сол шекарасы}
while left<right do
{соңғы кiрудiң екiлiк iздеуi}
begin
c:=(left+right+1) div 2;
{ үлкен жаққа дөңгелектенген ортасы }
if x>=A[c] then left:=c
{ортасы мен оң жағын аламыз}
else right:=c-1; {ортасыз сол жағын аламыз}
end ;
if x>=A[left] then left:=left+1;
{х қосылуға орын босата отырып, массивтi 1 орынға оңға жылжытамыз}
for i:=k downto left do A[i+1] :=A[i] ;
A[left] :=x;
end ;
for i:=1 to n do write (A[i], ' ') ; {реттелген массив}
end .
3. 2. 5. Хоар сорттауы
Бұл сорттауды жылдам сорттау деп те атайды. Әдiстi 1962 жылы Оксфорд университетiнiң профессоры К. Хоар жасаған болатын. N бүтiн сандардан құралған А массивiн өсу ретiмен орналастыру принципiнiң жұмысын қарастырайық.
Қандай да бiр элементтiң мәнi (әдетте ортаңғы) Х айнымалысына жазылады. Массив элементтерi қарастырылады. Солдан-оңға қарай жылжығанда Х-тан үлкен не оған тең элемент iздеймiз. Ал оңнан-солға қарай жылжығанда Х-тан үлкен не тең элемент iздеймiз. Табылған элементтер орындарымен ауыстырылады және қарама-қарсы iздеу жалғастырылады.
Содан кейiн массив екiге бөлiнедi. Бiрiншiсiнде Х-тан кiшi не тең элементтер, ал оң жағында Х-тан үлкен не тең элементтер орналасады. А массивiн сорттаудағы алғашқы есептi алынған массив бөлiктерiн сорттаудағы екi есепшеге бөлуге болады.
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz