Паскаль програмдау тілінің көмекші программалары


Паскаль програмдау тілінің көмекші программалары

 

КӨМЕКШІ БАҒДАРЛАМАЛАР ЖӘНЕ ОЛАРДЫҢ ҚҰРЫЛЫМЫ.

 

Программалау барысында көптеген бір типті есептеулерге бірнеше бір-біріне ұқсас программа фрагменттерін қайта-қайта жазуға тура келеді. Осындай да артық жұмыс жасамай, барлық есептеулерді бір ғана фрагмент ішінде орныдау үшін, көмекші программалар-процедуралар мен функциялар қолданылады. Мысалы программа орындалу барысында бірнеше рет ұқсас есептеулер кездессе, онда есептеу блогын бір ақ рет көмекші программаға жазып қойып, программаның кез-келген нүктесінен көмекші программаны шақырып, осы блок арқылы есептуді шығаруға болады.

Сонымен көмекші прграммалар деп программаның орындалу барысында бірнеше рет шақырылып орындалып тұратын операторлар блогын тұратын көмекші бөлігін айтады.

Көмекші прграммалар стандартты және пайдаланушылар көмекші программалары болып екіге бөлінеді. Стандартты функциялар мен процедуралар Turbo Pascal тілінің құрамында тұрақты системалық атпен аталып орындалады. Оларға арнаулы  USES пайдаланушылар библиотекасында орналасқан – SYSTEM, CRT, GRAPH, GRAPH3, OVERLAY, PRINTER, TURBO3, TURBO VISION  модульдерінің барлық функциялары мен процедуралары жатады.

SYSTEM  модулінің процедуралары мен функциялары  Turbo Pascal программасымен бірге автоматты түрде іске қосылады, сондықтан оны пайдаланушылар бөлімінде көрсетпесе де болады.

SYSTEM модулінің өзге модульдердің процедуралары мен функцияларын қолдану үшін программаның басында міндетті түрде олардың аттарын USES пайдаланушылар бөлімінде көрсетіп кету керек, мысалы:

 

PROGRAM KOMEK;

USES Graph, Crt;

// Graph, Crt модульдеріндегі стандартты процедуралар мен функцияларды  программада пайдалану үшін ашу.

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

Abs(X);                      //Х-тің абсолют шамасын есептеу функциясы

Sin(X);                        //Х-тің синусын есептеу функциясы

Random(X);               //0-ден Х-ке дейін кездейсоқ сан шығару

Delay(X);                   //программаның орындалуын Х мс уақытқа тоқтау

Clrscr;                        //экранды тазалау процедурасы

Halt;                           // программаның орындалуын тоқтату прроцедурасы....т.б.

 

Падаланушылар көмекші программалары деп программалаушының өзі құрып, аты да өзіне ыңғайлы бір идендификаиормен белгіленетін процедуралар мен функциялар атайды. Олар программаның VAR бөлімінен кейін PROCEDURE немесе FUNCTION  қызметші сөздерімен басталып құрылады:

 

Көмекші программа құрылымы:

көмекші программа қызметші сөзі көмекші программа тақырыбы;

көмекші программада кездесетін идентификаторларды сипаттау бөлімдері;

көмекші программа денесі.

 

Көмекші программалардың жазылу тәртібі де негізгі  программа сияқты бірнеше бөлімдерден тұруы мүмкін, мысалы:

А) көмекші программа аты, параметрлері жазылатын тақырыбы;

Ә)тұрақтылар бөлімі;

Б)типтер бөлімі;

В)айнымалылар бөлімі;

Г)операторлардан тұратын прграмма денесі.

Көмекші программаның аты идентификатормен белгіленеді. программала бірнеше процедура немесе функция болуы мүмкін. Сол сияқты, көмекші программаның да өзінің көмекші программасы болуы мүмкін. Оларды ішкі программалар деп атайды. Негізгі программада сипатталған идендификаторларды көмекші программаның ішінде де сол сипатталған типпен қолдануға болады. Олармен белгіленген айнымалылар глобальды деп аталады. Ал көмекші программада сипатталған идендификаторды тек өзінің ішкі программасында ғана қолдануға болады. Ол айнымалыларды локальды (жергілікті) деп атайды.

Көмекші программа өздігінен орындалмайды, оның орындалуы үшін негізгі программада көмекші программаның аты мен параметрлерін жазып шакқырады, ол жерді көмекші программаны шақыру нүктесі деп атайды.

Көмекші программалардың орындалу саны шақыру нүктелерінің санына байланысты болады. Егер негізгі программада бірде-бір шақыру нүктсеі болмаса, онда көмекші программа орныдалмайды. Программа орныдалу барысында алдымен негізгі программа орындалады да, керек-кезде көмекші прорамма шақырылады. Көмекші программаны шақыру нәтижесінде негізі программа уақытша тоқтайды да, басқару көмекші программаға барады. Көмекші программа денесі, негізі программадан алған деректерді толық өңдеп, орындалғаннан кейін, басқаруды шақыру нүктесіне өңделген жаңа деректермен бірег қайтарып береді де, негізгі программа орындалуын әрі қарай жалғастырады.

Негізгі программадан деректер қабылдау және көмекші программадан өңделіп жаңарған деректерді негізгі программаға қайтару көмекші программалар параметрлері көмегімен атқарылады. Процедура мен функциялардың нақты және формальды параметрлері болады. Программа орындалу барысында есептелген параметрлер нақты деп, ал көмекші программалардың тақырыбында көрсетілетін параметрлер формальды деп аталады.

Нақты және формальды параметрлердің типі, саны, реттілігі сәйкес болуы тиіс. Олар бірдей белгіленуі мүмкін. Нақты параметрлер тұрақтылардан, айнымалылардан және өрнектерден тұруы мүмкін. Кей жағдайларда көмекші программада формальды параметрлерін көрсетпесе болады.

 

Процедуралар.

Процедура деп белгілі бір идендификатормен аталып, сол атпен программаның кез-келген жерінен шақырып, белгілі бір есептеулерді орындауға болатын программаның тәуелсіз бөлігін айтады. Процедураның құрылымы программа құрылымына ұқсас келеді.

 

Процедураның құрылымы:

(тақырыбы:)

PROCEDUREаты (формальды параметрлер типтері);

Сипаттамалар бөлімдері; (бұл бөлімдер болмауы да мүмкін)

BEGIN Операторлар; (процедура денесі)

END;

 

Программада процедураны пайдалану үшін процедураның атын нақты параметрлермен бірге жазып шақырады, ол жерді процедураны шақыру нүктесі деп атайды. Прграмма процедураның шақыруын оқыған заматта процедураның орындалуы басталады. Мысалы прпограмма тақырыбы төмендегідец болса:

 

PROCEDURE SUMMA (N,M,X:INTEGER);

Онда процедуранв програмада мынадай жолмен шақыруға болады.

 

Summa (19,A,50);

Жақшадағы 19 Ф 50-нақты параметрлер болып табылады. Нәтижеснде процедурадағы формальды параметрлер мынадай мәндерге ие болады:

 

N=19, M=A, X=50.

Процедура шақыру процесінде формальды параметрлердің мәндері нақты параметрлердің мәнін қабылдайды да, процедура денесіндегі есептеулерде сол жаңа мәндер пайдаланады.

Процедураның параметрлері мәндік және айнымалы болып екіге өлінеді. Мәндік (аргументтік) параметрлер тек қана нақты параметрлердің мәнін өзіне қабылдайды да, қайтып оларға өзінің мәнін бере алмайды. Процедураның бір орындалу барысында негізгі программаның бірден бірнеше идендификаторлары жаңа мән қабылдай алады. Айнымалы параметрлердің алдына VARқызметші сөзі қойылып жазлады.

Мысалы:

 

PROCEDURE  Misal (A,B:Integer; VAR X,Y: Longint);

Var S: Integer;

Begin S:=A+5*B;

X:Sqr(S); Y:Sqr(X); END;

 

Бұл процедураны программалық текстте төмендегідей жазып шақыруға болады:

 

Misal(10,5,K,l);

Проограмма орындалу барысында Misal (10,5,K,l) шақыру идендификаторын оқып, басқаруды Misal процедурасына жібереді де, төмендегідей әрекеттер орындалады.

1.процедураның А, В, Х, Ү формальды параметрлері (10,5,K,l)нақьы параметрледің мәнін қабылдайды:

А=10, В=5, Х=K, Ү=I,;

2.процедура денесіндегі операторлар орындалады;

S=10+5*5=35, X=35*35=1225,

Y=1225*1225=1500625;

3.VAR қызметші сөзінен кейінгі жазылған формальды Х және Ү параметрлері процедураның орындалу барысында меншіктеген өздерінің жаңа мәндерінің нақты К-мен І параметрлеріне бергеннен кейін, басқару Misal (10,5,K,l) шақыру идендификаторынан кейін тұрған операторға өтеді;

К=X=1225,    I=Y=1500625

4. әрі қарай программаның есептеулерінде К және І айнымалылары жаңа меншіктеген мәндерімен қатысады.

 

Процедура құру мысалдары.

Қатеттері бойынша үшбұрыштың ауданы мен

гипотенузасын табу процедурасын құру.

 

Дұрыс құралған процедура мысалдары:

 

А)

PROGRAM Proced 1;

VAR A, B, C, S: Real;

PROCEDURE Ushbur (M,N:Real; Var T, Q: Real);

Begin T:=M*N/2

Q:=Sqrt (Sqr (M)+Sqr(N));END;

BEGIN Readln (A,B);

(негізгі программадан Ushburпроцедурасын шақыру:)

Ushbur(A, B, S, C);

Writeln (‘gip=’,C:4:2); Writeln (‘aud=’, S:4:2);

Readln End.

 

Ә)

PROGRAM Proced 2;

VAR A, B, C, S: Real;

PROCEDURE Ushbur (M,N:Real; Var T:Real, Q: Real);

Begin T:=M*N/2

Q:=Sqrt (Sqr (M)+Sqr(N));END;

BEGIN Readln (A,B);

Ushbur(A, 



Скачать