Функциялар мен процедуралар Паскаль тілінде программаның (ПП) екі түрі процедура және функция анықталған. Кез- келген паскаль тілінде программаның жалпы программа сияқты құрылымға ие. Паскаль тілінде программаның шақырғанда негізгі программаның орындалуы уақытша тоқтайды да, орындалу ретті паскаль тілінде программа беріледі. Паскаль тілінде программасы орындалып болған соң басқару негізгі программаға қайта оралады.
Процедура мен функция арасындағы негізгі ерекшелік мынады: прцедура қандай-да бір әрекеттер тізбегін орындайды да жұмыс нәтижесін негізгі программаға бермейді. Ал функция әрекеттерді орындайды және нәтижені негізгі программаға береді. Мысалы, функцияны былай M:=MIN(X,Y) шақыру негізгі программаға екі санның кішісін мән ретінде береді және ол мән М айнымалысына меншіктеледі. Кез-келген программа, негізгі програмада немесе басқа паскаль тілінде программа шақырлымай тұрып, алдын-ала сипаталуы тиіс. Паскаль тілінде программаны пайдаланатын барлық айнымалылар не глобальды, яғни олар қолдануға болады; не локальды, яғни паскаль тілінде программаның ішінде сипатталады да тек сол паскаль тілінде программа ғана қолданады.
Негізгі программа мен паскаль тілінде программаның арасында ақпарат алмасу глобальды айнымалыларды тікелей пайдалануға болады. Орындалу барысында нәтижесі бір немесе бірнеше мән болатын көмекші программа процедура деп аталады. Прооцедураның сипаттауы: Procedure <процедура аты> (<Формальды параметрлер тізімі>) немесе Procedure P (g1: T1; g2: T2; var g3: T3); <Жергілікті параметрлер мен көмекші программаларды анықтау және сипаттау бөлімі.> Begin o1; o2; End. Мұндағы P процедураның аты; g1 формальды параметрлердің аттары; T1 параметрлер типтері; o1 көмекші программаның операторлары. Функцияны сипаттау: Function <функция аты> (<Формальды параметрлер тізімі>): типі;
Процедураға есептер шығару: 1 Есеп. Т матрицасыны ң элементтерін енгізген процедура жазыңдар. 2 Есеп. T матрицасыны ң элементтерін енгізетін және жауапқа шығаратын процедура жазың дар.
Функцияға есептер шығару 1 Есеп. Екі бүтін санны ң кішісін таңдайтын функция жазыңдар. 2 Есеп. Екі бүтін санны ң үлкенін таңдайтын фукция жазыңдар.
Бұл сипаттауда L мен K integer типіндегі 1) Procedure Tab (Var L,K: integer); Var i,j: integer; begin for i:=1 to l do begin for j:=1 to K do begin write(t[',i,',',j,]='); read(t[i,j]) end; writeln end; End.
Program Dina; Const U=100; var n,m:integer; T:array[1..U,1..U] of integer; Procedure Tab(Var L,K:integer); Var I,J:integer; begin For I:=1 to L do begin For J:=1 to K do begin write('t(',i,',',j,')='); read(t[i,j]) End; Writeln End end; begin Writeln('Matricany olshem engizinder N X M'); Write('N='); Read(N); Write('M='); Read(M); Tab(N,M) End.
Жауабы:
Есепті шешу алгоритмі: Программа денесін айнымалыларды сипаттаудан бастаймыз. Tab поцедурасын сипаттаймыз. Матрицаның жолдары мен бағандарын анықтайтын N мен M натурал сандарын енгіземіз. Фактілі параметрлері N мен M болатын Tab(N,M) процедурасын шақырамыз. Программа жұмысын аяқтаймыз. Айнымалылар: Tab процедурасында: T енгізілетін матрица (глобальды айнымалы); I,J циклдық параметрлері (локальды айнымалылар); Негізгі программада: T енгізілетін матрица (глобальды айнымалы); N,M матрица өлшемі (глобальды айнымалы);
2) Procedure Tab_In(var L,K:integer); Var I, J:integer; begin For I:=1 to L do begin For J:=1 to K do begin end; Procedure Tab_Out(var L,K:integer); Var I, J:integer; begin For I:=1 to L do begin For J:=1 to K do Write(T[I, J]:6); end; begin Writeln('matricany olshemin engizinder N x M'); Write('N='); Read(N); Write('M='); Read(M); Tab_In(N,M);
Есепті шешу алгоритмі: Программа денесін айнымалыларды сипаттаудан бастаймыз. Матрица элементтерін енгізу үшін Tab In процедурасын сипаттаймыз. Матрица элементтерін енгізу үшін Tab Out процедурасын сипаттаймыз. Матрицаның жолдары мен бағандарын анықтайтын N және M натурал сандарын енгіземіз. Фактілі параметрлері N мен M болатын Tab_In (N,M) процедурасын шақырамыз. Фактілі параметрлері N мен M болатын Tab_Out (N,M) процедурасын шақырамыз. Программа жұмысын аяқтаймыз.
Айнымалылар: Tab процедурасында: T енгізілетін матрица (глобальды айнымалы); I,J циклдық параметрлері (локальды айнымалылар); Tab_Out процедурасында: T енгізілетін матрица (глобальды айнымалы); I,J циклдық өлшемі (глобальды айнымалы); 3. Негізгі программада: T енгізілетін матрица (глобальды айнымалы); N,M циклдық өлшемі (глобальды айнымалы); Функцияларларды сипатаудың өз ерекшелігі бар. Функция қандай да бір мәнді есептеуге арналғандықтан оның түрін көрсету қажет болады. Function <имя функции> (<список формальных параметров>): тип; Сонымен бірге функция денесінде оның атына қандай да бір мән меншіктелуі тиіс. Ол функция типімен сәйкес келуі керек.
End; Begin writeln('eki butin san engiz'); Readln(I,J); writeln('min=',min(i,j)); End. Жауабы:
Есепті шешу алгоритмі: Программа денесін айнымалыларды сипаттаудан бастаймыз. Min функциясын сипаттаймыз. I және J бүтін сандарын енгіземіз. Min функциясын шақырамыз және сандардың кішісін анықтаймыз. Программа жұмысын аяқтаймыз. Min Айнымалылар: функциясында: I және J екі бүтін сан (глобальды айнымалы); Негізгі айнымалы); программада: I және J екі бүтін сан (глобальды
2) Program Dina; var I,J:integer; Function Max(I,J:integer):integer; Begin If I>J then Max:=I else Max:=J End; Begin writeln('eki butin san engiz'); Readln(I,J); writeln('max=',max(i,j)); End. Жауабы:
1. Max функциясында: I және J екі бүтін сан (глобальды айнымалы); 2. Негізгі программада: I және J екі бүтін сан (глобальды айнымалы); Функция мен процедураларды сипаттауды өзін-өзі шақыру арқылы рекурсия көмегімен құруға болады. Программаның әрбір жаңадан шақырғанда пайдаланатын параметрлердің мәндері стекке ендіріледі, сондай-ақ алдыңғы шақырулардығы параметрлердің мәндері де сақталады. F(x) функциясы үшін рекурсияны былай сипаттауға болады: If x=<алғашқы мән> then F:=<функцияның алғашқы мәні> Else F:=W(F); Мұндағы F:=<функцияның алғашқы мәні> канструкциясы рекурсия түбі деп аталады, ал F:=W(F) Хп нүктесіндегі аргументтің Хп-1, Хп-2 и т д кіші мәндері үшін функцияның мәндерін шақыру тәсілін анықтайды
Есепті шешу алгоритмі: Программа денесін айнымалыларды сипаттаудан бастаймыз. Max функциясын сипаттаймыз. I және J бүтін сандарын енгіземіз. Max функциясын шақырамыз және сандардың кішісін анықтаймыз. Программа жұмысын аяқтаймыз.