Тurbo Pascal тілінде ”Санды тап” ойынына программа құру


Жұмыс түрі: Материал
Тегін: Антиплагиат
Көлемі: 14 бет
Таңдаулыға:
Қазақстан Республикасы Білім және ғылым министрлігі
Қ. И. Сәтбаев атындағы Қазақ Ұлттық Техникалық университеті
ТҮ және ӨА кафедрасы
РЕФЕРАТ
Тақырыбы: Тurbo Pascal тілінде ”Санды тап” ойынына программа құру
Оқытушы: Қуандықова Г. А.
Cтудент: Сабырғалиев Б.
Мамандығы: 050702
Тобы: АУб-04-4
Алматы 2005
Жоспар:
1. Курстық жұмыстың мақсаты
2. Курстық жұмысқа сипаттама
2. 1. Жалпы шолу
2. 2. Функционалдық қолдану
2. 3. Қолданылған әдістер
2. 4. Логикалық құрылымы
2. 4. 1. Алгоитмі
2. 4. 2. Есептің баяндалуы
2. 4. 3. Листингі
2. 4. 4. Блок-схемасы
2. 5. Қолданылған техникалық құралдар
2. 6. Программаның жіктелуі және шақырылуы
2. 7. Нәтижелер мен бастапқылар
2. 7. 1. Енгізілген мәліметтер
2. 7. 1. Шығарылған мәліметтер
2. 7. 2. Енгізілген мәліметтер
2. 7. 2. Шығарылған мәліметтер
3. Ерекшілігі
4. Қосымша
5. Қорытынды
6. Пайдаланылған әдебиеттер
Кіріспе:
Қазіргі кезде кеңінен қолданылатын программалау жүйесінің бірі -Turbo Pascal. Американың Borland корпорациясының бұл өнімі сол корпорацияның қызметкері Андерсон Хейлсбергтің жетекшілігімен құрастырылған. Turbo Pascal - дың түп нұсқасы швейцария ғалымы Никлаус Вирт жасаған Паскаль программалау тілінен тарайды. Бастапқыда Паскаль тілі программалауды алғаш үйренушілер үшін өте тиімді құрал болып табылған. Қарапайым Паскальды өңдеудегі А. Хейлсбергтің үлкен еңбегінің нәтижесінде Turbo Pascal қазіргі заман талабына сай, қуатты программалау жүйесіне айналды. Turbo Pascal - жоғарғы деңгейлі программалау жүйесі. Оның логикалық құрылымы әр түрлі есептерді дәл шешуге көмегін тигізеді.
Ал, бүгінгі қарастырылатын курстық жұмыс Turbo Pascal тілінің кейбір мүмкіндіктерін қолдануға арналған. Адам мен компьютерді байланыстыру үшін де, осы тіл мүмкіндігі қолданылады. Курстық жұмыс арқылы, сіз, логикалық есептерді Turbo Pascal тілінде қалай программалауға болатынын көре аласыз.
1 . Курстық жұмыстың мақсаты:
Негізгі сандық әдістерінің, комбинаторлық ойындарының алгоритмдері мен программасын құруды үйрену. Қайталану нұсқауын күрделі есептерге қолдану және есептің математикалық моделін құру. Осы жұмыстарды орындай отырып, “Алгоритмизация және программалау тілдері” курсынан алған білімді, пайдалану деңгейін компьютермен іс-тәжірибелік жұмыс барысында нығайту.
2. Курстық жұмысқа сипаттама:
2. 1. Жалпы шолу:
Программа PASCAL тілінде Borland корпорациясының 7. 0 нұсқалы 16 байттық TURBO PASCAL капиляторын және MS DOC операциялық жүйесін қолдану арқылы TURBO PASCAL тіліндегі программаны жүзеге асыру үшін жазылған.
2. 2. Функциональдық қолдану:
Есептің алгоритмін құру барысында Repeat қайталану нұсқауы,
шартты нұсқау, меншіктеу нұсқауы, Randomize процедурасы, Random математикалық функциясы қолданылады. Ал, енді осылардың қызметіне тоқталып өтсем.
Repeat қайталану нұсқауы
Repeat қайталану нұсқауы - келесі шарт бойынша циклді ұйымдастыру операторы болып табылады. Циклдік процесстерді ұйымдастыруға Repeat операторы циклдің қайталану саны белгісіз болған жағдайда қолданылады.
Repeat операторының жалпы жазылуы:
Repeat statement until expession;
Мұндағы Repeat - қайталау
Statement - нұсқау
Until - дейін
Expession - шарт, логикалық өрнек.
Бұл нұсқауда бірінші statement операторы орындалады, содан кейін барып логикалық өрнек тексеріледі. Сол үшін бұл нұсқауды келесі шарт бойынша орындалуын қайталау деп атайды. Бұл процесс expession жалған болғанға дейін орындалады. Ал, қалай оның мағынасы ақиқат болғанда, цикл тоқтайды. Statement операторы құрамды нұсқау болуы да мүмкін.
Begin
Statement_1;
Statement_2;
. . . ;
Statement_n;
End;
Repeat . . . Until циклінде Begin . . . End операторлары болмауы да мүмкін. Онда, Repeat . . . Until операторы жалпы жағдайда мына түрде жазылады:
Repeat
Statement_1;
Statement_2;
. . . ;
Statement_n;
Until expession;
Кейбір жағдайларда цикл шексіз орындалады:
Repeat
Statement_1;
Statement_2;
. . . ;
Statement_n;
Until False;
Repeat операторының қызметін 1. 1-суреттегі блок схема арқылы сипаттауға болады:
ИӘ
ЖОҚ
1. 1-сурет
Шартты көшу операторы
Алгоритмдік тілде қойылған шартқа байланысты екі немесе екіден көп тармақтары бар алгоритм - тармақталған алгоритм деп аталады. Осындай тармақталған алгоритмді программалауға шартты көшу операторы қолданылады. Жалпы жазылуы:
If expression then statement1 else statement2;
Мұндағы If - “егер” қызметші сөзі
Then - “ онда” қызметші сөзі
Else - “әйтпесе” қызметші сөзі
Бұл оператор мына жағдайда орындалады: Егер expression ақиқат болса, онда басқару statement 1 -ге беріледі, ал жалған болса else сөзінен кейінгі statement 2 орындалады. Ал, берілген нұсқаудың қате варианты:
If expression then statement1 else; statement2;
Мұнда бірінші нүктелі үтір If . . . then . . . else операторын else оператоындағы жағдайды қарастырмай орындайды, сосын (кез-келген жағдайда) statement 2 операторын орындайды. Бұл мысалдың синтаксисі формальді түрде дұрыс саналғанымен, алгоритмдік орындалудың логикасы бұзылады да, логикалық қате пайда болады. Ал, логикалық қатені программадан табу синтаксистік қатені табудан күрделірек. Күрделі болу себебі, синтаксис автоматты транслятормен тексіріледі де, ал программаның логикалық жұмысымен өзіміз айналысамыз. Шарты көшу операторының қызметін 1. 2-суреттегі блок-схема арқылы сипатауға болады:
ИӘ ЖОҚ
1. 2-сурет
Меншіктеу операторы
Негізгі операторлардың бірі. Ол қарапайым операторлар тобына жатады. Меншіктеу операторының жалпы жазылуы:
Variable:=expression
Мұндағы Variable - айнымалы атауы
Expression - өрнек
: - меншіктеу амалының таңбасы
Randomize процедурасы :
Қарастырылатын есепте берілетін сандарды міндетті түрде кездойсоқ сандар жиыны деп алу керек. Ол үшін бізге кездойсоқ сандар инилизациясының генераторы Randomize процедурасын шақыру керек.
Бұл процедураның жалпы жазылуы:
Procedure Randomize;
Random функциясы
Random - математикалық функцияға жатады. Паскаль тілінде математикалық функциялардың мәні тек нақты және бүтін типті болады. Бұл функция Randomize процедурасынан кейін шақырылады.
Кесте 1. 1.
Random математикалық функциясының жалпы жазылуы:
Ғunction random [(диапазон :word) ] ;
1. 1- кестедегі Random (х) функциясы 0 мен Х арасындағы кез-келген бүтін оң санды береді, яғни 0<=Y>X. Мысалы, Random (3) болғанда 0 мен 3 саны аралығындағы бүтін сандар, яғни Y=0, 1, 2. Егер, a<=x<b аралықтағы кез келген санды алу қажет болса, өрнекті Random (b-a) +a түрінде жазамыз. Random функциясы х параметрінсіз жазылса, нәтиже 0 мен 1-дің арасындағы кез-келген нақты санды береді, яғни 0<=X<1. (Word типті) .
2. 3. Қолданылған әдістер:
- Қадамды іздеу (последовательный поиск)
“Басынан бастап, алдыға қарай жылжи бер, керекті кілтті тапқанша, егер тапсаң тоқта”. Бұндай қағидаға сүйеніп, көптеген алгоритмтерде құралған қадамды процедурасы іздеу әдісінің ең қолайлы түрі болып саналады. Қадамды іздеу: R1, R2 . . . Rn жазбалар кестесі және сәйкес К1, K2 . . . Kn кілттері бар болса, онда алгоритм болып берілген жазбаның К кілтін іздеуге арналған N>=1 деп қарастырамыз.
S1 [Алғашқы орнатқыш] i←1 орнатамыз
S2 [Салыстыру] Егер к=кі болса, алгоритм сәтті өтeді
S3 [Ары қарай жүргізу] і-ді 1-ге арттырамыз
S4 [Файлдың соңы ма?] Егер i<=N болса, онда S2 қадамына орнатамыз.
Жоқ
ИӘ
Сәттілік Сәтсіздік
Ізделінген аргументіңіз кестеде болмаса, сәтсіздікке ұшырайсыз!
- Ауыстыру жіктеуі (обменная сортировка)
“Пузырек” әдісі: Ол жіктеудің ең қарапайым түрі болып саналады. Ол әдіс К1 мен салыстырып, егер R1 мен R2 жазба кілттері тізбектелмеген болса, онда оларды өзара орындарын ауыстырамыз. Содан кейін ол операцияны R2 мен R3, R3 пен R4-ke қолданылады. Ең соңында ол операциялар орындалып болғаннан соң үлкен кілтті жазбалар оң жақ бағытта жылжи береді де, ең үлкен кілтті жазба Rn орнында орналасады, сонда жазбалар Rn-1, Rn-2 позициясында орналасады, сонда барлық жазбалар тізбектеледі.
Бұл әдістің “Пузырек” деп аталу себебі, орын ауыстыру процесі іске асқаннан соң, Rn жазбасы жоғарыда, ал R1 жазбасы төменде
Орналасады да, үлкен элементтер “Пузырек” тәрізді жоғарғы жаққа ұмтылады, сәйкес позицияға орналасады, “Пузырек” әдісі “Бату” (погружение) әдісіне қарама-қарсы болып саналады да, ол әдіс тағы “ таралу” әдісі деп те аталады.
R1 . . . Rn жазбалардың кілттері жіктеу аяқталғаннан соң K1<= . . . <Kn түрде тізбектеледі.
B1 [Алғашқы Bound орнатқыш] Bound←n орнатамыз. (Bound - ең жоғарғы элементтің индексі, оның соңғы позицияда тұрғанын әлі білмейміз)
B2 [j бойынша цикл] t←0 орнатамыз. j=1, 2, . . . Bound-1болса, B3 қадамын орындаймыз. Кейін B4 қадамына өтеміз. (Егер Bound=1 болса, онда B4-ke ойлабастан қолма-қол өтеміз)
B3 [Салыстыру /R; мен Rj+1орын ауыстыру]
Егер Kj>kj+1 болса, онда Rj↔︎Rj+1 орынын ауыстырып, t←j орнатамыз.
B4 [ауыстырулар болды ма?] Егер t=0 болса, алгоритм жұмысын аяқтайды. Кері жағдайда Bound ← t орнатып, B2 қадамына қайтып ораламыз.
I<=j<bound
J = Bound ИӘ
ЖОҚ
2. 4. Логикалық құрылымның баяндалуы:
2. 4. 1. Алгоритмі:
- Программа тақырыбы
2) Тұрақтылар бөлімі
3) Айнымалылар бөлімі
4) Процедура бөлімі
5) Функция бөлімі
6) Шығару операторлары
7) Цикл нұсқауы
8) Нұсқау
9) Шығару операторы
10) Енгізу операторы
11) Берілген шарттар
12) Шартты көшу операторы
13) 1-шығару операторы
14) 2-шығару операторы
15) Программаның соңы
2. 4. 2. Есептің баяндалуы
- Program Ugadai{Программаның аты}
- Const Npop=10{Табушының санды табу мүмкіндігің саны}
- Var
Comp:integer {1-ойыншының ойланған саны}
Igrok:integer {Табушының нұсқасы}
N:integer {Табушыға берілген мүмкіндік саны}
- Begin{программаның басы}
- Randomize{Кездойсоқ сандар генераторының инициялизациясының шақырылуы}
- Comp:=random(999) +1{1-ойыншы сан “ойланды”}
- Writeln{“санды табу” ойыны }
- Writeln{ 1-ойыншы 1 мен 1000 аралығындағы кез-келген санды ойлады’}
- Writeln{Сол ойланған санды’, npop, ’ рет өзің ойлануыңа болады’}
- Writeln{‘Өзіңіз ойланған cанды жазып, Enter басыңыз’}
- Repeat{Келесі шарт бойынша көшу операторы}
- n:=n+1{нұсқау}
- write (‘->’) {шығару операторы}
- readln (igrok) {нұсқаны енгізу операторы}
- until (n=npop) {Берілген 1-шарт:Егер бастапқы берілген мүмкіндік саны мен табушы қолданған мүмкіндік саны тең болса}
- or (comp=igrok) {немесе 2-шарт:1-ойыншы ойланған сан мен табушының берген нұсқасы тең болса}
- ifcomp=igrok{Шартты көшу операторы: 1- ойыншы ойланған сан мен табушының берген нұсқасы тең болса}
- then{онда}
- writeln(‘Құттықтаймын!Сіз ойланған санды таптыңыз. ’) {Шығару операторы }
- else{әйтпесе}
- writeln { (‘ Өкінішті!Сіз санды таппадыңыз. 1-ойыншы мына санды ойланған еді’, comp) }
Шығару операторы: {Санды егер таппасаңыз 1-ойыншы ойланған санды көрсетеді}
- {Нәтижені бірден шығару}
- End{программаның соңы}
2. 4. 3. Листинг 1. 1.
Program Ugadai ;
Const
Npop=10;
Var
Comp:integer;
Igrok:integer;
N:integer;
Begin
Randomize;
Comp:=random(999) +1;
Writeln (‘ “санды табу” ойыны ‘) ;
Writeln (‘ 1-ойыншы 1 мен 1000 аралығындағы кез-келген санды ойлады’) ;
Writeln (‘ Сол ойланған санды’, npop, ’ рет өзің ойлануыңа болады’) ;
Writeln (‘Өзіңіз ойланған cанды жазып, Enter басыңыз’) ;
Repeat
n:=n+1;
write (‘->’) ;
readln (igrok) ;
until (n=npop) or (comp=igrok) ;
if comp=igrok then
writeln (‘Құттықтаймын!Сіз ойланған санды таптыңыз’) else
writeln (‘ Өкінішті!Сіз санды таппадыңыз. 1-ойыншы мына санды ойланған еді’, comp) ;
end.
2. 4. 4. Блок-схема 1
2
3
4 5
7 6
8
10 9
11 12
13
14
2. 5. Қолданылған техникалық құралдар:
Программаны орындау барысында WINDOWS xp операциялық жүйесі және DDR DIMM 266 MHz, 256 MB DRAM процессорлы компьютер қолданылды.
2. 6. Программаның жүктелуі және шақырылуы :
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

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