«Санды тап» ойыны



МАЗМҰНЫ

Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .3.4

1. Есептің қойылымы және тапсырманы талдау ... ... ... ... ... ... ... ..5.6

2. Теориялық бөлім ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .7
Есепті талдаудың әдістері
2.1. Сұрыптау әдісі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 7
2. 1. 1. Ішкі сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...7
2. 1. 2. Сыртқы сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .7
2. 1. 3. Бөлу сұрыптауы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 8
2.2. Іздеу әдісі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 8

3. Программаны жобалау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .9.10
Есептің алгоритмі

4. Программаны жүзеге асыру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 11
ЭЕМ мен қолданушы арасындағы байланыстар
4.1. Жалпы мәліметтер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 11
4.2 Функционалдық қолданылуы ... ... ... ... ... ... ... ... ... ... ... ... ... ... .11.12
4.3. Қолданылатын техникалық жабдықтар ... ... ... ... ... ... ... ... ... ... ... .13

5. Программаны тестілеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .14
Мүмкін болатын өзге шешу жолдары
5.1. Листинг 1 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .14.15
5.2. Листинг 2 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .16.17
5.3. Енгізілген. шығарылған мәліметтер ... ... ... ... ... ... ... ... ... ... ... ... ...18

Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...19
КІРІСПЕ

Си программалау тілі- қазіргі таңда кеңінен қолданылатын тіл болып табылады. Оның қолданылу аймағы неліктен кең деген сұраққа келер болсақ, Си тілі өзіне ұқсас программалау тілдеріне қарағанда графикалық, есептеу тәсілдері жеңіл де иілгіш тіл екендігінде. Программалау тілдерінің үш деңгейге бөлінетінін білеміз. Соның орташа деңгейіне Паскаль, Си және өзге де тілдер жатады. Ал, біздің білетініміз Паскаль тілі болғандықтан, Си тілін Паскаль тілімен салыстырыр болсақ, Си тілінің әліппесінен бастап- ақ Си тілінде программа жазу оңайырақ түсетінін байқаймыз.
Қазіргі уақытта есептеуіш техника адамзат өміріндегі барлық әрекет өрісіне енді. Көбінесе бұл жағдай- макро, әсіресе, микро ЭЕМ- нің қарқында дамуымен түсіндіріледі. Қазір компьютерлерді университет лабораторияларында ғана емес, сонымен қатар, мектеп сыныптарында да көруге болады. Біздің уақытта компьютерлерге көптеген адамдардың, мамандығы программист болмаса да, қолы жететін мүмкіндіктері пайда болды.
1980 жылдары барлық ойындар және оқытатын программалар MS- DOS операциялық жүйеге арнап жазылған болатын, оның себебі- графикалық редакторлардың әлсіздігі және де жадының жетіспеушілігі. Кейін жаңа WINDOWS операциялық жүйелері пайда болды да, олардың графикалық редакторлары мықты болып, оқытатын программалар барлық ғылыми және техникалық мекемелерінде пайда болды, сонымен қатар, кішкентай балаларды оқытатын ойын программалары пайда болды.
Қазіргі таңда компьютерлік ойындарды жасау кең орын алып отыр. TGF және The Pie GCS сияқты программаларда ойындарды санаулы сағаттар ішінде жасай алады. Бұл программаларда осындай мүмкін

Санды тап ойыны
МАЗМҰНЫ

Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... .3-4
1. Есептің қойылымы және тапсырманы талдау ... ... ... ... ... ... ... ..5-6
2. Теориялық бөлім ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .7
Есепті талдаудың әдістері
2.1. Сұрыптау
әдісі ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... .7
2. 1. 1. Ішкі
сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ...7
2. 1. 2. Сыртқы
сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... .7
2. 1. 3. Бөлу
сұрыптауы ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... .8
2.2. Іздеу
әдісі ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... .8
3. Программаны
жобалау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... 9-10
Есептің алгоритмі
4. Программаны жүзеге
асыру ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
.11
ЭЕМ мен қолданушы арасындағы байланыстар
4.1. Жалпы
мәліметтер ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
... ... ... ..11
4.2 Функционалдық
қолданылуы ... ... ... ... ... ... . ... ... ... ... ... ... ... ... 11- 12
4.3. Қолданылатын техникалық
жабдықтар ... ... ... ... ... ... .. ... ... ... ... ...13
5. Программаны
тестілеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... .14
Мүмкін болатын өзге шешу жолдары
5.1. Листинг
1 ... ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ..14-15
5.2. Листинг
2 ... ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ..16-17
5.3. Енгізілген- шығарылған
мәліметтер ... ... ... ... ... ... . ... ... ... ... ... ... ..18
Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... .19

КІРІСПЕ

Си программалау тілі- қазіргі таңда кеңінен қолданылатын тіл болып
табылады. Оның қолданылу аймағы неліктен кең деген сұраққа келер болсақ, Си
тілі өзіне ұқсас программалау тілдеріне қарағанда графикалық, есептеу
тәсілдері жеңіл де иілгіш тіл екендігінде. Программалау тілдерінің үш
деңгейге бөлінетінін білеміз. Соның орташа деңгейіне Паскаль, Си және өзге
де тілдер жатады. Ал, біздің білетініміз Паскаль тілі болғандықтан, Си
тілін Паскаль тілімен салыстырыр болсақ, Си тілінің әліппесінен бастап- ақ
Си тілінде программа жазу оңайырақ түсетінін байқаймыз.
Қазіргі уақытта есептеуіш техника адамзат өміріндегі барлық әрекет
өрісіне енді. Көбінесе бұл жағдай- макро, әсіресе, микро ЭЕМ- нің қарқында
дамуымен түсіндіріледі. Қазір компьютерлерді университет лабораторияларында
ғана емес, сонымен қатар, мектеп сыныптарында да көруге болады. Біздің
уақытта компьютерлерге көптеген адамдардың, мамандығы программист болмаса
да, қолы жететін мүмкіндіктері пайда болды.
1980 жылдары барлық ойындар және оқытатын программалар MS- DOS
операциялық жүйеге арнап жазылған болатын, оның себебі- графикалық
редакторлардың әлсіздігі және де жадының жетіспеушілігі. Кейін жаңа WINDOWS
операциялық жүйелері пайда болды да, олардың графикалық редакторлары мықты
болып, оқытатын программалар барлық ғылыми және техникалық мекемелерінде
пайда болды, сонымен қатар, кішкентай балаларды оқытатын ойын программалары
пайда болды.
Қазіргі таңда компьютерлік ойындарды жасау кең орын алып отыр. TGF және
The Pie GCS сияқты программаларда ойындарды санаулы сағаттар ішінде жасай
алады. Бұл программаларда осындай мүмкіндікті туғызатын

құралдар өте жоғары деңгейде дамыған. Ол жерде ойын жасап жүрген шеберлер
өздерінің барлық мүмкіндіктерін көрсете алады, жас бағдарламаушылар да тез
меңгеріп кетеді.
Бірнеше жыл бұрын әлемдегі ең бірінші компьютерлік чемпионаты өтті, бұл
компьютерлердің адам өміріндегі ролін арттырды. Сондықтан да, бүкіл
әлемдегі ойындарды жасау индустриясы үлкен қарқынмен дамып жатыр.
Жапония әлем бойынша ойын шығарудан бірінші орында тұр. Қай ойыншықты
шығармаса да, ол бүкіл әлемде өтімділігі жақсы болып, атақты ойыншықтардың
бірі болып табылады.
Мен бұл курстық жұмысымда компьютер ойлаған сандарды табуым керек. Табу
жобасы бойынша жасап шықтым. Бұл қарапайым программа, әрбір адамға
қолданылуда түсінікті болады деп ойлаймын.
Санды табу ойыны, міне, осындай компьютерлік ойындардың бірі болып
табылады. Онда іздеу, салыстыру тәсілдері арқылы берілген санның ішінен
компьютер ойлаған сандарды ойлап табу керек.

1. Есептің қойылымы және тапсырманы талдау

Санды табу ойынын Turbo C тілінде жазу. Мұнда бір ойыншы (компьютер
деп алар болсақ) 1- ден 1000- ға дейін сан ойлайды, келесі ойыншы сол санды
он сұрақ қоя отырып санды табу керек. Табушыға арнап программа жазу керек.
Есептің математикалық моделі:
Бізге түсініктірек болу үшін 1- 1000 аралығындағы сандарды он бөліктерге
бөліп көрсетейік. Он бөлікке бөлгенде 2 санды бөліктердің шекаралық мәндері
болатындай етіп таңдап аламыз.
Мысалы, біз сол мың санның ішінен мысал ретінде бір ғана санды алып
қарасақ, мынадай болады:

12 50 76 99 150 187 254 290 455 557 658 699 700 750
900 955

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

2 1 3 2
3

12 50 76 99 150 187 254 290 455 557 658 699 700
750 900 955

Суретте көрсетілгендей ең бірінші кезекте 187 саны айтылады. Егер де бұл
сандарға тең емес болса, үлкен кішісіне байланысты екінші кезекте 99 не 658
сандары айтылады. Сөйтіп, ары қарай сан аралығы тарыла берсе, жасырылған
санды табуға болады.
Айталық, бірінші кезекте 187 санын айтқанда ол санға тең емес және ол
саннан кіші болады дейік. Онда екінші кезекте 99 санын айтамыз. Егер бұл
санға тең болмай, ол саннан үлкен болса, онда жасырылған сан 99 болады. Ал
кіші болса, жасырылған сан 12 болмақ. Осылайша басқа дағдайларды да талдап
шығуға да болады.

2. Есепті талдаудың әдістері
2.1. Сұрыптау әдісі
2.1.1. Ішкі сұрыптау
Сұрыптау барлық программалау саласында қолданылады. Сұрыптау- бұл
ақпараттық обьектілердің өсу немесе кему бойынша реттелуін іске асыратын
процесс. Мысалы, егер i=i=...=i болса, онда n элементтеріндегі тізімдері
өсу бойынша сұрыпталады. Сұрыптау алгоритімінің екі түрі бар: операциялық
жадыда немесе дискідегі файл түрінде орналастырылған массивтердің
сұрыпталуы және магниттік ленталардағы немесе дисктерде орналасқан кезекті
файлдардың сұрыпталуы. Мен тек қана сұрыптаудың бірінші түріне тоқталдым,
себебі, осындай сұрыптаудың тәсілдерімен басқаларға қарағанда программистер
жиі- жиі қолданады. Сұрыптаудың негізгі ерекшелігі- массивтің әрбір
элементі әр уақытта жеңіл беріледі. Ол әр уақытта массивтің кез- келген
элементі басқа бір массивтің элементімен салыстырылады да, массивтің кез-
келген екі элементтері орындарымен ауыстырылуы мүмкін. Ал кезекті файлда
әрбір уақытта тек қана бір элемент беріледі. Осындай айырмашылықтардан
сұрыптаудың тәсілдерінде бір- бірінен үлкен өзгерістері бар.

2.1.2. Таңдау сұрыптауы (Сызықты сұрыптау)
Осы метод бойынша, кестедегі біріншіден бастап, ең кішкентай мәні бар
кілттің элементтерін іздеуге болады. Осындай орын- ауыстырудың нәтижесінде,
кілттің ең кішкентай мәні бар жазбаны кестедегі бірінші позицияға
орналастырады. Одан кейін кестедегі екінші элементтен бастап, екінші ең
кіші мәні бар кілттің ізденуі жүзеге асады. Табылған элемент кестедегі
екінші элементпен орын ауыстырады. Бұл процесс кілттің

кодтары өсу реті бойынша реттелмейінше тоқтамайды. Осы тәсілдегі салыстыру
саны n(n-1)2-ге тең, мұндағы n- кестедегі жазбалардың саны. Осындай
сұрыптау кезінде орын ауыстырудың ең үлкен саны (n-1)- ге тең. Келесі
кілттердің мәндері бар кесте үшін алгоритмдік қадамдарын мысал ретінде
қарастырамыз.

2.1.3. Бөлу сұрыптауы
Бұл тәсіл ауыстыру тәсілінің дамуы болып табылады. Ол эффектілі
болғаннан кейін, оны тез сұрыптау тәсілі деп атаған. Оның негізгі идеясы
Х массивінің кез- келген элементі таңдалады да, осы массив a[i] (a[i]X)
элементі кездескенге дейін оң жағынан қарастырылады. Осы екі элементтер
орындарымен ауыстырылады да, қарау, салыстыру және ауыстыру процестері Х
элементке жеткенге дейін жалғастырылады. Нәтижесінде массив екі бөлікке
бөлінеді: оң, оның кілттерінің мәндері Х- тан кіші болады және сол, оның
кілттерінің мәндері Х- тан үлкен болады. Осыдан кейін процесс рекурсивті
түрде әрбір бөлікке бір ғана элемент болғанға дейін жалғастырылады.

2.2 Іздеу (поиск)
Біз массив ішінде іздеу жүргізе аламыз. Ол үшін массивтің әрбір
элементін бізге керек ақпаратпен салыстырамыз. Егер ондай элемент бар
болса, онда оның орны қайтарылуы керек. Іздеу массивтің соңы болғанша, жүру
керек. Мысалы, бізге массивтің ішіндегі максимал элементті табу керек. Оның
алгоритмі былай болады:
Бір айнымалыға, мысалы, max массивінің 1- элементін меншіктеу керек.
Екінші элементтен бастап, массивтің әр элементін max айнымалысымен

салыстыру керек. Егер айнымалының қазіргі мәнінен үлкен мән табылса, онда
сол мәнді айнымалыға меншіктеу керек. Осы әдіспен массивтің әр элементін
қарастыру керек.
Бұл алгоритмді Си тіліне көшірсек, (фрагмент) былай болады:
For (i=0; istrlen(s2); i++)
X+=(s2[i]-48)* pow(10,strlen(s2)-i-1);

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

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Жапсырмалау
Математикалық логика
Математика сабақтарында жаңа ақпараттық технологияларды қолдана отырып оқушыларды мемлекеттік аралық бақылауға дайындау
Арифметикалық амалдармен есептер шығару
Қарапайым математикалық түсініктерді қалыптастыру әдістемесінде ойын технологиясының мазмұны, міндеттері және ерекшеліктері
Баланың танымдық дамуына математикалық ойындар мен жаттығулардың әсері
Тurbo Pascal тілінде ”Санды тап” ойынына программа құру
Математика сабақтарында оқушылардың үлгірмеушілігін болдырмау (2 сынып бойынша)
Қарапайым математикалық ұғымдарды қалыптастыру. Геометриялық пішіндер
Дидактикалық ойындардың оқушылар қабілеттілігін дамытудағы рөлі
Пәндер