Саба?ты? та?ырыбы: Функциялар.
Саба?ты? ма?саты: 1. Білімділік. ?ткен саба?тарда?ы білімдерін тере?дету, ?айталау, пысы?тау.?й та?ырыбында ?ткен материалдарды ?айталау.
2. Дамытушылы?. Білім, білік, да?ды, іскерлікті дамыту.С?здік ?орын дамыту.
3. Т?рбиелік. ?зара к?мек ж?не ?йымшылды??а т?рбиелеу.
Саба?ты? т?рбиелік ма?саты: О?ушыларды? эстетикалы? тал?амын арттырып, ?здігінен ізденуге талпындыру. Саба? пен ?мірді?, информатика п?ніні? бас?а п?ндермен байланысын к?здерін жеткізу.
К?рнекіліктер: Компьютер, т.б.
Саба?ты? т?рі: Теориялы?
Саба?ты? ?дісі: С?ра?-жауап, талдау, жина?тау
П?н аралы? байланыс:
Бас?а да тілдер т?різді Паскаль тілінде де функцияны арнайы программа ретінде жеке жазу?а болады, сонды?тан оны к?мекші программа ретінде ?арау?а болады.
Функция - программаны? процедура - программадан ерекшелігі мынада:
— функция бір ?ана белгілі м?н ?абылдайды, я?ни функция - программадан алынатын н?тиже біреу-ак,
— н?тиже функция аты ар?ылы алынады да, негізгі программада пайдаланылады.
Функция - программаны? жазылу т?рі:
Function аты (формалды параметрлер):
тип;
Бейнелеу б?лігі
Begin
Параметрлер б?лігі
End;
Функция фактілі параметрлерді? м??дері берілгеннен кейін ?з аты ар?ылы ша?ырылады. Онымен ?атар функцияны тікелей ?рнекті? ішінде ша?ыру?а болады.
Процедура мен функция айырмашылы?тарьн т?сіну ?шін екі санды ?осу программасын процедура ж?не функция т?рінде жазалы?.
1-мысал. Екі санны? ?осындысын табайы?
a) PROGRAM KOS;
VAR A: INTEGER;
PROCEDURE KOS (В, С: INTEGER; VAR К: INTEGER);
BEGIN
K:= В + С
END;
BEGIN
KOS (15, 4, А);
WRITELN ('KOC=',A:2)
END.
6) PROGRAM KEN;
VAR A: INTEGER;
FUNCTION KOS(B, C: INTEGER): INTEGER;
BEGIN
KOS:= В +С
END;
BEGIN
A:= KOS(15,4);
WRITELN ('KOC=', A:2)
END.
Екі программаны? н?тижесі бірдей: экранда КОС = 19 к?рінеді.
Алдымен 1- программаны ?арастырайык. Б?л программаны ша?ыр?анда В ж?не С фактілі параметрлеріне б?тін м?ндер беру керек. Оны ша?ыру т?рі мектеп алгоритмдік тіліне с?йкес келеді, я?ни: КOS (15, 4, А), м?ндагы А б?тін м?н ?абылдайтын н?тижені са?тау?а арнал?ан параметр. ?арастырылып отыр?ан мысалда ол 19 санына те?.
Екінші программада (б) процедура орнына функция пайдаланыл?ан. Б?л программада А:=KOS (15,4) операторы бар, б?л операторды т?бір табу стандартты
А: = SQRТ(2) функциясымен салыстыру?а болады. Функция та?ырыбынан со? т?р?ан INTEGER- б?л функцияныц м?ні б?тін сан болады дегенді білдіреді. Егер функцияны? м?ні на?ты болу ?ажет болса, онда ол орында REAL ?ызмет с?зі т?руы керек. Функцияны? м?нін есептегенде КОS(В,С) : = В + С деп жазу?а болмайды.
Сонымен б?л программаларды салыстыр?аннан мынаны аны?тады?:
- процедура мен функцияны? ??састы?ы - оларды? екеуінде де айнымалыларды, белгілерді, т?ра?тыларды бейнелеу б?ліктері болады;
- оларды? бір-бірінен ?згешелігі - PROCEDURE, ал FUNCTION ?ызмет с?здері пайдаланылады;
процедурада н?тиже (айнымалы) параметріні? типі процедура атауынан со? т?ратын кіші жакша ішінде бейнеленсе, ал функцияда н?тиже ?шін арнайы параметр алынбайды, н?тиже (функция м?ні) функция атына меншіктеледі, сонды?тан функция типі, аргументтер типтері бейнеленген жа?ша сыртында, ?ос н?кте ":" ар?ылы к?рсетіледі.
Мысалы:
Function f(a: REAL; var b: REAL):REAL;
Function g(var a,b: INTEGER):INTEGER;
Function h(a: INTEGER):char;
-негізгі программада функцияны? м?нін тек функция атауы ар?ылы пайдаланады.
Мысалы: х:= х + f (х, у); у:= sin(f(х)/3);
немесе while f(х,у) < f(у, х) do х:= f(x,x); Функция м?ні символды? бола алатын м?мкіндігін жо?арыдааы h -функциясынан к?руге болады.
Мысалы:
IF S=h(t) then S:=’a’ else S:=h(i)
Немесе
IF а mod 2= 0 then h:’*’ else h:=h’!’
2-мысал. Жо?арыда келтірілген т?ртб?рышты? ауданын табуды функцияны пайдаланып кайта жазайык,.
PROGRAM BNK (input, output);
VAR AB, ВС, CD, DA, AC: real;
function AYD (a,b,c,:real):real; VAR P:= real;
BEGIN
P:= (a +b+c)/2;
AYD: = sqrt(P*(P-a)*(P-b)*(P-c)
END;
BEGIN
READ (AB,BC,CD, DA, AC);
WRITE (AYD (AB, ВС, СА) + AYD(CD, DA, AC)) END;
Ба?алау:
?йге тапсырма:
A1, A2,. A15 берілген. A1 + A2 +. A12 жене A8 + A9 +. A15 тауып жене табыл?ан ?осындыларды? к?бейтіндісін табу?а программа ?арастыры?ыздар
?орытынды:
Бізді? б?гінгі функция та?ырыбында ба?дарламалар ?арастырды?.
Саба? ая?талды ?ош сау болы?ыз.