Ойындар
Кіріспе
1. Есептің қойылымы
2. Пайдалынатын әдістер
2.1 «Үш стакан методы» бойынша сұрыптау
2.2 Іздеу (поиск)
2.3 Рекурсия
2.4 Көпіршікті сұрыптау
2.5 Қосалқы (ішкі) программалар
2.5.1 Функцияларды баяндау
2.5.2 Функцияларды шақыру
2.6 Graphics.h кітапханасы
3. Есептің алгоритмі
4. Программаның баяндалуы
4.1 Жалпы мәліметтер
4.2 Программа қызметі
4.3 Қолданылған техникалық жабдықтар
4.4 Программаны шақыру және орындау
4.5 Енгізілген мәліметтер
4.6 Шығарылған мәліметтер
4.7 Логикалық структурасы
4. Қорытынды
Пайдаланған әдебиеттер тізімі
1. Есептің қойылымы
2. Пайдалынатын әдістер
2.1 «Үш стакан методы» бойынша сұрыптау
2.2 Іздеу (поиск)
2.3 Рекурсия
2.4 Көпіршікті сұрыптау
2.5 Қосалқы (ішкі) программалар
2.5.1 Функцияларды баяндау
2.5.2 Функцияларды шақыру
2.6 Graphics.h кітапханасы
3. Есептің алгоритмі
4. Программаның баяндалуы
4.1 Жалпы мәліметтер
4.2 Программа қызметі
4.3 Қолданылған техникалық жабдықтар
4.4 Программаны шақыру және орындау
4.5 Енгізілген мәліметтер
4.6 Шығарылған мәліметтер
4.7 Логикалық структурасы
4. Қорытынды
Пайдаланған әдебиеттер тізімі
Ойындардың маңызы баяғы заманнан бері жойылған жоқ. Ойындар ойлау қабілетін, логиканы т.б. дамытады. Ойындар әсіресе кішкентай балалардың дамуына көп көмек көрсетеді.
Алғашқы ойындар біздің заманымызға дейінгі мыңдаған жылдар бұрын пайда болған. Ол ойындар өте қарапайым болған. Бірақ сол кезеңде Үндістан жерінде өте қызық әрі күрделі шахмат ойыны пайда болады. Аңыз бойынша бұл ойынды шах бұйрығы бойынша шах сарайының бір ғалымы ойлап тапқан екен. Шахқа ойынның ұнағаны сонша, ол өзінің көмекшілеріне ғалымға өзі қалаған сыйлықты тарту етіңдер деген екен. Ғалым сыйлық ретінде оған шахмат тақтасындағы шаршылар санындай бидай дәнін беруін сұраған. Бірақ бидай саны былай саналуы керек болды: Әрбір келесі шаршыға оның алдындағы шаршының квадраты көбейтілуі қажет еді. Шах болса, бұл бір екі-үш қап бидай болар, неге алтын сұрамаған деп таң қалып кетіп қалады. Ертеңгісін көмекшілерін шақырып, ғалымға бидайын бергендігін сұрайды. Бірақ көмекшілері әлі бидай санын санап бітпегенін айтады. Шах ашуланып, ғалымды өзіне шақыртады. Ғалым шахқа егер ол өзінің бүкіл жеріне бидай егіп тастаса да, тіпті бүкіл жер шарын бидай алқабына айналдырса да керек бидай санын жинай алмайтынын айтады. Шах ғалымның даналығына риза болып, оны дұрыстап марапаттауын бұйырады. Міне аңыз бойынша шахмат ойынының тарихы осындай.
Қазіргі кезде , жиырма бірінші ғасырда көптеген өзінің маңызын жоғалтты. Осы ғасыр IT-ғасыры болғандықтан қазір компьютерлік ойындар бірінші орынға шықты. Компьютерлік ойындар осы кезде көптеген миллиард доллар айналымы бар IT-индустрияның бір тармағы. Әрбір жаңа шыққан ойын бұрын шыққан ойындардан графикасы жағынан, сюжеті жағынан т.б жақсы болады.
Болашақта менің ойымша барлық ойындарды компьютерге көшіріп, ойындардың тек электронды варианттары қалады. Бірақ шахмат ойының маңызы жоғалмайды және ол болашақта да нағыз дарынды адамдардың ойыны болып қалады.
Алғашқы ойындар біздің заманымызға дейінгі мыңдаған жылдар бұрын пайда болған. Ол ойындар өте қарапайым болған. Бірақ сол кезеңде Үндістан жерінде өте қызық әрі күрделі шахмат ойыны пайда болады. Аңыз бойынша бұл ойынды шах бұйрығы бойынша шах сарайының бір ғалымы ойлап тапқан екен. Шахқа ойынның ұнағаны сонша, ол өзінің көмекшілеріне ғалымға өзі қалаған сыйлықты тарту етіңдер деген екен. Ғалым сыйлық ретінде оған шахмат тақтасындағы шаршылар санындай бидай дәнін беруін сұраған. Бірақ бидай саны былай саналуы керек болды: Әрбір келесі шаршыға оның алдындағы шаршының квадраты көбейтілуі қажет еді. Шах болса, бұл бір екі-үш қап бидай болар, неге алтын сұрамаған деп таң қалып кетіп қалады. Ертеңгісін көмекшілерін шақырып, ғалымға бидайын бергендігін сұрайды. Бірақ көмекшілері әлі бидай санын санап бітпегенін айтады. Шах ашуланып, ғалымды өзіне шақыртады. Ғалым шахқа егер ол өзінің бүкіл жеріне бидай егіп тастаса да, тіпті бүкіл жер шарын бидай алқабына айналдырса да керек бидай санын жинай алмайтынын айтады. Шах ғалымның даналығына риза болып, оны дұрыстап марапаттауын бұйырады. Міне аңыз бойынша шахмат ойынының тарихы осындай.
Қазіргі кезде , жиырма бірінші ғасырда көптеген өзінің маңызын жоғалтты. Осы ғасыр IT-ғасыры болғандықтан қазір компьютерлік ойындар бірінші орынға шықты. Компьютерлік ойындар осы кезде көптеген миллиард доллар айналымы бар IT-индустрияның бір тармағы. Әрбір жаңа шыққан ойын бұрын шыққан ойындардан графикасы жағынан, сюжеті жағынан т.б жақсы болады.
Болашақта менің ойымша барлық ойындарды компьютерге көшіріп, ойындардың тек электронды варианттары қалады. Бірақ шахмат ойының маңызы жоғалмайды және ол болашақта да нағыз дарынды адамдардың ойыны болып қалады.
1. Бочков С.О., Субботин Д.М. Язык программирования Си для ПК.
Москва, «Радио и связь», 1990.
2. Керниган Б., Ритчи Д. Язык программирования СИ. Задачи по языку СИ.
Москва, «Финансы и статистика», 1985.
3. Уинер Р. Язык ТурбоСи.
Москва, «Мир», 1991.
4. Страусруп Б. Язык программирования Си++.
Санкт-Петербург, «Невский диалект», 1999.
5. Дейтел Х., Дейтел П. Как программировать на С++.
Москва, «Бином», 1998.
6. Джуди Бишоп. Java 2. Эффективная работа.
Санкт-Петербург, «Питер», 2002.
7. Романов Е. Практикум по программированию на С++.
Санкт-Петербург, «БХВ-Петербург».
Москва, «Радио и связь», 1990.
2. Керниган Б., Ритчи Д. Язык программирования СИ. Задачи по языку СИ.
Москва, «Финансы и статистика», 1985.
3. Уинер Р. Язык ТурбоСи.
Москва, «Мир», 1991.
4. Страусруп Б. Язык программирования Си++.
Санкт-Петербург, «Невский диалект», 1999.
5. Дейтел Х., Дейтел П. Как программировать на С++.
Москва, «Бином», 1998.
6. Джуди Бишоп. Java 2. Эффективная работа.
Санкт-Петербург, «Питер», 2002.
7. Романов Е. Практикум по программированию на С++.
Санкт-Петербург, «БХВ-Петербург».
Пән: Информатика, Программалау, Мәліметтер қоры
Жұмыс түрі: Материал
Тегін: Антиплагиат
Көлемі: 16 бет
Таңдаулыға:
Жұмыс түрі: Материал
Тегін: Антиплагиат
Көлемі: 16 бет
Таңдаулыға:
Кіріспе
Ойындар
Ойындардың маңызы баяғы заманнан бері жойылған жоқ. Ойындар ойлау
қабілетін, логиканы т.б. дамытады. Ойындар әсіресе кішкентай балалардың
дамуына көп көмек көрсетеді.
Алғашқы ойындар біздің заманымызға дейінгі мыңдаған жылдар бұрын
пайда болған. Ол ойындар өте қарапайым болған. Бірақ сол кезеңде Үндістан
жерінде өте қызық әрі күрделі шахмат ойыны пайда болады. Аңыз бойынша бұл
ойынды шах бұйрығы бойынша шах сарайының бір ғалымы ойлап тапқан екен.
Шахқа ойынның ұнағаны сонша, ол өзінің көмекшілеріне ғалымға өзі қалаған
сыйлықты тарту етіңдер деген екен. Ғалым сыйлық ретінде оған шахмат
тақтасындағы шаршылар санындай бидай дәнін беруін сұраған. Бірақ бидай саны
былай саналуы керек болды: Әрбір келесі шаршыға оның алдындағы шаршының
квадраты көбейтілуі қажет еді. Шах болса, бұл бір екі-үш қап бидай болар,
неге алтын сұрамаған деп таң қалып кетіп қалады. Ертеңгісін көмекшілерін
шақырып, ғалымға бидайын бергендігін сұрайды. Бірақ көмекшілері әлі бидай
санын санап бітпегенін айтады. Шах ашуланып, ғалымды өзіне шақыртады. Ғалым
шахқа егер ол өзінің бүкіл жеріне бидай егіп тастаса да, тіпті бүкіл жер
шарын бидай алқабына айналдырса да керек бидай санын жинай алмайтынын
айтады. Шах ғалымның даналығына риза болып, оны дұрыстап марапаттауын
бұйырады. Міне аңыз бойынша шахмат ойынының тарихы осындай.
Қазіргі кезде , жиырма бірінші ғасырда көптеген өзінің маңызын
жоғалтты. Осы ғасыр IT-ғасыры болғандықтан қазір компьютерлік ойындар
бірінші орынға шықты. Компьютерлік ойындар осы кезде көптеген миллиард
доллар айналымы бар IT-индустрияның бір тармағы. Әрбір жаңа шыққан ойын
бұрын шыққан ойындардан графикасы жағынан, сюжеті жағынан т.б жақсы болады.
Болашақта менің ойымша барлық ойындарды компьютерге көшіріп,
ойындардың тек электронды варианттары қалады. Бірақ шахмат ойының маңызы
жоғалмайды және ол болашақта да нағыз дарынды адамдардың ойыны болып
қалады.
1. Есептің қойылымы
Бұл тапсырма Аттың серуені деп аталады. Шахмат тақтасындағы әр
жолға бір реттен жүретін аттың қозғалысын жүзеге асыратын программа құру.
2. Пайдалынатын әдістер
2.1 Үш стакан методы бойынша сұрыптау
Көптеген программалар тез орындалады, егер осы программа жұмыс
жасайтын ақпаратты сұрыптаса. Бұлай аталу себебі мынау: Бізде екі стакан
бар, осы стакандардың ішіндегісін араластыру үшін бізге үшінші стакан
қажет. Бұл сұрыптау сұрыптаудың ең жәй түрі. Себебі ол үшін массивтің әр
элементін бір-бірімен салыстырып шығу керек. Ең кішкентай элементті тауып,
оны бірінші орынға қоямыз. Келесі кіші элементтерді осы элементтен кейін
орналастырамыз. Бұл сұрыптаудың алгоритмі мынадай. Мысалы, төрт элементі
бар массив берілген.
1) for (i=0;i4;i++)
2) массивтегі минимал элементті тауып, оны бірінші орындағы
элементпен алмастыру
3) массивтің екінші элементінен бастап сұрыптап, минимал
элементті тауып, оны екінші элементпен алмастыру
4) осы операцияларды массивтің барлық элементтері
қаралғанша қайталау
і=0, ең кіші элемент 16 оны 74-пен орнын
ауыстырамыз
і=1, ең кіші элемент 45 ол өз орнында қалады
і=2, ең кіші элемент енді – 74 оны 4-элементпен
орнын
ауыстырамыз
і=3, ,массив сұрыпталды, элементтер өз орнында
қалады
Осы алгоритмді Cи тілінде көрсетсек, программа фрагменті былай
болады:
for(i=0; i4; i++)
for(j=i+1; j4; j++)
{
if (a[j]a[i]) {
c= a[j];
a[j]=a[i];
a[i]=c;
}
}
2.2 Іздеу (поиск)
Біз массив ішінде іздеу жүргізе аламыз. Ол үшін массивтің әрбір
элементін бізге керек ақпаратпен салыстырамыз. Егер ондай элемент бар
болса, онда оның орны қайтарылуы керек. Іздеу массивтің соңы болғанша, жүру
керек. Мысалы бізге массивтің ішіндегі К-ға тең элементті табу керек. Оның
алгоритмі былай болады:
1) Массивтің бірінші элементінен бастап, әрбір элементін К-
мен салыстырымыз, егер тең болса оны экранға шығарамыз.
2) Осылай массив соңына дейін салыстырамыз.
Бұл алгоритмді Cи тіліне көшірсек, фрагмент былай болады:
k=10;
for (i=0; in; i++)
for (j=0; jn; j++)
{
if (a[i][j] == k)
printf(“%d”, a[i][j]\n);
}
2.3 Рекурсия
Рекурсия деп, ішкі программаның өзін-өзі шақыруын айтады. Ал бұндай
ішкі программаларды рекурсивті ішкі программалар деп атайды. Рекурсияны
көбінесе циклдік есептеулердің орнына қолданады. Бірақ мысалы мынандай
жағдайда егер бір процедура екінші процедураны шақырса, ал ол процедура
алғашқы процедураны шақырса, бұл процедураларды рекурсивтік процедуралар
деп атаймыз. Рекурсияны қолданғанда өте мұқият болу қажет. Себебі дұрыс
емес алгоритм арқасында программа циклденіп қалуы мүмкін. Рекурсивті
шақырылулардың санын рекурсия тереңдігі деп атайды. Бұл тереңдіктің шегі
болу керек. Бұл туралы рекурсивтік алгоритм құрайтын программалаушы ойлану
керек. Рекурсияға бір мысал қарастырайық. Ханойская башня ойыны бар. Ол
ойынның шарты мынадай: белгілі әртүрлі диаметрлі дискілер беріледі, осы
дискілерді бірінші бағаннан екінші бағанды көмекші ретінде қолданып, үшінші
бағанға көшіру керек және кіші диаметрлі диск үстіне үлкен диаметрлі диск
қоюға болмайды. Дискілердің қанша орын ауыстыруын жасап, тапсырма
орындалады? Бұл есептің алгоритмі мынадай болады:
1) үстіңгі n-1 дискілерін екінші бағанға көшіру
2) бірінші бағанның ең төменгі дискісін үшіншіге көшіру
3) n-1 дискілерін біріншіні көмекші баған ретінде қолданып,
үшінші бағанға көшіру
4) үшінші бағанда дұрыс пирамида қалыптасқанша қайталау
Сонда бас тапсырма екі тапсырмашаға бөлінеді: біріншісі, n-1
дискілерін көшіру, екіншісі, бір дискті көшіру. Бұл программаны Си тілінде
орындасақ, былай болады:
includestdio.h
includestdlib.h
includemath.h
int hanoi_moves(int n)
{
if (n==1)
return 1;
else
return (2*hanoi_moves(n-1)+1);
printf(“%d”, hanoi_moves(5));
}
2.4 Көпіршікті сұрыптау
Бұл сұрыптаудың алгоритмі өте қарапайым. Бұл сұрыптауда элемент пен
одан кейінгі көршілес элемент қарастырылады. Егер шартты қанағаттандырса,
элементтерді орындарымен ауыстырамыз. Бұлай аталу себебі жеңіл элементтер
жоғарыға қалқып шығады. Бұл алгоритмді Си тілінде орындасақ, фрагмент
мына түрде беріледі:
do
{
for(i=0, found=0; in; i++)
if(a[i+1]a[i])
{
c=a[i+1];
a[i+1]=a[i];
a[i]=c;
found++;
}
while(found!=0);
2.5 Қосалқы (ішкі) программалар
Си тілінде қосалқы программалардың тек бір түрі болады: Ол
функциялар. Функцияларды программада жиі қолданылатын код болған кезде
пайдаланады. Бұл әдіс программа кодын әжептәуір азайтады. Си тілінде мән
қайтаратын және қайтармайтын функциялар қолданылады. Мән қайтаратын
функцияны өрнек ішінде қолдануға болады. Қосалқы программалардың
структурасы негізгі main функциясының структурасына ұқсас, тек тақырыбы
өзгеше. Қосалқы программаларды main функциясының ішінде не сыртында
баяндауға болады.
2.5.1 Функцияларды баяндау
Си тілінде функцияны баяндау:
қайтаратын мән типі функция идентификаторы(параметрлер
тізімі)
{
баяндау бөлімі
операторлар бөлімі
return қайтарылатын мән;
}
Мысал:
float f(float x, double y)
{
float s;
s=pow(x,2)+sin(y)+cos(x*y);
return s;
}
Си тілінде мән қайтармайтын функцияны баяндау:
void функция идентификаторы (параметрлер тізімі)
{
баяндау бөлімі
операторлар бөлімі
}
Мысал:
float s;
void f1(float x,double y)
{
s=pow(x,2)+sin(y)+cos(x*y);
}
2.5.2 Функцияларды шақыру
Барлық баяндалған функцияларды негізгі функцияда шақыру керек. Егер
де функция шақырылмаса, онда ол орындалмайды. Си тілінде функцияларды
шақыру үшін олардың идентификаторлары ғана қолданылады.
Мысал:
void main()
{
float res=0;
res=f(21.012, 2100.132564);
printf(“%f”, res);
f1(21.012, 2100.132564);
res=s;
printf(“%f”, res);
}
2.6 Graphics.h кітапханасы
Компьютерде екі жұмыс режимі болады:
• Тексттік режим
• Графикалық режим
Тексттік режимде біз тек қана текстпен жұмыс істейміз. Көптеген
геометриялық объектілерді экранға шығара алмаймыз. Ол үшін біз графикалық
режимге көшу керекпіз. Си тілінде графикалық режиммен жұмыс істеуге
арналған стандартты процедуралар мен функциялар Graphics.h кітапханасында
орналасқан. Бұл кітапхананы қолдану үшін оны қосу және драйверлер
орналасқан каталогтың толық жолын сиппаттау керек. Ол үшін include
бөлімінде graphics.h деп жазу керек:
#includegraphics.h
Кітапхананы қосқан соң графикалық режимді инициалдау керек:
#includegraphics.h
#define pathdrv “C:\\TurboC\\bgi\\”
int gd=DETECT, gm
void main()
{
initgraph(&gd, &gm, pathdrv);
closegraph();
}
Мұндағы gm айнымалысы қате кодын қайтарады, gd айнымалысы драйвер типін
береді, егер драйвер типі белгісіз болса, онда Detect түйінді сөзін
қолданған жөн. Бұл оператор драйвер типін өзі анықтайды. ... жалғасы
Ойындар
Ойындардың маңызы баяғы заманнан бері жойылған жоқ. Ойындар ойлау
қабілетін, логиканы т.б. дамытады. Ойындар әсіресе кішкентай балалардың
дамуына көп көмек көрсетеді.
Алғашқы ойындар біздің заманымызға дейінгі мыңдаған жылдар бұрын
пайда болған. Ол ойындар өте қарапайым болған. Бірақ сол кезеңде Үндістан
жерінде өте қызық әрі күрделі шахмат ойыны пайда болады. Аңыз бойынша бұл
ойынды шах бұйрығы бойынша шах сарайының бір ғалымы ойлап тапқан екен.
Шахқа ойынның ұнағаны сонша, ол өзінің көмекшілеріне ғалымға өзі қалаған
сыйлықты тарту етіңдер деген екен. Ғалым сыйлық ретінде оған шахмат
тақтасындағы шаршылар санындай бидай дәнін беруін сұраған. Бірақ бидай саны
былай саналуы керек болды: Әрбір келесі шаршыға оның алдындағы шаршының
квадраты көбейтілуі қажет еді. Шах болса, бұл бір екі-үш қап бидай болар,
неге алтын сұрамаған деп таң қалып кетіп қалады. Ертеңгісін көмекшілерін
шақырып, ғалымға бидайын бергендігін сұрайды. Бірақ көмекшілері әлі бидай
санын санап бітпегенін айтады. Шах ашуланып, ғалымды өзіне шақыртады. Ғалым
шахқа егер ол өзінің бүкіл жеріне бидай егіп тастаса да, тіпті бүкіл жер
шарын бидай алқабына айналдырса да керек бидай санын жинай алмайтынын
айтады. Шах ғалымның даналығына риза болып, оны дұрыстап марапаттауын
бұйырады. Міне аңыз бойынша шахмат ойынының тарихы осындай.
Қазіргі кезде , жиырма бірінші ғасырда көптеген өзінің маңызын
жоғалтты. Осы ғасыр IT-ғасыры болғандықтан қазір компьютерлік ойындар
бірінші орынға шықты. Компьютерлік ойындар осы кезде көптеген миллиард
доллар айналымы бар IT-индустрияның бір тармағы. Әрбір жаңа шыққан ойын
бұрын шыққан ойындардан графикасы жағынан, сюжеті жағынан т.б жақсы болады.
Болашақта менің ойымша барлық ойындарды компьютерге көшіріп,
ойындардың тек электронды варианттары қалады. Бірақ шахмат ойының маңызы
жоғалмайды және ол болашақта да нағыз дарынды адамдардың ойыны болып
қалады.
1. Есептің қойылымы
Бұл тапсырма Аттың серуені деп аталады. Шахмат тақтасындағы әр
жолға бір реттен жүретін аттың қозғалысын жүзеге асыратын программа құру.
2. Пайдалынатын әдістер
2.1 Үш стакан методы бойынша сұрыптау
Көптеген программалар тез орындалады, егер осы программа жұмыс
жасайтын ақпаратты сұрыптаса. Бұлай аталу себебі мынау: Бізде екі стакан
бар, осы стакандардың ішіндегісін араластыру үшін бізге үшінші стакан
қажет. Бұл сұрыптау сұрыптаудың ең жәй түрі. Себебі ол үшін массивтің әр
элементін бір-бірімен салыстырып шығу керек. Ең кішкентай элементті тауып,
оны бірінші орынға қоямыз. Келесі кіші элементтерді осы элементтен кейін
орналастырамыз. Бұл сұрыптаудың алгоритмі мынадай. Мысалы, төрт элементі
бар массив берілген.
1) for (i=0;i4;i++)
2) массивтегі минимал элементті тауып, оны бірінші орындағы
элементпен алмастыру
3) массивтің екінші элементінен бастап сұрыптап, минимал
элементті тауып, оны екінші элементпен алмастыру
4) осы операцияларды массивтің барлық элементтері
қаралғанша қайталау
і=0, ең кіші элемент 16 оны 74-пен орнын
ауыстырамыз
і=1, ең кіші элемент 45 ол өз орнында қалады
і=2, ең кіші элемент енді – 74 оны 4-элементпен
орнын
ауыстырамыз
і=3, ,массив сұрыпталды, элементтер өз орнында
қалады
Осы алгоритмді Cи тілінде көрсетсек, программа фрагменті былай
болады:
for(i=0; i4; i++)
for(j=i+1; j4; j++)
{
if (a[j]a[i]) {
c= a[j];
a[j]=a[i];
a[i]=c;
}
}
2.2 Іздеу (поиск)
Біз массив ішінде іздеу жүргізе аламыз. Ол үшін массивтің әрбір
элементін бізге керек ақпаратпен салыстырамыз. Егер ондай элемент бар
болса, онда оның орны қайтарылуы керек. Іздеу массивтің соңы болғанша, жүру
керек. Мысалы бізге массивтің ішіндегі К-ға тең элементті табу керек. Оның
алгоритмі былай болады:
1) Массивтің бірінші элементінен бастап, әрбір элементін К-
мен салыстырымыз, егер тең болса оны экранға шығарамыз.
2) Осылай массив соңына дейін салыстырамыз.
Бұл алгоритмді Cи тіліне көшірсек, фрагмент былай болады:
k=10;
for (i=0; in; i++)
for (j=0; jn; j++)
{
if (a[i][j] == k)
printf(“%d”, a[i][j]\n);
}
2.3 Рекурсия
Рекурсия деп, ішкі программаның өзін-өзі шақыруын айтады. Ал бұндай
ішкі программаларды рекурсивті ішкі программалар деп атайды. Рекурсияны
көбінесе циклдік есептеулердің орнына қолданады. Бірақ мысалы мынандай
жағдайда егер бір процедура екінші процедураны шақырса, ал ол процедура
алғашқы процедураны шақырса, бұл процедураларды рекурсивтік процедуралар
деп атаймыз. Рекурсияны қолданғанда өте мұқият болу қажет. Себебі дұрыс
емес алгоритм арқасында программа циклденіп қалуы мүмкін. Рекурсивті
шақырылулардың санын рекурсия тереңдігі деп атайды. Бұл тереңдіктің шегі
болу керек. Бұл туралы рекурсивтік алгоритм құрайтын программалаушы ойлану
керек. Рекурсияға бір мысал қарастырайық. Ханойская башня ойыны бар. Ол
ойынның шарты мынадай: белгілі әртүрлі диаметрлі дискілер беріледі, осы
дискілерді бірінші бағаннан екінші бағанды көмекші ретінде қолданып, үшінші
бағанға көшіру керек және кіші диаметрлі диск үстіне үлкен диаметрлі диск
қоюға болмайды. Дискілердің қанша орын ауыстыруын жасап, тапсырма
орындалады? Бұл есептің алгоритмі мынадай болады:
1) үстіңгі n-1 дискілерін екінші бағанға көшіру
2) бірінші бағанның ең төменгі дискісін үшіншіге көшіру
3) n-1 дискілерін біріншіні көмекші баған ретінде қолданып,
үшінші бағанға көшіру
4) үшінші бағанда дұрыс пирамида қалыптасқанша қайталау
Сонда бас тапсырма екі тапсырмашаға бөлінеді: біріншісі, n-1
дискілерін көшіру, екіншісі, бір дискті көшіру. Бұл программаны Си тілінде
орындасақ, былай болады:
includestdio.h
includestdlib.h
includemath.h
int hanoi_moves(int n)
{
if (n==1)
return 1;
else
return (2*hanoi_moves(n-1)+1);
printf(“%d”, hanoi_moves(5));
}
2.4 Көпіршікті сұрыптау
Бұл сұрыптаудың алгоритмі өте қарапайым. Бұл сұрыптауда элемент пен
одан кейінгі көршілес элемент қарастырылады. Егер шартты қанағаттандырса,
элементтерді орындарымен ауыстырамыз. Бұлай аталу себебі жеңіл элементтер
жоғарыға қалқып шығады. Бұл алгоритмді Си тілінде орындасақ, фрагмент
мына түрде беріледі:
do
{
for(i=0, found=0; in; i++)
if(a[i+1]a[i])
{
c=a[i+1];
a[i+1]=a[i];
a[i]=c;
found++;
}
while(found!=0);
2.5 Қосалқы (ішкі) программалар
Си тілінде қосалқы программалардың тек бір түрі болады: Ол
функциялар. Функцияларды программада жиі қолданылатын код болған кезде
пайдаланады. Бұл әдіс программа кодын әжептәуір азайтады. Си тілінде мән
қайтаратын және қайтармайтын функциялар қолданылады. Мән қайтаратын
функцияны өрнек ішінде қолдануға болады. Қосалқы программалардың
структурасы негізгі main функциясының структурасына ұқсас, тек тақырыбы
өзгеше. Қосалқы программаларды main функциясының ішінде не сыртында
баяндауға болады.
2.5.1 Функцияларды баяндау
Си тілінде функцияны баяндау:
қайтаратын мән типі функция идентификаторы(параметрлер
тізімі)
{
баяндау бөлімі
операторлар бөлімі
return қайтарылатын мән;
}
Мысал:
float f(float x, double y)
{
float s;
s=pow(x,2)+sin(y)+cos(x*y);
return s;
}
Си тілінде мән қайтармайтын функцияны баяндау:
void функция идентификаторы (параметрлер тізімі)
{
баяндау бөлімі
операторлар бөлімі
}
Мысал:
float s;
void f1(float x,double y)
{
s=pow(x,2)+sin(y)+cos(x*y);
}
2.5.2 Функцияларды шақыру
Барлық баяндалған функцияларды негізгі функцияда шақыру керек. Егер
де функция шақырылмаса, онда ол орындалмайды. Си тілінде функцияларды
шақыру үшін олардың идентификаторлары ғана қолданылады.
Мысал:
void main()
{
float res=0;
res=f(21.012, 2100.132564);
printf(“%f”, res);
f1(21.012, 2100.132564);
res=s;
printf(“%f”, res);
}
2.6 Graphics.h кітапханасы
Компьютерде екі жұмыс режимі болады:
• Тексттік режим
• Графикалық режим
Тексттік режимде біз тек қана текстпен жұмыс істейміз. Көптеген
геометриялық объектілерді экранға шығара алмаймыз. Ол үшін біз графикалық
режимге көшу керекпіз. Си тілінде графикалық режиммен жұмыс істеуге
арналған стандартты процедуралар мен функциялар Graphics.h кітапханасында
орналасқан. Бұл кітапхананы қолдану үшін оны қосу және драйверлер
орналасқан каталогтың толық жолын сиппаттау керек. Ол үшін include
бөлімінде graphics.h деп жазу керек:
#includegraphics.h
Кітапхананы қосқан соң графикалық режимді инициалдау керек:
#includegraphics.h
#define pathdrv “C:\\TurboC\\bgi\\”
int gd=DETECT, gm
void main()
{
initgraph(&gd, &gm, pathdrv);
closegraph();
}
Мұндағы gm айнымалысы қате кодын қайтарады, gd айнымалысы драйвер типін
береді, егер драйвер типі белгісіз болса, онда Detect түйінді сөзін
қолданған жөн. Бұл оператор драйвер типін өзі анықтайды. ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz