Процедуралар және функцияларды есеп шығаруда қолдану

Процедуралар және функцияларды есеп шығаруда қолдану Бағдарламада қолданылатын барлық процедуралар мен функциялар, баяндау бөлімін айнымалылар тарауынан (VAR) кейін, нұсқаулар бөлімінің бірінші BEGIN түйінді сқзінің арасында анықталуы қажет. Өйткені, процедуралар (функциялар) баяндау бөлімінің ақырғы (бесінші) тарауы. Паскаль тілінде, баяндау бөлімінің бағдарлама құрылымындағы орналасу тәртібі қатаң, келісідей келісілген: ерекше белгілер таралу (LABEL); константалар таралу (CONST) типтер таралу (TYPE); айнымадылар тарауы (VAR); процедуралар (функц... Процедура тақырыбы – PROCEDURE түйінді сөзінен басталып, процедураның атауынан кейін, жәй жақшаға алынып формальді (жорамал) параметрлер тізімінен құрылады. Процедура тақырыбының жалпы түрі: PROCEDURE Name_Proc(Pc1 : Tc1; Pc2:Tc2;…;PcN:TcN;                              VAR Pa1 : Ta1;…;Pak : TaK); Мұнда, Name_Proc – процедурасының атауы (идентификаторлары);       Pc1,…,PcN,Pal, - ,Pak – жорамал параметр;       Tc1,…,TcN,Tal .., Tak - ;жорамал параметрлердің типтері;       Процедурның құрылымында, формальді (жорамал) параметрлер қолданылмайтын болса, процедура тақырыбы келесі түрде белгіленеді:       PROCEDURE ProcJd; Процедураның денесі – бағдарламаның денесі сияқты, өзіне тән баяндау және нұсқаулар бөлімдерінен құрылады. Бар айырмашылығы, нұсқаулар бөлімініңсоңғы END –түйінді сөзінен кейін, бағдарлама денесіндегідей нүктемен (.) емес нүктелі үтірмен (;) аяқталуы шарт. Процедураның бағдарламада шақырылуы Бағдарлама денесінің баяндау бөлімінде, процедура анықталған болса, оны бағдарламаның нұсқаулар бөлімінде, процедураның атауы арқылы пайдалануға болады: Name_Proc(Nc1,Nc2,…,NcN,Na1,..,NaK); Немесе, Proc_Td; {бұл процедурада параметрлер жоқ } Мұнда, Nd, Nc2,…, NcN, Na1,…, NaK – процедураны шақырылуы кезіндегі нақтылы (фактические) параметрлері. Процедураны қолданудың нәтижесінде, паскаль тілінің стандартты IF (шартты), CASE (таңдау), FOR (цикл) т.б. нұсқауларында, жаңа типті нұсқау (процедураныңшақырылуымен) қосылынды. Процедураның атауы көрсетілген уақытта, процедура денесіндегі нұсқаулар орындалады. Процедура денесі орындалған соң бағдарлама денесіндегі, процедура нұсқауынан кейін тұрған нұсқау орындалады. Функциялар Егер бірнеше рет кездесетін нұсқаулар тобының нәтижесі жеке мәнімен анықталатын болса, онда осындай нұсқаулар тобын қайталап жазбас үшін оны функция түрінде баяндауға болады. Функцияларды баяндау Функция, процедура сияқты, тақырыптан және блоктан (денесінен) тұрады. Функцияның жалпы түрі төмендегідей: FUNCTION NameFun(PI : T1;…PN : TN) : ТипФунк; Мұнда, NameFun – функцияның атауы (идентификаторы); P1, P2,…PN – жорамал параметрлер; T1, T2,…TN – жорамал параметрлердің типтері; ТипФунк – функция нәтижесінің типі. Функцияеың құрылымында, формальді (жорамал) параметрлер қолданылмайтын болса, функция тақырыбы, келесі түрде белгіленеді: FUNCTION NameFun2 : ТипФунк; Функция атауын (идентификаторын) – функция көрсеткіші деп атайды. Функцияның бағдарламада шақырылуы Бағдарлама денесінде, функцияны қолдану үшін, функция көрсеткіші жазылады. Функция көрсеткішінің жақшаға алынған нақтылы параметрлерімен жазылуы, оның шақырылғаны болып табылады. Процедура туралы, жоғарыда айтылған мағлұматтар, функцияларға да орынды болады. Функцияның процедураға ұқсас болғанымен, төмендегідей ерекшеліктері бар: а) Функцияның тақырыбында, осы функция арқылы есептелетін нәтиженің типі айқын көрсетілуге тиіс; ә) Функция денесінде, меншіктеу нұсқауының сол жағында функцияның атауы болуы қажет. Бұл меншіктеу нұсқауы осы функцияның есептелетін мәнін анықтайды; б) Функцияны қолдану үшін, бағдарлама денесінде, меншіктеу нұсқауының оң жағында операндысындағы өрнектер ішінде, функцияның атауы аталып, жақша ішінде оның нақтылы параметрлері көрсетіледі. Функция денесі орындалған соң, функцияның атауы есептелген нәтижені қабылдайды. Cnm = n!/(m!*(n-m)!); мұнда, n! – факториал, 1-ден m-ге дейінгі сандардың көбейтіндісіне тең. PROGRAM FunFactor; VAR n, m, l, rez  : INTEGER;                   {Factor –функция тақырыбы}                    FUNCTION Factor(k:INTEGER) : INTEGER;                    VAR p, i : INTEGER;                    BEGIN                              p := 1;                              FOR  i := 1TO k DO                                        p := p*i;                              Factor := p; {функция мәні} END;                                        {Factor функциясының соңы} BEGIN                                   {Бағдарламаның нұсқаулар бөлімі басталады}             WRITELN (‘n және m –бүтін сандарын енгіз:’)             READ(n, m);             Rez := factor(n)/(factor(m)*factor(n-m));                                                  {Factor() функциясы үш рет шақырылады.} WRITELN (‘Берілген өрнектің мәні =’,rez); END.                  {FunFactor – бағдарламасының соңы.}
Раздел Информатика
Класс -
Тип Конспекты
Автор
Дата
Формат docx
Изображения Нет
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

Процедуралар және функцияларды есеп шығаруда қолдану

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

Процедураларды баяндау

Бағдарламада қолданылатын барлық процедуралар мен функциялар, баяндау бөлімін айнымалылар тарауынан (VAR) кейін, нұсқаулар бөлімінің бірінші BEGIN түйінді сқзінің арасында анықталуы қажет. Өйткені, процедуралар (функциялар) баяндау бөлімінің ақырғы (бесінші) тарауы. Паскаль тілінде, баяндау бөлімінің бағдарлама құрылымындағы орналасу тәртібі қатаң, келісідей келісілген: ерекше белгілер таралу (LABEL); константалар таралу (CONST) типтер таралу (TYPE); айнымадылар тарауы (VAR); процедуралар (функциялар) тарауы.

Процедуралар екі бөліктен тұрады: процедура таұырыбымен процедура денесінен. Процедура денесі - блок түрінде баяндалады. Процедура денесінің құрылымы, бағдарламаның (PROGRAM) құрылымына ұқсайды: баяндау бөлімі мен орындалатын нұсқаулар бөлімінен тұрады.

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

PROCEDURE Name_Proc(Pc1 : Tc1; Pc2:Tc2;…;PcN:TcN;

VAR Pa1 : Ta1;…;Pak : TaK);

Мұнда, Name_Proc - процедурасының атауы (идентификаторлары);

Pc1,…,PcN,Pal, - ,Pak - жорамал параметр;

Tc1,…,TcN,Tal .., Tak - ;жорамал параметрлердің типтері;

Процедурның құрылымында, формальді (жорамал) параметрлер қолданылмайтын болса, процедура тақырыбы келесі түрде белгіленеді:

PROCEDURE ProcJd;

Процедураның денесі - бағдарламаның денесі сияқты, өзіне тән баяндау және нұсқаулар бөлімдерінен құрылады. Бар айырмашылығы, нұсқаулар бөлімініңсоңғы END -түйінді сөзінен кейін, бағдарлама денесіндегідей нүктемен (.) емес нүктелі үтірмен (;) аяқталуы шарт.

Процедураның бағдарламада шақырылуы

Бағдарлама денесінің баяндау бөлімінде, процедура анықталған болса, оны бағдарламаның нұсқаулар бөлімінде, процедураның атауы арқылы пайдалануға болады:

Name_Proc(Nc1,Nc2,…,NcN,Na1,..,NaK);

Немесе,

Proc_Td; {бұл процедурада параметрлер жоқ }

Мұнда, Nd, Nc2,…, NcN, Na1,…, NaK - процедураны шақырылуы кезіндегі нақтылы (фактические) параметрлері.

Процедураны қолданудың нәтижесінде, паскаль тілінің стандартты IF (шартты), CASE (таңдау), FOR (цикл) т.б. нұсқауларында, жаңа типті нұсқау (процедураныңшақырылуымен) қосылынды.

Процедураның атауы көрсетілген уақытта, процедура денесіндегі нұсқаулар орындалады. Процедура денесі орындалған соң бағдарлама денесіндегі, процедура нұсқауынан кейін тұрған нұсқау орындалады.

Функциялар

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

Функцияларды баяндау

Функция, процедура сияқты, тақырыптан және блоктан (денесінен) тұрады. Функцияның жалпы түрі төмендегідей:

FUNCTION NameFun(PI : T1;…PN : TN) : ТипФунк;

Мұнда, NameFun - функцияның атауы (идентификаторы);

P1, P2,…PN - жорамал параметрлер;

T1, T2,…TN - жорамал параметрлердің типтері;

ТипФунк - функция нәтижесінің типі.

Функцияеың құрылымында, формальді (жорамал) параметрлер қолданылмайтын болса, функция тақырыбы, келесі түрде белгіленеді:

FUNCTION NameFun2 : ТипФунк;

Функция атауын (идентификаторын) - функция көрсеткіші деп атайды.

Функцияның бағдарламада шақырылуы

Бағдарлама денесінде, функцияны қолдану үшін, функция көрсеткіші жазылады. Функция көрсеткішінің жақшаға алынған нақтылы параметрлерімен жазылуы, оның шақырылғаны болып табылады.

Процедура туралы, жоғарыда айтылған мағлұматтар, функцияларға да орынды болады.

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

а) Функцияның тақырыбында, осы функция арқылы есептелетін нәтиженің типі айқын көрсетілуге тиіс;

ә) Функция денесінде, меншіктеу нұсқауының сол жағында функцияның атауы болуы қажет. Бұл меншіктеу нұсқауы осы функцияның есептелетін мәнін анықтайды;

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

Cnm = n!/(m!*(n-m)!);

мұнда, n! - факториал, 1-ден m-ге дейінгі сандардың көбейтіндісіне тең.

PROGRAM FunFactor;

VAR n, m, l, rez : INTEGER;

{Factor -функция тақырыбы}

FUNCTION Factor(k:INTEGER) : INTEGER;

VAR p, i : INTEGER;

BEGIN

p := 1;

FOR i := 1TO k DO

p := p*i;

Factor := p; {функция мәні}

END; {Factor функциясының соңы}

BEGIN {Бағдарламаның нұсқаулар бөлімі басталады}

WRITELN ('n және m -бүтін сандарын енгіз:')

READ(n, m);

Rez := factor(n)/(factor(m)*factor(n-m));

{Factor() функциясы үш рет шақырылады.}

WRITELN ('Берілген өрнектің мәні =',rez);

END. {FunFactor - бағдарламасының соңы.}


© 2010-2022