Құрылымдық модульдік программалау курстық жұмыс
МАЗМҰНЫ
КІРІСПЕ ................... . . . . . . . . . . . 3
1.ҚҰРЫЛЫМДЫҚ МОДУЛЬДІК ПРОГРАММАЛАУ.. . . . . . . . . . . . . 4
Модульдер................... . . . . . 4
Модульдік программалау.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Модульдік программа формасы.. . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Стандартты структуралық программалау.. . . . . . . . . . . . . . . . . 12
Стандартты модульдер.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Модульдің жалпы құрлымы.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Модульдегі көмекші программалар.. . . . . . . . . . . . . . . . . . . . . . . 15
2. МОДУЛЬДІ КОМПИЛЯЦИАЛАУ МЕН ОНЫҢ ҚОЛДАНЫЛУЫ..17
Модульді компиляциалау: TPU – файлдар.. . . . . . . . . . . . . . . . . . 17
2.2. Модульдерді іздеу. TURBO. TPL – файлы.. . . . . . . . . . . . . . . . . . 20
2.3. Синтаксистік диаграммалар.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
ҚОРЫТЫНДЫ................... . . . . . 24
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР.. . . . . . . . . . . . . . . . . . . . . . . . . . 25
Жұмыс түрі: Курстық жұмыс
Жұмыс көлемі: 25 бет
Пәні: Соңғы қосылған курстық жұмыстар
-----------------------------------------------------------------------------------
КУРСТЫҚ ЖҰМЫСТЫҢ ҚЫСҚАРТЫЛҒАН МӘТІНІ
КІРІСПЕ ................... . . . . . .
1.ҚҰРЫЛЫМДЫҚ МОДУЛЬДІК ПРОГРАММАЛАУ.. . . . . . .
Модульдер................... . . . . . 4
Модульдік программалау.. . . . . . . .
Модульдік программа формасы.. . . . . . .
Стандартты структуралық программалау.. . . . . . .
Стандартты модульдер.. . . . . . . .
Модульдің жалпы құрлымы.. . . . . . .
Модульдегі көмекші программалар.. . . . . . .
2. МОДУЛЬДІ КОМПИЛЯЦИАЛАУ МЕН ОНЫҢ ҚОЛДАНЫЛУЫ..17
Модульді компиляциалау: TPU – файлдар.. . . . .
2.2. Модульдерді іздеу. TURBO. TPL –
2.3. Синтаксистік диаграммалар.. . . .
ҚОРЫТЫНДЫ................... . . . . . 24
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР.. . . . . . . .
Кіріспе
Модуль немесе жалпы жағдайда, модульдік программалау ұғымы есептеу ісінің
Turbo Pascal жүйесінің 4–версиасынан бастап оған модуль ұғымын ендіру
Turbo Pascal – дағы модульдік құралдар, модулдік принцип жобалау
Бұл курстық жұмыстың мақсаты құрылымдық модульдік программаларды зерттеп меңгеру
Негізінен бұл жұмыста модульдік программалау және олардың формасын, стандартты
Бұл жоба негізінен кіріспеден, екі тараудан, қорытындыдан, пайдаланылған
1. Құрылымдық модульдік программалау.
1.1. Модульдер
Модульдер басты принципі ақпаратты жасыру (information hidinig) болып табылатын
Модуль синтаксисінің түрі келесідей:
Модульдерді пайдалануда олардың атын дұрыс көсету маңызды. Стандарттымодульдерді енгізгенде
Жеке модуль құрғанда бірқатар ерекшеліктерді есте сақтаған жөн:
атаулары бірдей модульдерді бірдей уақытта бірге пайдалануға болмайды;
(UNIT) атауында көрсетілген модуль идинтификаторы бастапқы (PAS) және обьектілік
егер модуль идинтификаторы 8 символдан көп болса, онда ол
Төменде модульдің әр бөлігінің мазмұны мен қызметін түсіндіретін қосымша
UNIT – Модуль идинтификаторы.
Интерфейстік бөлімі.
Interface – Бұл бөлімде берілген модуьдің басқа пайдаланушы немесе
Интерфейс бөлімінің импорттық тізімі.
Uses Бұл тізімде үтір арқылы интерфистік бөлімінің ақпараты осы
Интерфеис бөлімінің экспортты тізімі.
Const
Tupe
Var
Procedure
Function Экспорттық тізім берілген модульде анықталған, бірақ
Орындау бөлімі.
Implementation – Бұл бөоімде басқа модульдер мен программалар үшін
Орындау бөлімінің импортты тізімі.
Uses – Бұл бөлімде берілген модульдің интерфейс бөлімінің ақпаратты
Модуль үшін ішкі түсіндіру бөлімшелері.
Label
Const
Type
Var
Procedure
Function - Бұл бөлімшелерде берілген модульді орындайтын алгроитімдік
Инициалдау бөлімі.
Begin - Бұл бөлімде модульдің түзету жұмыстарын жүргізуге
End. Төмендегі келтірілген мысалда модульдер
Ескерту. Ғаламдық және жергілікті айнымалылардың дәстүрлі әсер ету аймағы
Сондықтан да, егер программаның барлық блогына оңтайлы сипаттамалар аса
Unit Globals ; {Ғаламдық сипаттамаоар модульі}
Interface
Const Len = 100;
Tupe
T vector = array [1..len] of integer;
Implementation
End.
Unit vector service;
{Ұзындығы 100 элементке дейінгі бір өлшемді массивтермен жұмыс жасайтын
interface
{Импортталушы модульдер тізімі}
Uses Globals ; {Тек Globals модульінкөрсету жеткілікті, себебі
{Экспорттаушы модульдер тізімі}
Procedure Vect Max (Vect: T Vector; N:Byte);
{Массивтің максималды элементін тауып,қарау процедурасы}
Procedure Vect Min (Vect: T Vector; N:Byte);
{массивтің минимал элементін тауып шығару}
Procedure Vect Inversr ( varVect: T Vector; N:Byte);
{Массив элементін кері ретке бұру процедурасы}
Implementation
{Модульдің жеке импортты тізімі}
Uses crt; {Қарастырыи отырған мысал үшін мұнда Crt
Procedure PrintVect (Vect: T Vector; N: Byte);
{Вектор элементтерін баспаға шығаруда орындайтын модуль ішілік процедура. Ішкі
Var i: Byte;
Begin
Writeln (‘Вектор элементері:’);
For i:=1 to N do write (Vect[i]:
Writeln;
End;
{Integer бөлімінде келтірілген процедура мен функциалар атауларын бөлімінде
Procedure Vect Max;
Var
Max : Integer;
I : Byte ;
Begin Max := Vect [1];
For i:= 2 to N
If Vect[1];
Max := Vect[1];
Clrscr ;
PrintVect (Vect, N);
Writeln (‘вектордың максимал элементі: ’,Max)
End;
Procedure Vect Min;
Var
Min : Integer;
I : Byte;
Begin Min := Vect[1];
For I := 2 to n
If Vect [1] Min := Vect [i];
Clrscr;
PrintVect (Vect, N);
Writeln (‘вектордың минимал элементі:’. Min)
End;
Procedure Vect Inverse;
Var Temp : Integer;
I : Byte
Begin
Clrscr;
Writeln (‘өзгертуге дейінгі вектор:’);
Print Vect (Vect, N);
For I := 1 to N
Begin Temp := Vect[i];
Vect[i] := Vect [N-i+1];
Vect [N-i+1] := Temp;
End;
Writeln (‘өзгертуден кейінгі вектор:’);
PrintVect (Vect, N);
End.
Program Main; {Бас программа}
Uses Crt, Globals, Vectorservice;
Var
A: T Vector;
I, N : Byte;
Begin
Clrscr;
Writeln (‘Массив ұзындығын енгіз Readln (N);
Writeln (‘Массив элементтерін ендіріңіз;’);
For I := 1 to N
Vect Max (A,N);
Readln; {нәтиже экранда Enter басылымынан
Vect Min (A,N);
Readln; {нәтиже экранда Enter басылымынан
Vect Inverse (A,N)
End.
. Модульдік программалау
Модульдік программаның басты принципі “бөліп ал да, билей бер”.Модульдік
Модульдік программаларды програмаса тестілеумен қателіктерді анықтауда жеңілдетеді.
Парогамма тиімділігін анықтау процесі жеңілдей түседі, себебі уақыт бойынша
“Модуль” тирмені программалауда модульдік принциптерді ендірумен бірге пайдаланыла басталады.
Программалық модульдің негізгі қасиеттерін біршама анық, нақты түрде алған
Осылай Парнас бірінші болып программалауда ақпаратты жасыру концепциасын ұсынады
Бұл проблеменың шешімі табылып, ол модуль деп аталады. Алғашында
Ең бірінше модульдің арнайы синтаксистік конструкциасын 1975 ж. Н.Вирт
Модульдік программа формасы
Модульдік прграмманың иерархиалық құрылымына жақсы форма беру оны өңдеу
Қандай да бір модульмен шақырылатын модульдер саны және оны
Адамның қысқа мерзімде есте сақтауын тиімді пайдаланып, материал ұғымдылығын
1.4 Стандартты структуралық программалау
1. Программа модуль деп аталатын тәуелсіз, және бөліктерге бөлінуі
Модуль – коды физикалық және логикалық жағынан басқа модульдер
Модуль тек бір логикалық функция атқарады.
Модуль өлшемі 100 оператордан аспауы керек.
Модульдің бір кіру және шығу жүйесі болуы керек.
Модульдер арасындағы өзара байланыстар иерархиялық құрылым бойынша бекітіледі.
Әр модуль оның қызметін, модульге және модульден берілетін айнымалылар
Қажетсіз таңбаларды қолданбай, go to операторын тек модульдің
Барлық айнымалылар мен модуль идинтификаторы маңызды болуы керек.
Идинтификатордың туыс топтары бірдей префикстен басталуы керек.
Стандартты модульдер
Turbo Pascal – да 8 стандартты модуль бар:
SYSTEM
DOS
CRT
PRINTER
OVERLAY
GRADPH
TURBO 3
GRAPH 3
Стандарт модульде шоғырланған программалық ресурстер қуатты жүйелік құралдар пакетін
Әрбір стандартты модульге логикалық байланысқан типтер, тұрақтылар, айнымалылар мен
Әр модуль Turbo Pascal жүйелік каталогының бір аттас TPU
System модульіне Pascal тілінің авторлық версиасының барлық процедуралары мен
Dos модульініңоперациалық жүйеге ену құралдары бар және ол MS-DOS
Crt модульі текістік режимде дисплей экраныны енудің толыққанды мүмкіндіктерін
Printer модульінің жалғыз интерфистік элементі бар – PRN логикалық
Overlay модульі деп аталатын оверлейлік өлшемі оперативті жады көлемінен
Graph модульі дисплейдің графикалық жұмыс режймін басқаруға қажетті
Turbo 3 және Craph 3 модульдері Turbo Pascal жүйесінің
Модульдің жалпы құрылымы
Turbo Pascal тілінде (unit) модуль жеке программа болып саналады.
Turbo Pascal тіліндегі программа.
Жалпы түрде модуль басқа модульдер мен программалар пайдалануына арналған
Барлық программаның ресурстарын 2 бөлікке бөлуге болады: өзге модуль
Модульдің интерфейстік бөлімінде өзге программалардан алынатын обьектілер сипаттамалары топтастырылған:
Модуль атауы unit сөзімен басталып, одан кейін тұратын
Аталғандардан бөлек, модуль, оны пайдалану алдында бастапқы мәндері белгілеуге
Unit Module Name;
Interface
Implementation
Begin
End.
Қарапайым мысал келтірейік. Әртүрлі программада кейбір жалпы қолданылатын мәліметтер
Unit Calendar;
Interface
Type
Days = (mon, tue, wed,thy,fri,sat,sun);
WorkingDays = Mon.. Fri;
Montahs = (jan,frb.mar,apr,may,june,july,aug,sept,ocr,nov,dec);
Summer = June .. Aug;
Atumn = Sep .. Nov;
Spring = Mar .. May;
DayNo = 1 .. 30;
YerNo = 1900 .. 2000;
Date = record
Day : DayNo;
Month : Months;
Year : YearNo
End;
Implementation
End.
Берілген модуль қарапайым болғандықтан орындау және инициалдау бөлімдері болмайды.
Модульдегі көмекші программалар
Процедуралар мен функциалар модульішінде басқа да Pascal – обьектілерімен
Мысал ретінде комплекс санымен жұмыс жасау құралдары бар модульдерді
Unit CmplVals;
Interface
Type
Complex = record
Re ,Im : real
End;
{комплекс сандармен операция жүргізетін процедуралар атауы}
procedure Initc (C: Complex;R.I:real);
procedure Addc (C1, C2: Complex; var R.: Complex);
procedure Multc (C1, C2: Complex; var R.: Complex);
procedure Divc (C1, C2: Complex; var R.: Complex);
procedure Writec (C: Complex);
implementation
{процедураның толық сипаттамалары (қысқартылған атаулары)}
procedure Initc;
begin
with C do begin
Re := R; Im:=I
End
End;
Procedure Addc;
Begin
With R do begin
Re:= C1.Re+C2.Re;
Im:= C1. Im+C2Im
End
End;
Procedure Multc;
Begin
With R do begin
Re:= c1. re*c2.re+c1,im+c2.im;
Im:= c1.im*c2.re+c1.re*c2.im
End
End;
Procedure Divc;
Var
Tmp : real;
Begin
With c2 do Tmp :=re*re+im*im
Wirh R do begin
Re := (c1. re*c2.re+c1,im*+c2.im)/tmp;
Im := (c1.re*c2.im+c1.re*c2.im)/tmp
End
End;
Proctdure Writec;
Begin
With C do begin
Write C do begin
Write (Re);
If im=0 then Exit;
If im0 then Write (‘+’);
Wtite(im);
Write (‘i’)
End;
End.
Модульді компиляциалау мен оның қолданылуы.
2.1. Модульді компиляциалау: TPU – файлдар
Модульдер жай бағаналық секілді компиляциаланады, жинақталған ортадан немесе TPC
Модульдің интерфейстік обьектісіне жол ашу үшін программада қажетті TPU–файл
USES U1,U2,U3;
Мұндағы USES – қызметтік сөз, u1,u2,u3 – пайдалынылатын модульдер
Модульдің интерфейстік обьектісіне программа ішінде, олар осы программада сипатталған
Program UsingoComplex;
Uses
CmplVals;
Var
C1,C2,C3 : Complex;
Begin
initC (1,2,C1); InitC(3,4,C2);
MultC(C1,c2,C3); WriteC (C3);
DiveC(C1,C2,C3); WriteC(C3)
End.
Модульді пайдаланумен байланысты келесі маңызды сәттерді айта кету қажет:
1. Пайдалынылатын модульдің интерфейстік бөлігі идинтификаторы пайдаланушы программа идинтификаторымен
Мысалы, егер программада USES A,B; түріндегі спицификациясы болса,
Осылайша, программаның сыртқы блогы идинтификаторы аттас А және В
Бірақ интерфейсте, программада аттас идинтификатор болуына қарамастан жол ашу
Unit A;
Interfacse
var
x :real;
implementation
- - - - - - - -
end.
Ары қарай, бұа программаны пайдаланушы модульде Х айнымалысы болсын:
Program P;
Uses A;
Var
X: integer;
Begin
- - - - - - -
end.
Р программасындаға А модульі үшін Х айнымалыға жол
A . X
Құраушы атауын беру қажет. Мұндағы: А – модуль аты,
A . X := Round (x);
2. Жанама пайдалану жағдайлары да мүмкін. Мысалы, 2 модуль
unit A;
interface
- - - - - -
end
Егер қандай да бір программа В модульін пайдаланса сәйкес
Programa P;
Uses
A,B;
- - - - - - - -
end.
P программасы А модуль обьектілерін тікелей пайдаланбаса да
3. Модульдерді пайдалану схемасы кез – келген күрделілік дәрежесіндегі
Unit A;
Interface
Uses B;
- - - - - - -
end.
Бірақ келтірілген шектеуді азайтатын модульдерді өзара пайдалануға болады. Бұл
4. Егер модульде инициалдау бөлімі болса, онда бұл бөлім
Модуль ерекшеліктері оларды компиляциалау мен пайдалану мәселелерін тереіірік қарастыруды
Программаларға қарағанда, модуль тақырыпшасын семантикалық салмақ түседі, өйткені берілген
Мысалы, қандай да бір программаға орналастырылған спецификация:
Uses My Unit;
үшін, компилятор прграмманы аудару алдында MYUNIR, TPU; атты дискілі
unit MyUnit;
тақырыбы түріндегі модуль коды болуы тиіс.
Егер модуь кодын басқа атаула файлға сақтау қажет болса,
Uses {$U MY} MyUnit;
Конструкциасы берілсе, компилятор MyUnit модуль кодын MY.TPU. дискілі файлынан
. Модульдерді іздеу. TURBO.TPL – файлы
Басқа модульдерді пайдаланушы программа немесе модульдерді аударуда компиляциаланатын программаға
Компилятор TURBO.TPL (Turbo Pascal Libary)модульді жүйелік кітапханалық файылының ішінен
Егер әзделінді модуь TURBO. TPL файлынан табылмаса компилятор сәйкес
Егер ағымдық катаолгта файл табылмаса, іздеу Options /Direcforis /
Егер алдыңғы қадамдарға файл табылмаса, компилятор өз жұмысын тоқтатып
Егер компилятор Compile / Make және Compile / Builel
Көрініп отырғанындай пайдаланушы модульдерді іздей кезіндегі компилятордың алғашқы қадамы
2.3. Синтаксистік диаграммалар
ҚОРЫТЫНДЫ
Қорытындылай келе, курстық жұмысымда, модульдермен жұмыс істеудің қолайлылығын, оның
Модульдік программаның басты принципі демекші, әрбір модульдің өзіндік
Әрбір модуль программаның құрылымын жақтайды. Менің курстық жұмысымның басты
Аса күрделі программалар құруда модульдердің аса қажеттілігін және модульсіз
Модульдердің программа құруға аса қажетті екендігін дәлелдеп өттім деп
Пайдаланылған әдебиеттер
Фаронов В.В. ТР 7.0. Начальный курс.Учебное пособие.Издание 7-е, переработанное.-М.:2001г.-276с.
Ставтовский А.Б. Turbo Pascal 7.0 Учебник-К.:Издательская группа BHV.2000г.-400с.
Сборник задач по порограммированию Д.Туденко, Д.Петроченко- Москва., 2003 г-
Зубов В.С. Програмирование на язике Turbo Pascal. Версии 6.0
Фаисмен А. Проессиональное программирование на язике Turbo Pascal- Москва.,
Turbo Pascal, 7.0 – Киев.: Торговоиздательскоие бюро ВНV,-1992г- 448
Пильшиков В.М. Сборник упражненйи по язику Паскаль – М.,-1989г.
Васюкова Н.Д. ПумяеваВ.В. Практикум по основном
Е.А.Зуев.Система програмирования Turbo Pascal.-М.:Радио и связь,1992г.
А.Г.Кушниренко, Г.В.Лебедев, Р.А.Сворень.Информаатика мен есептеуіш техника негіздері.-Алматы:Рауан,1992ж-312б.
Тойкенов В.Ш. Паскаль тілінде программалау – Алматы.,- 2001ж- 165
О.Камардинов.Информатика. 2-ші бөлім – Шымкент.,- 2000ж- 195 б.
А.Н. Марченко, Л.А. Марченко. Програмирование в среде Turbo Pascal
Elliot В,bruce R. Turbo Pascal. Москва,-2000г- 222 с.
3
.
Блок
Пайдалану спецификасы
Программалардың тақырыбы
Программа
Модульдің атауы (тақырыбы )
;
Модуль интерфейсі
Модуль
Модульді жүзеге асыру
Модульді инициалдау
end
.
Модульдің атауы (тақырыбы )
unit
Модуль идентификаторы
interfase
Пайдалану спецификасы
Интерфайс элементі
Модуль интерфейсі
Интерфейс элементі
Тұрақтылар сипаттамасы
Айнымалылар сипатамасы
Типтер сипатамасы
Процедура атауы
Машина коды
;
Функция атауы
Пайдалану спецификасы
uses
Модуль идентификаторы
;
.
Модульдің жүзеге асыру
imp lamentation
Пайдалану спецификасы
Жүзеге асыру элементі
Жүзеге асыру элементі
Таңбалар сипатамасы
Тұрақтылар сипатамасы
Типтер сипатамасы
Айнымалылыр сипатамасы
Процедура сипатамасы
Функция сипатамасы
Модуль аты
Интерфейс бөлімі
Модуль
;
Орындау бөлімі
Инициалдау бөлімі
.
Модуль аты
unit
Модуль идентификаторы
Интерфейс бөлімі
interface
Uses ұсынысы (сөйлемі)
Тұрақтыларды сипаттау бөлімі
Айнымалылардың типін сипаттау бөлімі
Айнымаларды сипаттау бөлім
Процедуралар мен функциялар тақырыбы бөлімі
Процедуралар мен функциялар тақырыбы бөлімі
Процедура аты
Функция аты
;
inline директивасы
;
Орындау бөлімі
implementation
uses ұсынысы (сөйлемі)
Таңбаларды сипаттау бөлімі
Тұрақтыларды сипаттау бөлімі
Айнымалылар типін сипаттау бөлімі
Айнымалыларды сипаттау бөлімі
Процедуралар мен функцияларды сипаттау бөлімі
Инициалдау бөлімі
end
Операторлар бөлімі
Программа
Модуль
Көрінетін объектілер сипаттамасы
Жасырын объектілер сипаттамасы
Модуль объектілерін инициалдау операторлары
А модуль идентификаторлары
В модулі идентификаторлары
Программа идентификаторы