Функциялар
Функция - программаның процедура - программадан ерекшелігі мынада:
- функция бір ғана белгілі мән қабылдайды, функция -программадан алынатын нәтиже біреу;
- нәтиже функция аты арқылы алынады да, негізгі программада пайдаланылады.
Функция - программаның жазылу түрі:
FUNCTION
LABEL…;
CONST…;
TYPE…;
PROCEDURE…;
FUNCTION…;
BEGIN
END;
Функция шынайы параметрлердің мәндері берілгеннен кейін өз аты арқылы шақырылады. Онымен қатар функцияны тікелей өрнектің ішінде шақыруға болады.
Сонымен бұл программаларды салыстырғанда мынаны анықтадық:
-процедура мен функцияның ұқсастығы - олардың екеуіне де айнымалыларды, белгілерді, тұрақтыларды бейнелеу бөліктері болады;
-олардың бір-бірінен өзгешілігі -Procedure, ал Function қызмет сөздері пайдаланылады.
- процедурада нәтиже (айнымалы) параметрінің типі процедура атауынан соң тұратын кіші жақша ішінде бейнеленсе, ал функцияда нәтиже үшін арнайы параметр алынбайды, нәтиже (функция мәні) функция атына меншіктеледі, сондықтан функция типі, аргументтер типтері бейнеленген жақша сыртында, қос нүкте ":" арқылы көрсетіледі.
1-мысал. F= m! - k! есептейтін программа құрайық.
Ргоgram FAК;
Vаr Ғ : rеal; m, k : іnteger;
Function FАСТ(N : іnteger) : rеаl;
Vаr і : іnteger;
р:rеаl;
Веgіn
р:=1;
For і:=1 to N do
р:=р*і
FАСТ:=р
END;
Веgіn
Readln(m,k);
Ғ:=ҒАСТ(m)-ҒАСТ(k);
Writeln('F=', F)
END.
2-мысал. Күннің, айдың және жылдың берілуін а, в және с сандарымен енгізілсін. Жылдың басынан бастап есептегендегі осы кџннің қаншасыншы номер (яғни қаншасыншы күн) екенін анықтайтын программа қүрайық.
Високос жыл деп - номері 400-ге бөлінетін жылдарды есептейміз.
Виcoкос емес жылдардың айларынан М(1,11) массивін құрамыз және МOD(n,m) функциясын пайдаланамыз.
Program calendar;
Vаr а,b,с,і,j:іntegеr;
m: аrrау[1..11] of integer;
function D(х:іntegег):bоо1еаn;
bеgіn
D:=(с mod х)=0
еnd;
bеgіn
Writeln(`a,b,с:=`);
Readln(а, b,с);
Writeln;
Fог і:=1 to 11 do
case і оf
1,3,5,7,8,10:m[і]:=31;
4,6,9,11:m[і]:=30;
2:m[і]:=28;
еnd;
j:=a;
Fог і:=1 to b-1 do j:=j+m[і];
If(b>2) and (D(4) and not D(100) ог D(400)) then j:=j+1;
Writeln(j);
END
Сұрақтар және жаттығулар
1. Қосалқы программа деп кaндай программаны айтады?
2. Процедура түрінде жазылған қосалқы программаның ерекшелігін көрсетіңцер?
3. Функция түрінде жазылған қосалқы программаның ерекшелігін көрсетіндер?
4. Формадды параметрлер мен шынайы параметрлер арасында қандай байланыс бар?
5. Процедураны параметрсіз жазуға болады ма?
6. Жергілікті және жалпы параметрлер дегенді Ісалай түсінесіз?
7. Функцияны қосалқы программа деп атауға бола ма?
8. Қосалқы программалар қалай шақырылады?
9. Функция мен процедураның шақырылу жѕне мѕндер беру ерекшелігі неде?
10.Процедура мен функция арасында қандай ұқсастық және айырмашылықгар бар?
11. Герон формуласы бойынша 1-суреттгі үшбұрыштардың ауданын есептейтін процедура және функцияны пайдаланып, төмендегі фигураның ауданын есептеу керек:
12. Төмендегі функциялардың мәндерінің құрыңдар:
1. y=sinx+3x/6+0.3x2 ; x [-3,8], n=20
2. y=zlnx+z(sinx+cosx)/z+cosx; x [-1,1]
3. z=sinx+cosy/x+y; x [-6,6]
Достарыңызбен бөлісу: |