І.7. ҚОСАЛҚЫ ПРОГРАММА
Жалпы түсінік
ПАСКАЛЬ тіліндегі бағынышты программалар -процедуралар
Кез келген процедура программаға ұқсас түрде жазылады. Олардың басы, бейнелеу және операторлар бөліктері болады.
PROCEDURE
LABEL…;
CONST…;
TYPE…;
VAR…;
PROCEDURE…;
FUNCTION…;
BEGIN
END;
Процедураны параметрсіз де пайдалануға болады. Процедуралық программа схемасы төмендегідей болады:
PROGRAM P(INPUT,OUTPUT);
PROCEDURE P1;
BEGIN
END;
PROCEDUREP2;
BEGIN
END;
BEGIN
END.
Программаның орындалуы негізгі программаның операторларының орындалуынан басталады. Негізгі программада әрқашан процедураның орындалуы қажет болғанда ғана процедураға көшеді. Бұл жағдайда берілгендер негізгі программадан процедураға (енетін параметрлер) беріледі. Процедура орындалып болған соң оның нәтижесі (шығатын параметрлер), процедураға негізгі программадан қай жерден көшті, сол жерге береді. Одан соң негізгі программа орындала бастайды.
Атаулардың пайдаланылу аймағы
Негізгі программада хабарландырылған (бейнеленген) атау, негізгі және қосалқы программада да (процедураларда да, функцияларда да) пайдаланыла алады.
Мұндай атаулар ортақ (глобальды) атаулар деп аталады. Қосалқы программада хабарланған атаулар тек сол қосалқы программада ғана пайдаланылады. Мұндай атауларды жергілікті (локальды) атаулар дейді.
Негізгі программада процедураны шақыру түрі төмендегідей болады:
процедура аты (формальды параметрлер тізбегі);
Мұнда параметрлер формальды параметрлер тізімінен тұрады. Бұлардың ішіндегі процедураға берілетіндері - айнымалы, тұрақты типті өрнек болуы да мүмкін.
2-мысал. Дөңес төртбұрыштың төрт қабырғасы мен диагоналының ұзындығы бойынша оның ауданын табуға программа құрайық.
Шешуі. Дөңес төртбұрыштың диагоналы оны екі үшбұрышқа бөледі.
3-сурет. Дөңес төртбұрыш.
Әр үшбұрыштың ауданын табу үшін белгілі Герон формуласын пайдалануға болады.
S= р(р - а)(р - b)(р - с); р = a+b+c/2
Мұндағы а,b,с-үшбұрыштың қабырғалары, р-жарты периметрі: р=(а+b+с)/2. Бұл есепті шешу џшін џшбұрыштың ауданын табу программасын екі рет пайдаланады. Бџл есепті шешудегі негізгі және көмекші программа төмендегідей болады:
PROGRAM В20 (INPUT, OUTPUT);
Vаг АВ, ВС, СD, DА, АС, S1, S, а,b,с,р : rеal;
PROCEDURE strl;
Веgin
р:=(а+b+с)/2; S:=SQRT(р*(р-а)*(р-b)*(р-с))
END;
Begin
Read(АВ, ВС, СD, DA, АС);
а:=АВ; b:=ВС; с:=АС; strl; S1:=S;
а:=DА; b:=АС; с:=СD; strl; S1:=S1+S;
Write('S1=', S)
END.
Паскаль тіліндегі процедуралардың ерекшеліктері
Процедуралар.
Процедура деп белгілі бір идентификатормен аталып, сол атпен программаның кез-келген жерінен шақырып, белгілі бір есептеулерді орындауға болатын программаның тәуелсіз бөлігін айтады. Процедураның құрылымы программаның құрылымына ұқсас келеді.
Процедураның құрылымы:
{тақырыбы:}
PROCEDURE аты (формальды параметрлер: типтері);
Сипаттамалар бөлімдері; (*бұл бөлімдер болмауыда мүмкін*)
BEGIN Операторлар; (*процедура денесі*)
END;
Программада процедураны пайдалану үшін процедураның атын нақты параметрлерімен бірге жазып шақырады, ол жерді процедураны шақыру нүктесі деп атайды. Программада процедураның шақыруын оқыған заматта процедураның орындалуы басталады. Мысалы программа тақырыбы төмендегідей болса:
Достарыңызбен бөлісу: |