Функциялар мен процедуралар




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

Бұл сипаттауда L мен K – integer типіндегі
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 функциясын шақырамыз және
сандардың кішісін анықтаймыз.
Программа жұмысын аяқтаймыз.

Ұқсас жұмыстар
Бейстандартты процедуралар мен функциялар
Си тілінде кіріктірілген циклдерді орындаудың
Кіріктірілген циклдардың құрылымын ұйымдастыру. Циклдық алгоритмдерді орындайтын программа құру
Стандартты модульдер
Модульдік программалау
Алгоритмдік тілдің алфавиті, синтаксисі және семантикасы
Ішкі және модульдік программалау
Ішкі және модульдік программалау. Си тілі мен Паскаль тілінде жазылған бағдарламалар
Кездейсоқ сандар
Кездейсоқ айнымалы ұғымын қарастыру. Кездейсоқ айнымалымен жұмыс істейтін процедуралар мен функциялар. Тармақталу алгоритмін орындайтын программаны құру
Пәндер