- •1.1. Модулдер туралы жалпы түсінік
- •1.2. Пернетақтаны басқару функциялары
- •1.3. Экранға мәтін шығару процедуралары мен функциялары
- •1.4. Дыбыс генераторын программалау
- •2.1. Турбо Паскалдың стандарт модулдеріне шолу
- •2.2 Стандартты модульдерді сұрыптау
- •2.3 Graph модулінің жалпы сыпаттамсы
- •3.1. Модельдер кезінде дедуктивті және индуктивті тәсілдер
- •3.2 Құрылымды және модульді программалау
Қазақстан Республикасы Білім және ғылым министірлігі Е.А. Бөкетов атындағы Қарағанды Мемлекеттік университеті
Математика және ақпараттық технологиялар факультеті
Қолданбалы математика және информатика кафедрасы
ОҚУ ТӘЖІРИБЕСІ ЕСЕБІ
Өту мерзімі 10.05.2017-27.05.2017
Өту орны: Қолданбалы математика және информатика кафедрасы.
Орындаған: ИС-111 тобының
студенті Сырым С.
Қабылдаған: аға-оқытушы
Көпбалина С.С
Қарағанды 2017
Мазмұны
Кіріспе.....................................................................................................................3
І. ПАСКАЛЬ ТІЛІНДЕГІ МОДУЛЬДЕР
1.1. Модулдер туралы жалпы түсінік...................................................................5
1.2. Пернетақтаны басқару функциялары............................................................9
1.3. Экранға мәтін шығару процедуралары мен функциялары........................11
1.4. Дыбыс генераторын программалау............................................................16 ІІ. ПАСКАЛЬ ТІЛІНДЕ СТАНДАРТТЫ МОДУЛЬДЕРДІ ҚОЛДАНУ
2.1. Турбо Паскальдың стандарт модулдеріне шолу.........................................18
2.2 Стандартты модульдерді сұрыптау...............................................................19
2.3.Graph модулінің жалпы сыпаттамсы............................................................22
ІІІ . МОДУЛЬДЕР, МОДЕЛЬДЕР ҚҰРУ
3.1. Модельдер кезінде дедуктивті және индуктивті тәсілдер..........................25
3.2. Құрылымды және модульді программалау.................................................26
ҚОРЫТЫНДЫ.......................................................................................................30
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР .................................................................32
КІРІСПЕ
Бүгінде, дүние жүзінде болашақ программистердің көпшілігі тіл үйренуді Паскаль тілінен бастайды. Себебі, ол логикасы қарапайым, құрылымдық программалау принципіне негізделген, қиын есептердің программасын бөлшектеп құруға мүмкіндік жасайтын, меңгеруге жеңіл, программа құрушыға да, оны пайдаланушыға ыңғайлы тіл.
Паскаль тілін Швейцария ғалымы Никлаус Вирт 1971 жылы АЛГОЛ алгоритмдік тілінің негізінде жасап шығарды. Тілдің атауы алғашқы есептеу машинасын жасап шығарған француз математигі, әрі физигі Блез Паскалдің құрметіне қойылған. Оның соңғы нұсқалары икемді және жан-жақты қызмет атқара алатын жоғары деңгейдегі тілге айналды. Borland фирмасы Паскаль тілінің стандартын кеңейтіп Турбо Паскаль тілінің 6 версиясын өмірге әкелді. Оның соңғы Турбо Паскаль 7.0 версиясы – құрылымды программаларды жасақтауға жарамды әмбебап интегралдық ортасы бар, объект-бағдарлы және модулді программалау принциптерін пайдалана алатын, көптеген қуатты стандартты модулдері бар күрделі жүйе. Программалау процесінде MS DOS операциялық жүйесінің командаларын, компьютердің динамикалық жадын және рекурсивтік ішкі программаларды толық пайдалануға болатындығы, тілдің мүмкіндігінің зор екендігін дәлелдейді.
Турбо Паскаль 7.0 ортасы негізінде 1996 жылдары Borland фирмасы Delphi программалау жүйесін жасап шығарды. Жүйе пайдаланатын Object Pascal программалау тілінде Турбо Паскалдің негізгі қағидалары сақталған. Жаңа Class типін енгізу нәтижесінде ол өзгеше принциптер мен тәсілдермен толықтырылған. Delphi жүйесін пайдаланып, әртүрлі мақсатта қолдануға жарамды, бүгінгі талапқа сай, жоғары сапалы Windows жалғамаларын жасақтауға әбден болады. Турбо Паскаль ортасында программалауды жете меңгерген адам Delphi жүйесін де тез меңгереді.
Менің жұмысымның мақсаты стандартты модульдерді қарастырып жазу.
Бірінші бөлімде программалық модульдер туралы және оларды пайдалану принциптері сөз етіліп жазылды. Crt және Graph модульдерінің мүмкіндіктері арнайы сөз етіліп, көптеген программалау үлгілері берілген. Турбо Паскаль 7.0 интегралдық ортасында жұмыс жасауға қажетті анықтамалық ақпарат берілген. Паскаль графикасын пайдаланып әртүрлі есептерді шығаруға баса назар аударылған.
Паскаль тілінде кез-келген процедура (ішкі программа), шартты түрде, оператор деп есептелінеді. Күні бұрын сипатталған арнайы процедуралар стандартты модулдар (System, Dos, Crt, Printer, Graph, Overlay, Turbo3, Graph3) мен арнайы кітапханаларда жинақталады.
Модуль дегеніміз өз алдына компиляцияланатын, сипаттаудың әртүрлі компоненттерін (типтер, тұрақтылар, айнымалылар, процедуралар және функциялар) енгізу арқылы құрылатын жеке программалық бірлік. Модулдер қолданбалы программалар кітапханасын жасақтаудың және модулдік программалаудың қуатты тетігі болып табылады.
І . ПАСКАЛЬ ТІЛІНДЕГІ МОДУЛЬДЕР
1.1. Модулдер туралы жалпы түсінік
Стандартты Паскалда программаны компиляцияланған бөліктерден құрастыру мүмкіндігі жоқ болатын. Сол себепті күрделі программаларды жасақтау мүмкін болмады. Турбо Паскалда бұл проблема модулдік принципті енгізу арқылы оң шешімін тапты.
Модуль дегеніміз өз алдына компиляцияланатын, сипаттаудың әртүрлі компоненттерін (типтер, тұрақтылар, айнымалылар, процедуралар және функциялар) енгізу арқылы құрылатын жеке программалық бірлік. Модулдер қолданбалы программалар кітапханасын жасақтаудың және модулдік программалаудың қуатты тетігі болып табылады. Модулдің негізгі ерекшелігі сол, Турбо Паскаль компиляторы оның программалық кодын компьютер жадының 64 Кбайттан тұратын жеке бөлігінде сақтайды. Модуль тақырыптан және үш құрамды бөліктен құралуы тиіс:
UNIT
<аты> INTERFACE
<анықтау
бөлімі>
IMPLEMENTATION
<орындау
бөлімі >
BEGIN
<дайындау
бөлімі>
END.
Аударма
Unit - бірлік.
Interface -
интерфейс.
Implementation
- орындау.
Uses -
пайдалану.
Модуль тақырыбы UNIT қызметші сөзінен және модуль атынан тұрады. Модуль аты оның коды сақталатын диск файлының атымен бірдей болуы тиіс. Мысалы, модуль тақырыбы
UNIT Modul1;
болса, онда оның мәтіні Modul1.pas файлында сақталуы керек деген сөз.
Модуль аты оны негізгі программамен немесе басқа модулдермен байланыстыру үшін өте қажет. Бұл байланыс
USES <модул аттарының тізімі>
анықтауы арқылы жүзеге асырылады. Мысалы:
USES CRT, Graph, Modul1;
USES анықтауын негізгі программаның анықтау бөлімінің басында, ал модулдерде не INTERFACE, не IMPLEMENTATION қызметші сөздерінен кейін жазуға болады (2 рет жазуға да рұқсат етіледі).
Анықтау (интерфейс) бөлімі INTERFACE қызметші сөзімен ашылады. Онда осы модулдің негізгі программа мен басқа да модулдерден көрінетін барлық жаһандық объектілері (типтері, тұрақтылары, айнымалылары мен ішкі программалары) анықталады. Анықтау бөлімінде процедуралар мен функциялардың тақырыптары ғана жазылады.
Орындау бөлімі IMPLEMENTATION қызметші сөзімен басталады. Онда INTERFACE бөлімінде анықталған процедуралар мен функциялар сипатталады. Қажет болған жағдайда дайындау бөлімінде пайдаланылатын модулдің жергілікті объектілерін (типтерін, тұрақтыларын, айнымалылары мен блоктарын) осы бөлімде анықтауға болады. Егер анықтау бөлімінде ішкі программалардың тақырыптары толық сипатталған болса, онда орындау бөлімінде олардың аттарын ғана жазуға рұқсат етіледі.
Дайындау бөлімі BEGIN қызметші сөзімен ашылады. Онда негізгі программаның жұмысына дайындық үшін қажет операторлар енгізіледі. Олар басқару негізгі программаға берілгенге дейін орындалады. Дайындау бөлімі керек болмаған жағдайда BEGIN сөзін жазбау ұсынылады.
Ескерту: Модулдің анықтау (орындау) бөлімі бос болуы да мүмкін.
Модулдарды пайдалану үшін оларды компиляциялап алу керек. Компиляция нәтижесі TRU-файлдарда сақталады. Мысалы, Modul1.pas модулін компиляция-лағанда жаңа Modul1.tru файлы пайда болады. Негізгі программаны не модулді компилациялау үшін Турбо Паскаль ортасының MAKE режимін пайдалану өте ыңғайлы екенін ескерген жөн.
Үш өлшемді векторлық кеңістікте екі векторды қосу және алу, векторды санға көбейту, вектор модулін табу және екі векторды скаляр көбейту амалдарын орындайтын процедуралары мен функциялары бар Vector модулін құрайық:
UNIT Vector;
INTERFACE
type
vect = record
x, y, z : real;
end;
Procedure SumV(a,b: vect; var c: vect);
Procedure SubV(a,b: vect; var c: vect);
Procedure MulV(k: real; a: vect; var c: vect);
Function ModV(a: vect): real;
Function ScMulV(a,b: vect): real;
INPLEMENTATION
Procedure SumV;
begin
c.x:=a.x+b.x; c.y:=a.y+b.y; c.z:=a.z+b.z;
end;
Procedure SubV;
begin
c.x:=a.x-b.x; c.y:=a.y-b.y; c.z:=a.z-b.z;
end;
Procedure MulV;
begin
c.x:=k*a.x; c.y:=k*a.y; c.z:=k*a.z;
end;
Function ModV;
begin
ModV:=sqrt(sqr(a.x)+sqr(a.y)+sqr(a.z));
end;
Function ScMulV;
begin
ScMulV:=a.x*b.x+a.y*b.y+a.z*b.z;
end;
END.
Мұнда SumV процедурасы екі векторды қосу, SubV - азайту, MulV –векторды санға көбейту амалдарын орындаса, ModV функциясы вектордың модулін, ал ScMulV - екі вектордың скаляр көбейтіндісін табады. Модулдің мәтінін Vector.pas файлында сақтасақ, оны компиляциялау нәтижесінде Vector.tru файлын аламыз. Осы модулді пайдалану арқылы оңай шешілетін белгілі есептің программасын құрайық.
векторлары
берілген.
және
векторларының арасындағы бұрышты
есептеңдер.
Program Prost_51;
uses Vector;
var a, b, c, d, m, n: vect;
ax, ay, az, bx, by, bz, ur, ug: real;
begin
Write('a векторының координаталарын енгіз: '); Readln(ax,ay,az);
Write('b векторының координаталарын енгіз: '); Readln(bx,by,bz);
MulV(3,a,c); MulV(4,b,d); SumV(c,d,m);
MulV(5,a,c); MulV(7,b,d); SubV(c,d,n);
ur:=argtan(sqrt(sqr(ModY(m)*ModY(n))/sqr(ScMulV(m,n)) - 1);
ug:=ur*180/Pi;
Write('Бұрыш ',ug:6:2,' градусқа тең';
Readln;
end.
