Көмекші бағдарламалар



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

КӨМЕКШІ БАҒДАРЛАМАЛАР

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

Программалау барысында көптеген бір типті есептеулерге бірнеше бір-
біріне ұқсас программа фрагменттерін қайта-қайта жазуға тура келеді.
Осындай да артық жұмыс жасамай, барлық есептеулерді бір ғана фрагмент
ішінде орныдау үшін, көмекші программалар-процедуралар мен функциялар
қолданылады. Мысалы программа орындалу барысында бірнеше рет ұқсас
есептеулер кездессе, онда есептеу блогын бір ақ рет көмекші программаға
жазып қойып, программаның кез-келген нүктесінен көмекші программаны
шақырып, осы блок арқылы есептуді шығаруға болады.
Сонымен көмекші прграммалар деп программаның орындалу барысында
бірнеше рет шақырылып орындалып тұратын операторлар блогын тұратын көмекші
бөлігін айтады.
Көмекші прграммалар стандартты және пайдаланушылар көмекші
программалары болып екіге бөлінеді. Стандартты функциялар мен процедуралар
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 қызметші сөздерімен басталып құрылады:

Көмекші программа құрылымы:
1. көмекші программа қызметші сөзі көмекші программа тақырыбы;
2. көмекші программада кездесетін идентификаторларды сипаттау бөлімдері;
3. көмекші программа денесі.

Көмекші программалардың жазылу тәртібі де негізгі программа сияқты бірнеше
бөлімдерден тұруы мүмкін, мысалы:
А) көмекші программа аты, параметрлері жазылатын тақырыбы;
Ә)тұрақтылар бөлімі;
Б)типтер бөлімі;
В)айнымалылар бөлімі;
Г)операторлардан тұратын прграмма денесі.
Көмекші программаның аты идентификатормен белгіленеді. программала
бірнеше процедура немесе функция болуы мүмкін. Сол сияқты, көмекші
программаның да өзінің көмекші программасы болуы мүмкін. Оларды ішкі
программалар деп атайды. Негізгі программада сипатталған идендификаторларды
көмекші программаның ішінде де сол сипатталған типпен қолдануға болады.
Олармен белгіленген айнымалылар глобальды деп аталады. Ал көмекші
программада сипатталған идендификаторды тек өзінің ішкі программасында ғана
қолдануға болады. Ол айнымалыларды локальды (жергілікті) деп атайды.
Көмекші программа өздігінен орындалмайды, оның орындалуы үшін негізгі
программада көмекші программаның аты мен параметрлерін жазып шакқырады, ол
жерді көмекші программаны шақыру нүктесі деп атайды.
Көмекші программалардың орындалу саны шақыру нүктелерінің санына
байланысты болады. Егер негізгі программада бірде-бір шақыру нүктсеі
болмаса, онда көмекші программа орныдалмайды. Программа орныдалу барысында
алдымен негізгі программа орындалады да, керек-кезде көмекші прорамма
шақырылады. Көмекші программаны шақыру нәтижесінде негізі программа уақытша
тоқтайды да, басқару көмекші программаға барады. Көмекші программа денесі,
негізі программадан алған деректерді толық өңдеп, орындалғаннан кейін,
басқаруды шақыру нүктесіне өңделген жаңа деректермен бірег қайтарып береді
де, негізгі программа орындалуын әрі қарай жалғастырады.
Негізгі программадан деректер қабылдау және көмекші программадан
өңделіп жаңарған деректерді негізгі программаға қайтару көмекші
программалар параметрлері көмегімен атқарылады. Процедура мен функциялардың
нақты және формальды параметрлері болады. Программа орындалу барысында
есептелген параметрлер нақты деп, ал көмекші программалардың тақырыбында
көрсетілетін параметрлер формальды деп аталады.
Нақты және формальды параметрлердің типі, саны, реттілігі сәйкес
болуы тиіс. Олар бірдей белгіленуі мүмкін. Нақты параметрлер тұрақтылардан,
айнымалылардан және өрнектерден тұруы мүмкін. Кей жағдайларда көмекші
программада формальды параметрлерін көрсетпесе болады.

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

Процедураның құрылымы:
(тақырыбы:)
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*N2
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*N2
Q:=Sqrt (Sqr (M)+Sqr(N));END;
BEGIN Readln (A,B);
Ushbur (A, B, S, C);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.

Б)
PROGRAM Proced 3;
VAR A, B, C, S: Real;
PROCEDURE Ushbur;
Begin
S:=A*B2; C:=Sqrt(SQRT(A)+SQRT(B)); END;
BEGIN Readln (A,B);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.

Дұрыс құралмаған процедура мысалдары:
А)
PROGRAM Proced 4;
VAR A, B, C, S: Real;
PROCEDURE Ushbur (M,N:Real; Var T, Q: Real);
Begin T:=M*N2
Q:=Sqrt (Sqr (M)+Sqr(N));END;
(бұл процедура S пен С –ға жаңа мән қайтармайды)
BEGIN Readln (A,B);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.

Ә)
PROGRAM Proced 5;
VAR A, B, C, S: Real;
PROCEDURE Ushbur(A,B:Real; Var S:Real, C: Real);
Begin S:=A*B2
C:=Sqrt(SQRT(A)+SQRT(B)); END;
(бұл процедура S-кежаңа мәе қайтарады, ал С –ға қайтармайды)
BEGIN Readln (A,B);
Ushbur (A, B, S, C);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.

Б)
PROGRAM Proced 6;
VAR A, B, C, S: Real;
PROCEDURE Ushbur (S,C:Real; Var A, B: Real);
Begin
S:=A*B2
C:=Sqrt (Sqr (A)+Sqr(B));END;
(бұл бұрышта параметрлер реттеліп жазылмаған)
BEGIN Readln (A,B);
Ushbur (A, B, S, C);
Writeln (‘gip=’,C:4:2);
Writeln (‘aud=’, S:4:2);
Readln End.

Екі санның үлкенін табатын процедура.

PROGRAM Maxsan;
Var A,B, Max: Real;
PROCEDURE Maxsim (K, I:Real; VAR S:Real); (Махім процедурасы)
Begin If KI Then S:=K
Else S:=I; End; (екі санды салыстырып үлкенді салыстыру)
BEGIN Write(‘2 сан енгіз:’); Readln(A,B); (негізгі программа)
Maxim(A,B,Max); Writeln(‘Max=’,Max:4:1); Readln End.

Екі санның үлкенін табатын процедураны қолданып,
берілген үш және төрт санның үлкенін табу программасы.
PROGRAM Maxsan2;
Var A,B,С,D, Max: Real;
PROCEDURE Maxsim (K, I:Real; VAR S:Real); (Махім процедурасы)
Begin If KI Then S:=K Else S:=I; End;
(екі санды салыстырып үлкенді салыстыру)
BEGIN Write(‘4 сан енгіз:’); Readln(A,B,С,D,); (негізгі программа)
Maxim(A,B,Max);
(процедураның орындалуы нәтижесінде Мах А және В Сандарының үлкенін
меншіктейді)
Maxim(Мах,С,Max);
(процедураның орындалуы нәтижесінде Мах А,В,С Сандарының үлкенін
меншіктейді)
Writeln(‘A,B,C сандарының:’,Max:4:1);
Maxim(Мах,D,Max);
(процедураның орындалуы нәтижесінде Мах А,В,С,D Сандарының үлкенін
меншіктейді)
Writeln(‘A,B,C,D сандарының:’,Max:4:1);
Readln End.

N-нен М-ге дейінгі бүтін сандарының қосындысын
табу проедурасы.

PROGRAM Proc7;
Var N,M,K: Integer; S:Longint;
PROCEDURE Sum (N, M:Integer; VAR X:Longint); (сандардың енгізу
проуедурасы)
Begin X:=0; For K:= N To M Do X:=X+K; End;
BEGIN Readln (N,M);
Sum (N,M,S);
Writeln(‘SUM=’,S);
Readln END.

Бүтін Х санның бүтін Ү дәрежесін табу
процедурасын құру.
PROGRAM Proc7;
Var X,Y: Integer; S:Longint;
PROCEDURE Inp (VAR A,B:Integer); (сандардың енгізу проуедурасы)
Begin Write(санды енгіз:); Readln (A);
Write (‘дәрежесін енгіз:’); Readln (B) End;
PROCEDURE Dar (A,B: Integer; VAR S: Longint);
VAR K: Byte;
Begin S:=1;
For K:=1 To B Do S:=S*A; End;
PROCEDURE Out (S:Longint); (нәтиже шығару процедурасы)
Begin Writeln (X,’ санның ‘, Y’, дәрежесі=’,S) End;
BEGIN Inp (X,Y); Dar (X,Y,S); Out(S);
Readln End.

N санның цифрларының санын шығару процедурасы

PROGRAM Proc8;
Var N:Longint;
PROCEDURE San; (Sаn проуедурасы)
Var K:Integer;
Begin K:=0
Repeat
K:=K+1; N:= N Div 10; Until N=0;
Writeln(‘N санының цифрларының саны=’,K) End;
Begin Readl (N); San;
Readln END. (негізгі программа)

N санының цифрларының жұп-тақтығын
анытайтын процедурасын құру.
PROGRAM Proc9;
Var N: Integer; K,I:Longint;
PROCEDURE San (I:Longint); (san проуедурасы)
Begin K:=0;
Repeat K:=K+1;
I:=I Div 10; Until I=0; End;
PROCEDURE Dar (I: Integer; VAR S: Longint); (dar процедурасы)
VAR J: Ineger; (онның І дәрежесін есептеу)
Begin P:=1;
For J:=1 To I Do P:=P*10; End;
PROCEDURE Jup (N:Longint); (Jup процедурасы)
Var X,D:Longint;
Begin (санның цифрларының жұп-тақтығын анықтайтын цикл)
For I:=1 To K do Begin
Dar (K-I,D); (D идендифткаторы Dar поцедурасының орындалу нәтижесінде
10-ның К-І дәрежесін меншіктейді)
X:=N Div D; (Х идендификаторы І=1 болғанда санның бірінші цифрін, І=2
болғанда 2-ші цифрын,... І=K болғанда Л цифрын меншіктейді )
Writeln (I’, цифр =’,x);
N;=N Mod D; ( келесі циклге қалатын санның шамасы)
If X Mod 2=0 ( цифрлардың жұп-тақтығын салыстыру)
Then Write(‘бұл цифр жұп’)
Else Write (‘бұл цифр тақ’);
BEGIN Readl (N); San (N); Jup (N); (негізгі программа)
Readln End.

Массив элементтерін ендіру, шығару процедурасын құру мысалдары.
А) массив элементтерінің қосындысын мен көбейтіндісін табу:

PROGRAM Massiv 1;
CONST N=5;
Type Mas =Array[1...N] Of Integer;
VAR A,B:Mas; S,P,K: Integer;
PROCEDURE Inp (N:Integer; Var X: Mas);
Begin For K:=1 To N Do Read (X[K]); End;
PROCEDURE Out ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Процедуралар мен функциялар
Кафе жұмысын автоматтандыру (Delphi ортасында)
Бағдарламалау(программалау) технологиясы
Операциялық жүйелер туралы
ОПЕРАЦИЯЛЫҚ ЖҮЙЕНІҢ ҚҰРАМЫ
Бағдарламалық қамтамасыз етуді жобалаудың әдістері.
Паскаль тілінің функцияларымен процедураларын қолдану
Турбо Паскаль жүйесінде қосалқы программаларды ұйымдастыру технологиясы туралы
Delphi ортасының интерфейсі. Оқиға және оқиғаны өңдеу процедурасы
Кезең шығындарының есебі Мемлекеттік қаржы және мемлекеттік шығындар теориясы
Пәндер