Бағдарламаны тестілеу
Мазмұны
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ... ... .4
1 Аналитикалық бөлім ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 5
1.1 Есептің қойылуы мен бейнеленуі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 5
1.2 Ақпаратты өңдеу кезеңдерін негіздеу, бағдарламаның жалпы
концепциясы, оның құрамы мен құрылымы ... ... ... ... ... ... ... ... ... ... ... ... ..5
1.3 Инструментальды құралдарды таңдаудың
негізі ... ... ... ... ... ... ... ... ... ... 7
2 Технологиялық бөлім ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ..9
2.1 Құру мақсаты мен қызметі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .9
2.1.2 Динамикалық жады түсінігі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .9
2.1.3 Көрсеткіштермен жұмыс жасауға арналған процедуралар мен
функциялар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 112 .1.4
Екібағытты жазбалық тізім. Екібағытты жазбалық тізімді
ұйымдастыру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... .12
2.1.5 Циклдік тізімдерді ұйымдастыру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..12
2.2 Жүйеге талаптар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 14
2.3 Диалогтық схемалар мен функционалдіқ мүмкіншіліктердің
сипаттамасы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..14
2.4 Енгізу және шығару деректерінің тізімі мен оларды суреттеу ... ... ... ... .14
2.5 Қолдануға және қанаудауға басшылық ... ... ... ... ... ... ... ... ... ... ... .14
2.6 Тәжірибелік тексеру нәтижелері ... ... ... ... ... ... ... ... ... ... ... ... ... ..14
Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...15
Қолданылған әдебиеттер тізімі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 16
Қосымша А – Бағдарлама листингісі ... ... ... ... ... ... ... ... ... ... ... ... ... ...17
Қосымша Б – Бағдарлама блок-схемасы ... ... ... ... ... ... ... ... ... ... ... ... ..2 1
Кіріспе
Курстық жобаның негізгі мақсаты үлкен көлемді мәліметтер базасы(МБ)
яғни, белгілі бір арнаулы ауқымға қатысты мәліметтерді баяндау, сақтау мен
амал-тәсілдермен ұқсата білудің жалпы принциптерін қарастырып, белгілі бір
ережелер бойынша ұйымдастырылған мәліметтердің жиынтығын қолданғанда,
уақытты тиімді пайдалана білу. Сонымен қатар мұндай үлкен көлемдегі
мәліметтер базасын құру және оны тиімді пайдалану.
Адамның қатысуы ықтимал, автоматтық құралдармен өңдеуге жарамды түрде
ұсынылған ақпарат - мәліметтер ретінде түсініледі. Арқаулы ауқым ретінде
нақты зерттеуші үшін қызықты нақты әлемнің бөлігі түсініледі, мен үшінде.
Қарапайым МБ, мысалы ретінде телефон анықтамалығын, поездар қозғалысы
кестесін, кәсіпорын қызметкерлері туралы мәліметгерді, студенттердің
сессия тапсыру қорытындылары және т.б. атауға болады.
Менің тақырыбым кітапханадағы кітаптардың екібағытты циклдік тізімі.
Электронды МБ-сының басты қасиеті - ақпаратты тез іздестіру мен
сұрыптау (іріктеу), сондай-ақ берілген форма бойынща есепті қарапайым
түрлендіру жасау мүмкіндігі. Мысалы, кітаптардың инвентарлық нөмірлері
бойынша кітаптың қолда ма, әлде қолда емеспа, қолда болса, кімнің
қолында,аты-жөндерін оңай айыруға болады немесе жазушының аты-жөні бойынша
шығармаларының тізімін жасауға болады.
Осы ауқымда жұмыс жасау үшін тиімді өріс бұл - динамикалық
программалау. Нақтырақ айтсақ, екібағытты циклдік тізім арқылы кітаптарды
енгізіп, құрылған базаға тиімді процедураларды қолдану.
Жүйе PasсalABC бағдарламалау жүйесіне негізделен. Курстық жұмыстың
ендігі негізгі мақсаттарының бірі: осы бағдарламалау жүйесінде жұмыс
істеуде бұрында және кейін алған жаңа негіздерді бекіту. Берілген жұмыста
негізінен динамикалық жадыны тиімді пайдалануға арналған процедуралар және
әр түрлі типтағы айнымалылармен жұмыс жасауға көңіл бөлінеді.
Аналитикалық бөлім
1.1 Есептің қойылуы мен бейнеленуі
Курстық жұмыста мен кітапханадағы кітаптарға база құрып, бұл базаны
тиімді қолдануым қажет. Сонымен қатар курстық жобаның негізгі
элементтерінің бірі ретінде қолданушы мәзірі болып табылады. Қолданушы
мәзірі 12 пунктіден тұрады, мәзір негізі - процедураларды берілген ретпен
таңдауда.
1.2 Ақпаратты өңдеу кезеңдерін негіздеу, бағдарламаның жалпы концепциясы,
оның құрамы мен құрылымы
Курстық жобаны бағдарламалау кезеңі келесі сатылардан тұрады:
• Теориялық мағұлматтар жинау және нақтылау;
• Бағдарлама алгоритімін құру;
• Бағдарламаның құрылымын дайындау;
• Бағдарламаның мәтінін дайындау;
• Бағдарламаны тестілеу;
• Түсінік хатты дайындау.
Бадарламаның құрамына бағдарламаның денесі және негізгі 11 процедура
кіреді:
Файл құру:
PROCEDURE CFILE;
Файлды көру:
PROCEDURE PROS;
Екібағытты тізім құру:
PROCEDURE CPIC;
Тізімді экранға шығару:
PROCEDURE PRINT;
Тізім элементтерін файлға жазу:
PROCEDURE ZFILE;
Тізімге тағы бір элемент қосу, яғни біздің жағдайда кітап:
PROCEDURE DOB;
Тізімнен элементті алып тастау:
PROCEDURE DEL;
Кітап аты бойынша іріктеу процедурасы:
PROCEDURE SORT;
Кітап аты бойынша тізімнен іздеу процедурасы:
PROCEDURE POISK;
Қолдағы кітаптардың барлығын тізім соңына көшіру:
PROCEDURE PEREM;
Дайын тексттік файлдағы мәліметтерді қолдану үшін файлға көшіру:
PROCEDURE READSFILE;
Бағдарлама құрылымы 1.1-сурет:
1.3 Инструментальды құралдарды таңдаудың негізі
Pascal ABC жүйесі оқушылар мен кіші курс студенттеріне бағытталған
және Паскаль тілінде бағдарламаларды оқуға арналған.
Алғашқы оқу авторлар пікірі бойынша қарапайым және ұқсас орталарда,
қазіргі уақыт ортасында бағдарламалау тілінің мүмкіншіліктері стандартқа
сай. Сонымен бірге ішкі программалардың жеткілікті болуы мен бай және
замандас кітапханалардың бағдарламалауға сай жүруі жеткілікті деп
түсіндірді. Көптеген пайдаланушылар Паскаль тілінен бастап оқыған, Borland
Delphi оқуға жеңіл екенін мойындаған. Бірақ, Borland Pascal ортасы, MS DOS,
Borland Delphi орталарының бай мүмкіншіліктері бастаушы бағдарламалаушы
үшін күрделі болды. Дәл, осылай әрекет бастау, яғни Borland Delphi арқылы
жұмыс жасау оқу- жазуға, оқиғалы бағдарламалар қатарына көптеген қиындықтар
әкелді.
Delphi Pascal тілінің негізінде Pascal ABC жүйесі салынған. Бұл жүйе
бірте- бірте қарапайым жүйеден модульдікке, объекті- хабарланғанға, оқиғалы
және компоненттік бағдарламалауға ауысу арқылы дамыды. Pascal ABC жүйесі
бірнеше тілден жасалатын конструкцияларға, сонымен қатар ерте кезден оқуға,
қолдануға оңай жүйелердің бірі.
Мысалға: интерфейс секциясын және орындау секциясын модульде жасауға
болады. Ал модульдің өзіде практикалық негізде бағдарламада жасалған.
Процедура және функция тақырыбы олардың кірісуіне толық мән беріп,
анықтайды.
Pascal ABC бағдарламалау жүйесінің арнайы оқу мақсатында жасалған
модульдік қатары растірлік графика Graph ABC модулі объектісіз өткізіледі.
Бірақ оның практикалық мүмкіншілігі Borland Delphi практикалық
мүмкіншілігіне сәйкес келеді. Ол оқиғасыз бағдарламаларға қолайлы, сонымен
қатар "жыпылықтаусыз" анимация жасауға болады.
Events модулі қарапайым оқиғалы бағдарламалар мен объектілерді
қолданусыз жасауға рұқсат етеді (өзімен қарапайым процедуралық өзгеріс
оқиғаларын ұсынады).
Timers және Sounds модульдері таймерлер және дыбыстар, сонымен бірге
іске асырылатын процедуралық стильді де жасауға рұқсат етеді. Бұл
модульдерді тіпті консольді бағдарламада да қолдануға болады.
Containers - контейнер кластарының модульі негізгі құрылымдармен
(динамикалық массивтермен, стектермен, жиындармен) іске асыруға рұқсат
етеді.
ABC Objects векторлық графика модульінің негіздері объекті-
хабарланған бағдарламаларды жылдам зерттеуге арналған. Күрделі ойындар мен
оқытушылық бағдарламаларды жасауға рұқсат етеді.
VCL визуальді компоненттер модулі Delphi стильінде негізгі оқиғалы
қосымшаның түрімен жұмыс жасауға рұқсат етеді. VCL классы Delphi түрімен
ұқсастықтары көп және қолданушыға ыңғайлы болу үшін оңайлатылған.
Pascal ABC тілінде арифметикалық операцияларды типтік көрсеткішке
келтіруге, сондай- ақ жұмысқа арналған комплексті сандармен жұмыс жасауға
болады.
Сондықтанда мен осы Паскаль ортасы, яғни, Паскаль бағдарламалау
жүйесімен жұмыс істеуді ұйғардым.
2 ТЕХНОЛОГИЯЛЫҚ БӨЛІМ
2.1 Құру мақсаты мен қызметі
XXI ғасыр электрониканың ғасыры, яғни комьютер кезеңі. Сол себебті,
керек мағұлматтарды осы компьютердің комегімен игерген оңай әрі тез болады.
Динамикалық бағдарламалау белгілі бір материалдар жинағын тез әрі оңай
игеру үшін тиімді.
2.1.2 Динамикалық жады түсінігі
Бағдарлама трансляциясы кезінде тіл негіздік құралдарының
жетіспеушіліктерінің бірі, паскаль, ЭВМ азат жадысын қатал таратуында.
Нақты, егер айнымалы бағдарламада жарияланса, бағдарлама жіберілуі жанында
айнымалыға ЭВМ жадында бос ұяшықтар анықталады, осы ұяшыққа сұрау салу дәл
осы айнымалыға сұрау салумен эквивалентті. Бұл талап жиымдарға, жазбаларға
да жатады.
Мысалы, бағдарламада 100дік жиым анықталсын:
VAR A:ARRAY[1..100] OF INTEGER;
Сонда осы жиымда айнымалыларды сақтау үшін 200 байт жады көлемі қажет
– әр бүтін санға 2 байттан. Мысалы, REAL типтес сандар 6 байт жадыны талап
етеді және REAL типтес сандардан тұратын жиым - 600 байт жадыны алады.
Мәселе айнымалы ретінде жолдық қатарлы айнымалы болғанда ләзге
қиындай түседі, себебі осындай типтегі әрбір айнымалы 256 байтты талап
етеді, немесе жазбалық жиымдардың айнымалылары бірнеше жолдық қатарлы
айнымалылардан тұруы мүмкін.
Мұндай жағдайда компьютер төмендегідей қателіктерді көрсетуі мүмкін:
ERROR 22: STRUCTURE TOO LARGE -
Тым ұзақ құрылым, немесе
ERROR 96: TOO MANY VARIABLE -
Барлық бейнеленген мәлімет көлемі 64 килобайттан асуы мүмкін емес.
Яғни, бағдарламаға берілген жады көлемі 1сегементтен, 64К-тан аспауы
шарт.
Мәліметтер үшін жадыны катаң қадағалап тарату – статистикалық деп
аталады, керсінеше жадыны арнайы көрсеткіштер арқылы ұйымдастыру
динамикалық тарату деп аталады.
Жадыны динамикалық түрде ұйымдастыру идеясының негізі болып:
сегментке мәліметтің өзі емес, жады ұяшықтарының бастапқы адрестері
жазылады, яғни осы адрестер негізгі мәліметтің жатқан жерін көрсетеді. Осы
жағдайда компьютердің түгелімен бос жадысын қолдануға болады, тек қана бір
жады сегментін ғана емес. Бір көрсеткіш адресін сақтау үшін 4 байт қана
қажет. (физикалық адресі және сегменттегі жылжуы саналады).
Көрсеткіштер – бұл арнайы ЭВМ жадындағы ұяшықтың физикалық адресін
сақтауға арналған айнымалы. Компьютер жадындағы физикалық адрес екі
бөліктен, яғни, адрес сегменті 2 байт, сегменттегі жылжу тағы 2 байт, онда
көрсеткіш WORD типті болады, нақтырақ әр адрес үшін екілік WORD типінде.
Мәліметтерді қарапайым бейнелеуден гөрі көрсеткіштермен жұмыс
істеудің артықшылықтарын атап өтсек:
Бағдарлама ағымдағы компьютердің барлық бос жадысын толығымен қолдана
алады.
Босаған жады бөліктерін пайдалану;
Динамикалық жады ең тиімді пайдаланылатын орта: жады көлемі белгісіз
немесе процесс барысында күрт өзгеруі мүмкін болғанда, мысалы, стектар,
кезектер, екібағытты, кестелік тізімдер немесе екілік ағаштар.
Паскаль тілінде компьютердің динамикалық жадысы куча деп аталады,
кей кезде үлкен стек деп немесе мәліметтер байтынан тұратын үлкен жиын деп
аталады. Стектың бастауы (алғашқы адрес немесе кучаның асты) стандартты
айнымалы-көрсеткіш HeapOrg, ал стек шыңы, бағдарлама ізімен ораналасқан
көрсеткіш, - HeapEnd. HeapPrt – ағымдағы стек бөлігінің мағынасын
анықтайтын стандартты айнымалы. Кучаның шекарасын компиляторға бағытталған
арнайы көрсетілімдер арқылы реттеуге болады. Негізінде, бастапқы қалыпта
барлық бос аймақ кучаға арналған.
Динамикалық жадының жұмыс механизмна сондай үңілмей-ақ, көрсеткіштер
арқылы әр түрлі типтағы айнымалылардың мағынасын ДЖ-да орналастырып және
жоюға болытыны туралы қарастырайық.
2.1.3 Көрсеткіштермен жұмыс жасауға арналған процедуралар мен
функциялар
NEW (I) процедурасы айнымалыға қажет динамикалық жадтты бөліп береді.
POINTER-паскаль тіліндегі арнайы көрсеткіш тип. Ол кезкелген типті
көрсеткіш терді қосу амалдарына қатысады.
DISPOSE-процедурасы көрсеткішінің (адресінің) мағынасын, яғни
ссылканы немесе ішіндегі ақпаратты өзгертпейді, алып тасталмайды, ол тек
қана берілген жады аумағын бос деп белгілейді.
NIL- арнайы резервтелген нөлдік адрес, оны кез-келген көрсеткішке
қосуға болады.
MARK- динамикалық жадыда ағымдағы бос учаскінің мағынасын сақтайды.
RELEASE- MARK көрсеткіші арқылы динамикалық жадттың бастапқы
облысын белгілеп, RELEASE көрсеткіші арқылы нәтижесінде белгіленген аймақты
босатуға арналған.
Келесі жұп процедура GETMEM және FREEMEM үйіндідегі жадыны босату
және бөлектеп алу алуға арналған. Процедураны жазу форматы : GETMEM
(көрсеткіш,көлем);
FREEMEM процедурасы GETMEM процедурасынан кейін жұмыс істейді. Ол
бұрын белгіленген блок жадының белгіленген көлемін босатады. Форматы:
FREEMEM (көрсеткіш,көлем);
Келесі функциялар көрсеткіштермен жұмыс жасағанда қолданылады. Олар
үйіндінің жад көлемін бақылауға немесе адрестермен амалдар қолданылады.
Мысалы:
MemAvail функциясы , Longint типінде, динамикалық жадттың бос
көлемінің жалпы өлшемін анықтайды.
MaxAvail Longint типінде, динамикалық жадттың ең үзіксіз учаскесін
байтпен анықтайды.
SizeOf (көрсеткіш) Integer типіндегі функция берілген көрсеткіштің
жад көлемін анықтайды (A:=SizeOf(I^);
Екінші топқа келесі функциялар жатады:
Cseg функциясы Word типті , С микропроцесорының ағымдағы регистрінің
мағынасын анықтайды.
Dseg Seg функциясы Word типті , D микропроцесорының ағымдағы
регистрінің мағынасын анықтайды.
Seg (айнымалы) айнымалы орналасқан сегмент адресін анықтайды.
Айнымалы кезкелген типта блоуы мүмкін.
Ofs (айнымалы) айнымалы мағынасы орналасқан адрес жылжуын
анықтайды.
Prt ( , :word) типі pointer, көрсеткішті анықтауға арналған
қайсыбір адресте орналасқан айнымалы мағынасының сегменті мен жылжуын
өзгертеді.
Addr (айнымалы) функциясы қайсыбір айнымалының мағынасы орналасқан
адресін анықтайды.
2.1.4 Екібағытты жазбалық тізімді ұйымдастыру
Қарапайым бірбағытты тізімнің басты кемшілігі, түрлі іздеу
алгоритмдерін қолдануда шектеу қойылды. Бұл тізім құрылымы іздеу кезінде
кезектеп көруді қажет етеді, яғни элементтерді тізімнің басынан (ZAGOL)
соңына дейін қарап шығады.
Іздеу мүмкіншілігін кеңейту үшін жазбаға тағы бір өріс қосу
ұйғарылды, бұл өріске алдыңғы элемент адресі жазылады (қалыпты жағдайда бұл
өрісті OLD деп атайды). Мұндай қосымша көрсеткіштер ұйымдастырудың басы
ретінде соңғы жазба элементі ZAGOL2 болып табылады. Бірінші жазбаның OLD
көрсеткіші мен соңғы жазбаның ... жалғасы
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ... ... .4
1 Аналитикалық бөлім ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 5
1.1 Есептің қойылуы мен бейнеленуі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 5
1.2 Ақпаратты өңдеу кезеңдерін негіздеу, бағдарламаның жалпы
концепциясы, оның құрамы мен құрылымы ... ... ... ... ... ... ... ... ... ... ... ... ..5
1.3 Инструментальды құралдарды таңдаудың
негізі ... ... ... ... ... ... ... ... ... ... 7
2 Технологиялық бөлім ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ..9
2.1 Құру мақсаты мен қызметі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .9
2.1.2 Динамикалық жады түсінігі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .9
2.1.3 Көрсеткіштермен жұмыс жасауға арналған процедуралар мен
функциялар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 112 .1.4
Екібағытты жазбалық тізім. Екібағытты жазбалық тізімді
ұйымдастыру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... .12
2.1.5 Циклдік тізімдерді ұйымдастыру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..12
2.2 Жүйеге талаптар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 14
2.3 Диалогтық схемалар мен функционалдіқ мүмкіншіліктердің
сипаттамасы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..14
2.4 Енгізу және шығару деректерінің тізімі мен оларды суреттеу ... ... ... ... .14
2.5 Қолдануға және қанаудауға басшылық ... ... ... ... ... ... ... ... ... ... ... .14
2.6 Тәжірибелік тексеру нәтижелері ... ... ... ... ... ... ... ... ... ... ... ... ... ..14
Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...15
Қолданылған әдебиеттер тізімі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 16
Қосымша А – Бағдарлама листингісі ... ... ... ... ... ... ... ... ... ... ... ... ... ...17
Қосымша Б – Бағдарлама блок-схемасы ... ... ... ... ... ... ... ... ... ... ... ... ..2 1
Кіріспе
Курстық жобаның негізгі мақсаты үлкен көлемді мәліметтер базасы(МБ)
яғни, белгілі бір арнаулы ауқымға қатысты мәліметтерді баяндау, сақтау мен
амал-тәсілдермен ұқсата білудің жалпы принциптерін қарастырып, белгілі бір
ережелер бойынша ұйымдастырылған мәліметтердің жиынтығын қолданғанда,
уақытты тиімді пайдалана білу. Сонымен қатар мұндай үлкен көлемдегі
мәліметтер базасын құру және оны тиімді пайдалану.
Адамның қатысуы ықтимал, автоматтық құралдармен өңдеуге жарамды түрде
ұсынылған ақпарат - мәліметтер ретінде түсініледі. Арқаулы ауқым ретінде
нақты зерттеуші үшін қызықты нақты әлемнің бөлігі түсініледі, мен үшінде.
Қарапайым МБ, мысалы ретінде телефон анықтамалығын, поездар қозғалысы
кестесін, кәсіпорын қызметкерлері туралы мәліметгерді, студенттердің
сессия тапсыру қорытындылары және т.б. атауға болады.
Менің тақырыбым кітапханадағы кітаптардың екібағытты циклдік тізімі.
Электронды МБ-сының басты қасиеті - ақпаратты тез іздестіру мен
сұрыптау (іріктеу), сондай-ақ берілген форма бойынща есепті қарапайым
түрлендіру жасау мүмкіндігі. Мысалы, кітаптардың инвентарлық нөмірлері
бойынша кітаптың қолда ма, әлде қолда емеспа, қолда болса, кімнің
қолында,аты-жөндерін оңай айыруға болады немесе жазушының аты-жөні бойынша
шығармаларының тізімін жасауға болады.
Осы ауқымда жұмыс жасау үшін тиімді өріс бұл - динамикалық
программалау. Нақтырақ айтсақ, екібағытты циклдік тізім арқылы кітаптарды
енгізіп, құрылған базаға тиімді процедураларды қолдану.
Жүйе PasсalABC бағдарламалау жүйесіне негізделен. Курстық жұмыстың
ендігі негізгі мақсаттарының бірі: осы бағдарламалау жүйесінде жұмыс
істеуде бұрында және кейін алған жаңа негіздерді бекіту. Берілген жұмыста
негізінен динамикалық жадыны тиімді пайдалануға арналған процедуралар және
әр түрлі типтағы айнымалылармен жұмыс жасауға көңіл бөлінеді.
Аналитикалық бөлім
1.1 Есептің қойылуы мен бейнеленуі
Курстық жұмыста мен кітапханадағы кітаптарға база құрып, бұл базаны
тиімді қолдануым қажет. Сонымен қатар курстық жобаның негізгі
элементтерінің бірі ретінде қолданушы мәзірі болып табылады. Қолданушы
мәзірі 12 пунктіден тұрады, мәзір негізі - процедураларды берілген ретпен
таңдауда.
1.2 Ақпаратты өңдеу кезеңдерін негіздеу, бағдарламаның жалпы концепциясы,
оның құрамы мен құрылымы
Курстық жобаны бағдарламалау кезеңі келесі сатылардан тұрады:
• Теориялық мағұлматтар жинау және нақтылау;
• Бағдарлама алгоритімін құру;
• Бағдарламаның құрылымын дайындау;
• Бағдарламаның мәтінін дайындау;
• Бағдарламаны тестілеу;
• Түсінік хатты дайындау.
Бадарламаның құрамына бағдарламаның денесі және негізгі 11 процедура
кіреді:
Файл құру:
PROCEDURE CFILE;
Файлды көру:
PROCEDURE PROS;
Екібағытты тізім құру:
PROCEDURE CPIC;
Тізімді экранға шығару:
PROCEDURE PRINT;
Тізім элементтерін файлға жазу:
PROCEDURE ZFILE;
Тізімге тағы бір элемент қосу, яғни біздің жағдайда кітап:
PROCEDURE DOB;
Тізімнен элементті алып тастау:
PROCEDURE DEL;
Кітап аты бойынша іріктеу процедурасы:
PROCEDURE SORT;
Кітап аты бойынша тізімнен іздеу процедурасы:
PROCEDURE POISK;
Қолдағы кітаптардың барлығын тізім соңына көшіру:
PROCEDURE PEREM;
Дайын тексттік файлдағы мәліметтерді қолдану үшін файлға көшіру:
PROCEDURE READSFILE;
Бағдарлама құрылымы 1.1-сурет:
1.3 Инструментальды құралдарды таңдаудың негізі
Pascal ABC жүйесі оқушылар мен кіші курс студенттеріне бағытталған
және Паскаль тілінде бағдарламаларды оқуға арналған.
Алғашқы оқу авторлар пікірі бойынша қарапайым және ұқсас орталарда,
қазіргі уақыт ортасында бағдарламалау тілінің мүмкіншіліктері стандартқа
сай. Сонымен бірге ішкі программалардың жеткілікті болуы мен бай және
замандас кітапханалардың бағдарламалауға сай жүруі жеткілікті деп
түсіндірді. Көптеген пайдаланушылар Паскаль тілінен бастап оқыған, Borland
Delphi оқуға жеңіл екенін мойындаған. Бірақ, Borland Pascal ортасы, MS DOS,
Borland Delphi орталарының бай мүмкіншіліктері бастаушы бағдарламалаушы
үшін күрделі болды. Дәл, осылай әрекет бастау, яғни Borland Delphi арқылы
жұмыс жасау оқу- жазуға, оқиғалы бағдарламалар қатарына көптеген қиындықтар
әкелді.
Delphi Pascal тілінің негізінде Pascal ABC жүйесі салынған. Бұл жүйе
бірте- бірте қарапайым жүйеден модульдікке, объекті- хабарланғанға, оқиғалы
және компоненттік бағдарламалауға ауысу арқылы дамыды. Pascal ABC жүйесі
бірнеше тілден жасалатын конструкцияларға, сонымен қатар ерте кезден оқуға,
қолдануға оңай жүйелердің бірі.
Мысалға: интерфейс секциясын және орындау секциясын модульде жасауға
болады. Ал модульдің өзіде практикалық негізде бағдарламада жасалған.
Процедура және функция тақырыбы олардың кірісуіне толық мән беріп,
анықтайды.
Pascal ABC бағдарламалау жүйесінің арнайы оқу мақсатында жасалған
модульдік қатары растірлік графика Graph ABC модулі объектісіз өткізіледі.
Бірақ оның практикалық мүмкіншілігі Borland Delphi практикалық
мүмкіншілігіне сәйкес келеді. Ол оқиғасыз бағдарламаларға қолайлы, сонымен
қатар "жыпылықтаусыз" анимация жасауға болады.
Events модулі қарапайым оқиғалы бағдарламалар мен объектілерді
қолданусыз жасауға рұқсат етеді (өзімен қарапайым процедуралық өзгеріс
оқиғаларын ұсынады).
Timers және Sounds модульдері таймерлер және дыбыстар, сонымен бірге
іске асырылатын процедуралық стильді де жасауға рұқсат етеді. Бұл
модульдерді тіпті консольді бағдарламада да қолдануға болады.
Containers - контейнер кластарының модульі негізгі құрылымдармен
(динамикалық массивтермен, стектермен, жиындармен) іске асыруға рұқсат
етеді.
ABC Objects векторлық графика модульінің негіздері объекті-
хабарланған бағдарламаларды жылдам зерттеуге арналған. Күрделі ойындар мен
оқытушылық бағдарламаларды жасауға рұқсат етеді.
VCL визуальді компоненттер модулі Delphi стильінде негізгі оқиғалы
қосымшаның түрімен жұмыс жасауға рұқсат етеді. VCL классы Delphi түрімен
ұқсастықтары көп және қолданушыға ыңғайлы болу үшін оңайлатылған.
Pascal ABC тілінде арифметикалық операцияларды типтік көрсеткішке
келтіруге, сондай- ақ жұмысқа арналған комплексті сандармен жұмыс жасауға
болады.
Сондықтанда мен осы Паскаль ортасы, яғни, Паскаль бағдарламалау
жүйесімен жұмыс істеуді ұйғардым.
2 ТЕХНОЛОГИЯЛЫҚ БӨЛІМ
2.1 Құру мақсаты мен қызметі
XXI ғасыр электрониканың ғасыры, яғни комьютер кезеңі. Сол себебті,
керек мағұлматтарды осы компьютердің комегімен игерген оңай әрі тез болады.
Динамикалық бағдарламалау белгілі бір материалдар жинағын тез әрі оңай
игеру үшін тиімді.
2.1.2 Динамикалық жады түсінігі
Бағдарлама трансляциясы кезінде тіл негіздік құралдарының
жетіспеушіліктерінің бірі, паскаль, ЭВМ азат жадысын қатал таратуында.
Нақты, егер айнымалы бағдарламада жарияланса, бағдарлама жіберілуі жанында
айнымалыға ЭВМ жадында бос ұяшықтар анықталады, осы ұяшыққа сұрау салу дәл
осы айнымалыға сұрау салумен эквивалентті. Бұл талап жиымдарға, жазбаларға
да жатады.
Мысалы, бағдарламада 100дік жиым анықталсын:
VAR A:ARRAY[1..100] OF INTEGER;
Сонда осы жиымда айнымалыларды сақтау үшін 200 байт жады көлемі қажет
– әр бүтін санға 2 байттан. Мысалы, REAL типтес сандар 6 байт жадыны талап
етеді және REAL типтес сандардан тұратын жиым - 600 байт жадыны алады.
Мәселе айнымалы ретінде жолдық қатарлы айнымалы болғанда ләзге
қиындай түседі, себебі осындай типтегі әрбір айнымалы 256 байтты талап
етеді, немесе жазбалық жиымдардың айнымалылары бірнеше жолдық қатарлы
айнымалылардан тұруы мүмкін.
Мұндай жағдайда компьютер төмендегідей қателіктерді көрсетуі мүмкін:
ERROR 22: STRUCTURE TOO LARGE -
Тым ұзақ құрылым, немесе
ERROR 96: TOO MANY VARIABLE -
Барлық бейнеленген мәлімет көлемі 64 килобайттан асуы мүмкін емес.
Яғни, бағдарламаға берілген жады көлемі 1сегементтен, 64К-тан аспауы
шарт.
Мәліметтер үшін жадыны катаң қадағалап тарату – статистикалық деп
аталады, керсінеше жадыны арнайы көрсеткіштер арқылы ұйымдастыру
динамикалық тарату деп аталады.
Жадыны динамикалық түрде ұйымдастыру идеясының негізі болып:
сегментке мәліметтің өзі емес, жады ұяшықтарының бастапқы адрестері
жазылады, яғни осы адрестер негізгі мәліметтің жатқан жерін көрсетеді. Осы
жағдайда компьютердің түгелімен бос жадысын қолдануға болады, тек қана бір
жады сегментін ғана емес. Бір көрсеткіш адресін сақтау үшін 4 байт қана
қажет. (физикалық адресі және сегменттегі жылжуы саналады).
Көрсеткіштер – бұл арнайы ЭВМ жадындағы ұяшықтың физикалық адресін
сақтауға арналған айнымалы. Компьютер жадындағы физикалық адрес екі
бөліктен, яғни, адрес сегменті 2 байт, сегменттегі жылжу тағы 2 байт, онда
көрсеткіш WORD типті болады, нақтырақ әр адрес үшін екілік WORD типінде.
Мәліметтерді қарапайым бейнелеуден гөрі көрсеткіштермен жұмыс
істеудің артықшылықтарын атап өтсек:
Бағдарлама ағымдағы компьютердің барлық бос жадысын толығымен қолдана
алады.
Босаған жады бөліктерін пайдалану;
Динамикалық жады ең тиімді пайдаланылатын орта: жады көлемі белгісіз
немесе процесс барысында күрт өзгеруі мүмкін болғанда, мысалы, стектар,
кезектер, екібағытты, кестелік тізімдер немесе екілік ағаштар.
Паскаль тілінде компьютердің динамикалық жадысы куча деп аталады,
кей кезде үлкен стек деп немесе мәліметтер байтынан тұратын үлкен жиын деп
аталады. Стектың бастауы (алғашқы адрес немесе кучаның асты) стандартты
айнымалы-көрсеткіш HeapOrg, ал стек шыңы, бағдарлама ізімен ораналасқан
көрсеткіш, - HeapEnd. HeapPrt – ағымдағы стек бөлігінің мағынасын
анықтайтын стандартты айнымалы. Кучаның шекарасын компиляторға бағытталған
арнайы көрсетілімдер арқылы реттеуге болады. Негізінде, бастапқы қалыпта
барлық бос аймақ кучаға арналған.
Динамикалық жадының жұмыс механизмна сондай үңілмей-ақ, көрсеткіштер
арқылы әр түрлі типтағы айнымалылардың мағынасын ДЖ-да орналастырып және
жоюға болытыны туралы қарастырайық.
2.1.3 Көрсеткіштермен жұмыс жасауға арналған процедуралар мен
функциялар
NEW (I) процедурасы айнымалыға қажет динамикалық жадтты бөліп береді.
POINTER-паскаль тіліндегі арнайы көрсеткіш тип. Ол кезкелген типті
көрсеткіш терді қосу амалдарына қатысады.
DISPOSE-процедурасы көрсеткішінің (адресінің) мағынасын, яғни
ссылканы немесе ішіндегі ақпаратты өзгертпейді, алып тасталмайды, ол тек
қана берілген жады аумағын бос деп белгілейді.
NIL- арнайы резервтелген нөлдік адрес, оны кез-келген көрсеткішке
қосуға болады.
MARK- динамикалық жадыда ағымдағы бос учаскінің мағынасын сақтайды.
RELEASE- MARK көрсеткіші арқылы динамикалық жадттың бастапқы
облысын белгілеп, RELEASE көрсеткіші арқылы нәтижесінде белгіленген аймақты
босатуға арналған.
Келесі жұп процедура GETMEM және FREEMEM үйіндідегі жадыны босату
және бөлектеп алу алуға арналған. Процедураны жазу форматы : GETMEM
(көрсеткіш,көлем);
FREEMEM процедурасы GETMEM процедурасынан кейін жұмыс істейді. Ол
бұрын белгіленген блок жадының белгіленген көлемін босатады. Форматы:
FREEMEM (көрсеткіш,көлем);
Келесі функциялар көрсеткіштермен жұмыс жасағанда қолданылады. Олар
үйіндінің жад көлемін бақылауға немесе адрестермен амалдар қолданылады.
Мысалы:
MemAvail функциясы , Longint типінде, динамикалық жадттың бос
көлемінің жалпы өлшемін анықтайды.
MaxAvail Longint типінде, динамикалық жадттың ең үзіксіз учаскесін
байтпен анықтайды.
SizeOf (көрсеткіш) Integer типіндегі функция берілген көрсеткіштің
жад көлемін анықтайды (A:=SizeOf(I^);
Екінші топқа келесі функциялар жатады:
Cseg функциясы Word типті , С микропроцесорының ағымдағы регистрінің
мағынасын анықтайды.
Dseg Seg функциясы Word типті , D микропроцесорының ағымдағы
регистрінің мағынасын анықтайды.
Seg (айнымалы) айнымалы орналасқан сегмент адресін анықтайды.
Айнымалы кезкелген типта блоуы мүмкін.
Ofs (айнымалы) айнымалы мағынасы орналасқан адрес жылжуын
анықтайды.
Prt ( , :word) типі pointer, көрсеткішті анықтауға арналған
қайсыбір адресте орналасқан айнымалы мағынасының сегменті мен жылжуын
өзгертеді.
Addr (айнымалы) функциясы қайсыбір айнымалының мағынасы орналасқан
адресін анықтайды.
2.1.4 Екібағытты жазбалық тізімді ұйымдастыру
Қарапайым бірбағытты тізімнің басты кемшілігі, түрлі іздеу
алгоритмдерін қолдануда шектеу қойылды. Бұл тізім құрылымы іздеу кезінде
кезектеп көруді қажет етеді, яғни элементтерді тізімнің басынан (ZAGOL)
соңына дейін қарап шығады.
Іздеу мүмкіншілігін кеңейту үшін жазбаға тағы бір өріс қосу
ұйғарылды, бұл өріске алдыңғы элемент адресі жазылады (қалыпты жағдайда бұл
өрісті OLD деп атайды). Мұндай қосымша көрсеткіштер ұйымдастырудың басы
ретінде соңғы жазба элементі ZAGOL2 болып табылады. Бірінші жазбаның OLD
көрсеткіші мен соңғы жазбаның ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz