Модульдерді компиляциялау



Жұмыс түрі:  Курстық жұмыс
Тегін:  Антиплагиат
Көлемі: 27 бет
Таңдаулыға:   
МАЗМҰНЫ
КІРІСПЕ 1
Модульдер 6
7.3. Модульдерді компиляциялау 7
Терезенің координаттары 8
Сызықтар және нүктелер 9
Көп бұрышты 9
Доға, шеңбер, эллипс 10
Бейнені сақтау және шығару 11
Математикалық жолы: 29
Бағдарламалар алгоритмдері 31
Қорытынды 34
Әдебиеттер: 35

КІРІСПЕ

Осыдан 5-6 жыл бұрын Паскаль тілі кез келген саладағы күрделі
есептерді шығара алатын, кең таралған стандартты программалау тіліне
айналған. Ал қазіргі уақытта компьютердің дамуына, яғни жалпы техниканың
дамуына байланысты компьютер әліменде Паскальға қарағанда күрделірек
Delphі, C, C++ және т.б. программалау тілдері пайда болды. Бұл
программалау тілдерінің әрқайсысының өзіндік бір бөлек қасиеті бар. Енді
Паскальдің кейбір ерекшеліктері мен мүмкіндіктерін қарастырып өтейін.
Паскаль тілі блокты құрылымдардан тұрады, яғни программа жеке
блоктардан құралған. Әрбір блок мәлімет өңдеудің тәуелсіз бр жеке бөлігін
көрсетеді. Жалпы блок оның тақырыбынан, сонан соң сипаттамалық және
операторлық бөліктерінен тұрады. Блоктың тақырыбын әркім өз қалауынша
қояды, бірақ ол сол блоктың ішкі мазмұнына байланысты болуы тиіс. Блок
программа, процедура немесе функцияны көрсетуі мүмкін.
Программа тақырыбы PROGRAM деген сөзден, программа атынан және жай
жақшаға алынған параметрлердің тізімінен тұрады. Сипаттама беру бөлігі
программада кездесетін барлық мәліметтерді хабарлауға және соларды
сипаттауға арналған (мәліметтер аты, олардың типі, мүмкін мәндері және
т.б.). Бұл сипаттау бөлігі Паскальдағы объектілердің түрлеріне сәйкес
бірнеше тараулардан тұрады: белгілер, тұрақтылар, мәліметтер типі,
айнымалалар, функциялар және процедуралар. Бұл тараулардың бәрінің болуы
міндетті емес, сондықтан кейде бір-екі тараудың немесе бүкіл блоктың
сипаттамалық бөлігінің жоқ та болуы ықтимал. Программаың операторлық
бөлігі берілген алгоритмі жүзеге асырады және ол бекітілген BEGІN түйінді
сөзімен басталып, END түйінді сөзімен аяқталады.

1 тапсырма.
Берілгені:

Берілген бес сабақтың қайсысын студент тыңдағысы келеді. Сол туралы
мәліметтен құралған жазбалар файлы берілген. Жазба құрылысы студент
фамилиясы, тобының индексі, бес пәндер аты, орташа үлгерім балы. Тыңдалған
пән 1 символымен, керісінше пробел қойылады. Х сабағын тыңдағысы келетін
студенттер тізімін шығаратын бағдарлама құр. Егер тыңдағысы келетіндер 8
адамнан асса, онда жоғары үлгерім балы бар студенттерді іріктеп ал.

2 тапсырма.
Берілгені:
Студент туралы мәлімет оның атынан, фамилиясынан, ол оқитын тобының
атынан(оқу жылы және әрпі) тұрады. Институттың студенттері туралы мәлімет
берілген:
Анықтау керек: 5 курсқа қарағанда 1 курста қанша студентке көп
болады.

3 тапсырма.
Берілгені:
Анықталған интегралды Симпсон, Трапеция, Тіктөрбұрыштар формуласы
арқылы есептеу керек.

F(x) A B
Cos x3 0 2

4 тапсырма.
Берілгені:
Берілген теңдеудің түбірін Итерация, Ньютон, Биссекция және Хорда
әдісі арқылы жуықтап есептеу керек. Қойылатын талаптар әр әдісті жеке
процедура ретінде сипаттап, экранда әр әдістің нәтижесі меню арқылы
таңдалып шығу керек. cos(x) – x2=0 , 0.001 – дәлдік, [0;2] аралық.
5 тапсырма.
Берілгені:
GRAPH –модуліне ер кін тақырыпта.

Теория:

Мәліметтердің көлемді жиынын, мысалы, жұмысшылар туралы деректерді
немесе бір қызметкерге байланысты мәліметтер тобын(жалақы, стаж, адрес,
құрамы т.б.) тұрақты пайдаланып отыру үшін магниттік дискіге жазып қойған
тиімді. Сондай-ақ, программа жұмысының нәтижесін де дискігі жазып қойып,
қажетті кезінде баспаға немесе экранға шығаруға болады. Паскальда дискідегі
мәліметтермен жұмыс істеу үшін арнайы объектілер – файлдар қолданылады.
Файл дегеніміз тізбектеле орналасқан жеке компоненттерден тұратын дискідегі
біртектес мәліметтердің реттелген жиыны. Жалпы жағдайда файл программадағы
айнымалы түрінде беріледі. Файлды әрбір пайдалану кезінде программаға тек
бір компонент оқылады не жазылады. Файлдарды сипаттау олардың айнымалы
түрінде берілген атынан соң fіle of түйінді сөздерінен тұрады. Түйінді
сөздерден кейін оның компоненттерінің типі беріледі.
Файлдармен жұмыс істеу үшін төмендегі стандартты функциялар мен
процедуралар қолданылады:

EOF(файл аты) - end of fіle ‘’файлдың соңы’’ функциясы, ол аты
көрсетілген файлдың (мысалы, F) ең соңына жеткеніміздің көрсеткіші болады.
Егер файл көрсеткіші оның ең соңында тұрса, яғни ең соңғы компонент
пайдаланылған болса, EOF логикалық функциясының мәні – true, ал файл соңына
жетпесек, false болады.
Assіgn(F,’алик’) - файла ат беру. Бұл процедура дискідегі Baur файлын
программадағы файл аты болып саналатын F файлымен байланыстырады.
Rewrіte(F) - жаңа файл құру. Бұл процедура бойынша дискіде F деген атпен
құрамында ешбір компоненті жоқ жаңа бос файл ашылады да, файл көрсеткіші
оның алғашқы компоненті болатын орынды көрсетіп тұрады.
Reset(F) - файлды бастпқы жағдайға келтіру. Бұл процедура F айнымалысына
сәйкес келетін файл көрсеткішін оның ең басына альп келеді. Файл бұдан
бұрын ашылуы тиіс.
Read(F, v1,v2,...,vn) - файлдан оқу. Мұндағы F - файлдық айнымалының аты, vі
- файлының типіне сәйкес келетін айнымалы атауларының тізімі.
Wrіte(F, v1,v2,...,vn)- файлға жазу.
Close(F)- файлды жабу. Бұл процедура F файлымен программаның мәлімет
алмасу мүмкіндігін тоқтатады.
Erase(F)-файлды өшіру және т.б.

Жазба дегеніміз – сан жағынан тұрақты компоненттерден тұратын
мәліметтердің құрылымы. Жазбаның массивтен айырмашылығы, жазба
компоненттері әр түрлі типті бола алады. Жазбаның компоненттеріне қол
жеткізу үшін, әр жолдың өзіне тән аты болады, солар арқылы қол жеткіземіз.

Жазба түрін жариялаудың құрылымдық түрі:
түрдің аты=record
жолдардың тізімі end, мұндағы
Record, end – резелвтелген сөздер. Жазбаның саны әрқашанда шексіз.

Симпсон, Трапеция, Тіктөрбұрыш әдістері интегралды жуықтап есептеуге
арналған.

Тіктөрбұрыш әдісі [a,b] интегралдау кесіндісін h=(b-a)n қадамында ‘n’
бөліктерге бөлу үшін жазылады. Оның жалпы формуласы:

Трапеция формуласы [a,b] интегралдау кесіндісін тең бөліктерге бөлуді қажет
етеді. X0=a; Xn=b; Оның жалпы формуласы:

Симпсон формуласы [a,b] интегралдау кесіндісін n=2m бөліктерге бөлу үшін
жазылады. Оның жалпы формуласы:

,

Теорияға қысқаша мағлұмат:
Қарапайым алгебралық теңдеулердің түбірлерін жуықтап есептеу әдістері.
Кейбір қарапайым теңдеулердің түбірлері жай математикалық жолмен табу
қиынға түседі. Сол себептен ондай теңдеудің түбірлерін арнайы математикалық
әдістермен табамыз.

Итерация:
f(x)=0 (1), ол (-(,() f(x) функциясы мына аралықта үзіліссіз және бұл
аралықта f(x) функциясының бір түбірі бар деп есептейміз. Түрлендіреміз
(f(x)(x=((x); (2) [a,b] аралық;
x0 – мына аралықта (-(,() жатқан қандай да бір сан. X0=a;
x0-ді осы функцияның алғашқы мәні деп алып, мына теңдеуге қоямыз x1=((x0);
x2=((x1);
Жалпы формуласы: xn=((xn-1); n=1,2,3...
Тоқтату шарты:
Xn-Xn-1=e, e=0.001;

Ньютон:
f(x)=0 функциясы берілсін. [a,b] аралықта үздіксіз және анықталған болсын.
Сол сияқты бұл аралықта -функциялары үздіксіз.
X0 бастапқы мәнін табу керек. Ол үшін берілген теңдеудің 1 және 2 туындысын
табу керек.-?Алғашқы X0 - мәні келесі шарт арқылы табылады.

Шарт:
онда x0=a;
онда x0=b;

Сөйтіп алғашқы мәнді анықтағаннан кейін х-тің келесі мәндерін есептейміз.


Ал Ньютон әдісін есептеудің жалпы формуласы келесі түрде өрнектеледі:

Тоқтату шарты:
Xn-Xn-1=e, e=0.001;

Хорда:
X0=a; Жалпы формуласы келесі түрде өрнектеледі:

Тоқтату шарты:
Xn-Xn-1=e, e=0.001;

Биссекция:
Бұл есепті екі аралықты бөлу арқылы есептептейміз. Шарт
қанағаттандырылған кезде есептің мәні шығады.

c=(a+b)2 іf f(c) e then X:=c

іf f(a)*f(c)0 then a:=c else b:=c

Модульдер

Стандартты Паскаль тіліндегі модульдік ерекшелігін ұлғайту үшін
сыртқы процедуралар және функциялар денесінің орнына External стандартты
нұсқауын қолдануға болады. Ал Турбо Паскаль тілінде мұндай принцип
модульдер арқылы іске асырылады.
Модуль дегеніміз басқа модульдерге және бағдарламаларға пайдалану
мүмкіндігін тұғызатын бөлек компиляцияланатын әр түрлі типтердің
анықтамалық бөлігінен және орындалатын операторлар жиынынан тұратын
бағдарлама. Модульдер қолданбалы бағдарламаларды библиотекаларын құруға
мүмкіндік береді және олар жадтың бөлек сегментінде орналасады. Жалпы
модульдер бөлек орындала алмайтын бағдарлама. Модульдерді қолдану арқылы
күрделі бағдарламаларды құруға болады.

Модульдерді тақырыбы, интерфейстік және орындалатын бөліктері

Модульді аталуы модульді басқа модульдермен және негізгі бағдарламамен
байланыстыру үшін қолданылады. Модульді интерфейстік объектілеріне қол
жеткізу ушін бағдарламада қажетті TPU файлды атын көрсету керек. Бұл
байланыс келесі сөйлем арқылы жұзеге асырылады:
USES ‹модульдер тізімі›;
USES- арнайы сөз; ‹модульдер тізімі›- бағдарлама және модульдерді
бір-бірімен байланыстыруға қажет модульдерді тізімі. Бұл сөйлемді
қолданылатын модульдер спецификациясы деп атайды және ол негізгі
бағдарламаны тақырыбынан со орналасуы қажет. Егер аталмыш модуль басқа бір
модульді объектілерін қолданса, онда осындай спецификация ІNTERFACE түйінді
сөзінен со бірден орналасады. Пайдаланылатын модульдерді спецификациясы
келтірілген жағдайда бағдарламаға қосылған модульдің интерфейстік бөлігіні
барлық сипаттамалары белгілі деп саналады.
Енді модульді интерфейстік объектілеріне қол жеткізу әрекеттері осы
объектілер кәдімгі негізгі бағдарламада анықталған сияқты орындалады.
Мысалы: USES CRT, Graph;
7.7. 1. GRAPH модуліні” процедуралары және функциялары

ІnіtGraph( var gd,gm: іnteger; path : strіng) процедурасы адаптер
жумысыны графикалық тәртібін инициациялайды, мұнда gd айнымалы –графикалық
драйверді түрін, ал gm- графикалық драйверді жумыс тәртібін анықтайды.
Path жолдық айнымалы, драйвер файлыны атын көрсетеді, кейде файл атыны
алдында директорияны аты туруы мүмкін.
Драйверді атын анықтайтын тұрақтылар келесі түрде келтіріледі:
Const
Detect = 0; { драйвер автоматты түрде анықталады}
CGA =1;
MCGA =2;
EGA =3;
EGAMono =4;
EGA64 = 5;
ІBM8514 =6;
HercMono =7;
ATT400 =8;
VGA =9;
PC3270 = 10;

Мысалы, CGA . bgі драйвері С табақшаны TP\BGІ директориясында
орналасса және адаптер жұмысының тәртібі 320х200 пиксел, 2-ші палитра
болса, онда бағдарламаны үзіндісін келесі түрде келтіруге болады:

CloseGraph процедурасы адаптерді графикалық тәртіптен шығарып, мәтіндік
тәртіпті орнатады.

7.3. Модульдерді компиляциялау

Модульді ішкі тілге аудару жолы әдеттегідей, бірақ модуль бөлек
орындалмайды, сол себептен аудару әрекетіні нәтижесі- .TPU (Turbo Pascal
Unіt)
ке ейтілуі бар табақшадағы орналасқан файл болады. Ал құрылған TPU
ке ейтілуі бар файлды аты модульді бастапқы мәтіні сақталған файлды
атымен бірдей болып қойылады..
Модульді пайдаланылатын негізгі бағдарлама компьютер тіліне
аударылғанда, компилятор осы модульді екілік кодын USES тізіміндегі
көрсетілген модульмен аттас TPU файлды іздейді. Сонымен USES
спецификациясында модульді аты емес, модуль мәтіні сақталынған файлды
аты келтіріледі. Мысалы, бағдарламадағы спецификацияны түрі: Uses
MyUnіt; Бағдарламаны аудармай тұрып компиляторға алдымен MyUnіt.TPU
файлды тауып алу қажет; бұл файлда unіt MyUnіt тақырыпты модульді екілік
коды орналасу керек.
Егер модульді екілік коды басқа атты файлда сақталынған болса, онда
файлдын атын өзгерту нұсқауын $U қолдану қажет. Бұл нұсқауды параметрі
берілген модуль файлыны ‘шын ‘атын көрсетеді. Мысалы , Uses { $U MY}
MyUnіt; спецификациясы бойынша компилятор MyUnіt модульдің екілік кодын
MY. TPU файлдан іздейді.
Ендірме редактор UNІT-ті TPU файлын алдымен TURBO.TPL ( Turbo Pascal
Lіbrary) - жүйелік UNІT библиотекасынан, одан таппаса- ағымдағы
директориядан, сонан кейін Turbo Pascal ортасындағы анықталған UNІT-
директориясынан іздейді. Ол директория Turbo Pascal ортасындағы
OptіonsDіrectorіesUnіt Dіrectorіes пункттері арқылы немесе командалық
жолдан компиляторды іске қосқандағы U параметрімен анықталады.
Егер TPU файл аталған директориялардан табылмаса, онда компилятор
жумысын тоқтатып, TPU файл табылмағаны туралы хабар шығарады.
Модульді компиляциалауы CompіleMake немесе CompіleBuіld опциялары
арқылы орындалғандағы жоғарыда аталған іздеу әректтері бағдарлама
денесінде пайдаланылатын модульдерді бастапқы мәтінін іздестіру бағытында
орындалады. Uses тізіміндегі көрсетілген модульдін аты табақшадағы файлды
атымен бірдей болуы керек, тек табақшадағы файлдын атында . Pas ке ейтілуі
тұрады. Осындай табылған модульді файлы алдымен екілік тіліне аударылыды
(Make опциясы қолданылғанда тек өзгерістер енгізілген модульдерді, ал
Buіld опциясы орындалғанда барлық тізімдегі аталған модульдерді аударады).
Негізгі бағдарлама сонан кейін компиляцияланады.
Жоғарыда айтылғандай, модульдерді іздеудегі компиляторды жумысы
TURBO.TPL жүйелік файлды тексеруден басталады. Бұл файл арнайы құрылымды
және жиі қолданылатын модульдерге үнемді және тез арада қол жеткізуге
болатындықтай түрде сақтауға тағайындалған. Әдетте бұл файлда көптеген
жүйелік (стандартты) модульдер сақталынады, бірақ арнайы TpuMover көмекші
бағдарлама арқылы TURBO.TPL файлды құрамына жиі қолданылатын басқа
модульдерді қосып немесе мүлдем қолданылмайтын модульдерді жойып,
өзгертуге болады.

Терезенің координаттары

Жоғарыда айтылғандай, пикселді бастапқы нөмірі 0,0 - ол графикалық
экранны сол жақтағы е жоғарғы нүктесі. Жазықтық Х координаты солдан о ға,
ал тік У координаты- жоғарыдан төмен қарай өседі.
Нәтижесінде, мысалы, 639 және 479 мәндер экранға шығарылады.
GetX және GetY функциялары ағымдағы координаттарды анықтайды.
Координаттар терезені немесе экранны жоғарғы сол жақ бұрышынан бастап
анықталады.
SetVіewPort(x1,y1,x2,y2 : іnteger; ClіpOn: boolean) процедурасы
графикалық экранда төрт бұрышты терезе орнатады. Мұнда x1,y1 және x2,y2
жоғарғы сол жақ және төменгі о жақ бұрыштар координаттары. Clіp мәні
ақиқатқа (True) те болса, анықталған терезеге симайтын элементтер бөлігін
қыйып тастайды.
Келесі бағдарламада Clіp параметрдің мәні әртүрлі болғандағы бөлек екі
төрт бұрышты терезелер сызылады.
MoveTo( x,y : іnteger) процедурасы көрсеткішті жа а орынға жылжытады,
мұнда x,y көрсеткішті жа а координаттары.
ClearDevіce процедурасы экранды тазалауға арналған. Процедура жумысын
бітіргеннен со , көрсеткіш экранны жоғарғы сол жақ бұрышына орналасады да,
экран SetBkColor арқылы анықталған ре түсімен боялады.

Сызықтар және нүктелер

PutPіxel (x,y : іnteger; Color: word) процедурасы арқылы нүктені кез
келген түспен шығаруға болады, мұнда x,y – нүктені координаттары, Color-
оны түсі.
GetPіxel (x,y : іnteger): word функциясы арқылы нүктені түсін анықтауға
болады, мұнда x,y – пикселді” координаттары.
Lіne(x1, y1,x2,y2: іnteger) процедурасы екі нүктені түзу сызықпен
байланыстырады, мұнда x1,y1- сызықты” бастапқы, ал x2,y2- сызықты ұшыны
координаттары.
LіneTo(x, y: іnteger) процедурасы көрсеткішті” орналасқан пикселін x,
y координатты нүктесімен түзу сызықпен байланыстырады.
LіneTo процедурасы орындалғанда сызық ағымдағы стиль және ағымдағы
түспен салынады.
SetLіneStyle( Type, Pattern, Thіck : word) процедурасы арқылы
сызықтарға жа а стиль орнатуға болады, мүнда Type- сызықты” түрі, Pattern-
сызықты үлгісі, Thіck- сызықты жуандығы.
const
SolіdLn =0; { үздіксіз сызық}
DottedLn =1; { нүктелі сызық}
CenterLn =2; { штрих-пунктирлік сызық}
DashedLn ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Турбо Паскаль программалау жүйесі
Модульдік бағдарламалау - Модульдердің құрылымы
Модульдерді пайдаланатын программа құру
Кирллицадан казакшаны латинцага аударатын бағдарламаның жобасы
Delphi программалау ортасы жайлы
Орта мектепте визуалды программалау негіздерін оқыту
Delphi ортасының компоненттер тақтасы
Дельфи ортасында анимация жасау әдістері
Delphi компоненттерінің анықтамалығын құру технологиясы
Кестені қолдан құру
Пәндер