Сабақтың тақырыбы: Техника қауіпсіздігі және жұмыс орнын ұйымдастыру



бет7/8
Дата18.02.2018
өлшемі2,47 Mb.
#38034
түріСабақ
1   2   3   4   5   6   7   8

BEGIN {POWER}


IF A>0 THEN

POWER :=EXP(B*LN(A))

ELSE IF A<0 THEN POWER :=EXP(B*LN(ABS(A)))

ELSE IF B=0 THEN POWER :=1


ELSE


POWER :=0

END{POWER};



{----------------------------------------------------}

BEGIN {MAIN}

REPEAT

READLN(X,Y);



WRITELN(POWER (X,Y):12:10, POWER (X,-Y):15:10)

UNTIL EOF

END {MAIN}.

Бiз WRITELN процедураны шақырғанда, POWER функциясын шақыру үшiн оны параметр ретiнде жарияладық. Функцияны шақырғанда Х және У парматерлерi - фактiлiк деп аталады. Олар функция басындағы А және В формалдi параметрлердiң орнына қойылады және олармен қажеттi есептеулер жүргiзiледi. Шыққан нәтиже функция индентификаторына меншiктеледi - функциядан шыққанда функцияның нәтижесi ретiнде оны қарастырамыз. Программада POWER функциясы 2 рет шақырылады - бiрiншiден Х пен (+У)параметрлерiмен, кейiнiрек Х пен (-У), яғни соңында 2 нәтиже аламыз.

Көмекшi программаны кез-келген формальды параметрлерi - мән-параметр, айнымалы-параметр, тұрақты-параметр болуы мүмкiн. Жоғарыдағы мысалда А және В параметрлерi мән-параметрлерi болып табылады. Егер параметрлер айнымалы-параметрлер болса, олардың алдына VARсөзiн қоямыз, мысалға:

Procedure MyProcedure( var a: Real; b: Real; const c: string);

мұндағы а- айнымалы-параметр, b-мән-параметр, c- тұрақты-параметр.

Негiзiнде формальдi параметрдiң анықталуы тек қана шақырушы программаға лайық : егер формальдi параметр айнымалы-параметр ретiнде жарияланса, онда көмекшi программаны шақырғанда оған айнымалы ретiнде фактiлiк параметрлердiң типi сәйкес келуi керек; егер формальдi параметр мән-параметрi немесе тұрақты-параметр ретiнде жарияланса, онда көмекшi программаны шақырғанда оған еркiн мән сәйкес келуi керек. Бұл ереженi ТР компиляторы бұлжытпай орындайды. Егер жоғарыдағы мысалда FunctionPower (vara,b: Real):Real; тақырыбын қолданған болса едiк , онда функцияны 2-шi рет шақырғанда компилятор формалдi және фактiлiк параметрлердiң келiспеуi туралы хабарлаған болатын.

Қандай жағдайда қандай типтердi қолдануды түсiну үшiн, көмекшi программаны шақырғанда формальдi параметрлердi фактiлiк параметрлерiмен ауыстыруын қарастырайық.

Егер параметр мән-параметр болып жарияланса, онда көмекшi программаны шақырмас бұрын бұл мән есептелiп, шыққан нәтиже уақытша жадыға копияланып, көмекшi программаға берiледi. Көмекшi программаның iшiндегi мән-параметрлерiнiң өзгеруi шақырушы программамен қабылданбайды, себебi бұл кезде фактiлiк параметр копиясы өзгередi.

Егер параметр айнымалы-параметр ретiнде анықталса, онда көмекшi программаны шақырғанда айнымалының копиясы емес, өзi берiледi. Айнымалы-параметр өзгеруi фактiлiк параметрдiң өзгеруiне әкеледi.

Ал, егер тұқрақты-параметр болғанда көмекшi программаға жадының табылған адресi берiледi, онда айнымалы немесе шыққан мән табылады. Бiрақ компилятор көмекшi программаның тұлғасында тұқрақты-параметрге жаңа мән меншiктеуiне жол жабады.

Мысал: Программаға 2 бүтiн сан берiледi (5 және 7), олар INC2 процедурасына берiледi де сандардың мәнi 2 есе үлкейедi. Параметрлердiң 1-сi айнымалы-параметр, 2-сi мән-параметр ретiнде берiледi. Процедураны шақыру алдындағы және шақырғаннан кейiнгi параметрлердiң мәндерiн және еселiнген нәтижелерiн экранға шығарылады.

const

a:Integer = 5;



b:Integer = 7;

{------------------------}

Procedure Inc2(var c:Integer; b:Integer);

Begin {Inc2}

c:=c+c;

b:=b+b;


Writeln (‘екi еселiк:’,c:5,b:5)

End ; { Inc2}

Begin {main}

Writeln (‘тұп деретер:’,a:5,b:5)

Inc2(a,b);

Writeln (‘нәтиже:’,a:5,b:5)

End{main}.

Программа нәтижесiнде :тұп деректер: 5 7

екi еселiк : 10 14

нәтиже : 10 14 шығады.

Мысалдан көрiп отырсыңдар 2-шi формальдi параметрдiң Inc2 процедурасында өзгеруi В фактiлiк айнымалының өзгеруiне әкелдi, себебi бұл параметр процедура тақырыбында мән-параметр ретiнде сипатталған. Бұл мысалда глобальдi айнымалыны аттас локальдi айнымалымен “жабу”(перекрыть) механизмi деп қарастыруға болады: В глобальдi айнымалы бола тура, процедура тұлғасында оны В мән-параметрi болып сипатталған локальдi айнымалысы жабады.

Сонымен, айнымалы-параметрдi көмекшi программаның алгоритмiнiң сырт дүниемен байланыс құралы деп есептеймiз: бұл параметрлер арқылы көмекшi программа шақырушы программаға жұмыс нәтижесiн қайтара алады. Программалаушы, әрине, глобальдi параметрлердi қолданып нәтижелердi қайтара алады. Бiрақ, бұл кезде программа программалаушыға түсiнiксiз, шатасқан түрде келедi. Осы себептен нәтиженi фактiлiк параметрлермен қайтарған жөн.


МОДУЛЬДЫКПРОГРАММАЛАУ.


TurboPaskal-дамодульдардыңболуыпрограмманыбөлiктергеболiппрограммалауғажәнетексеругемүмкiндiкжасайды. Соныменбiргестандарттымодульдердiжәнебасқапрограммалаутiлiндегiпрограммалардықолдануғамүмкiндік береді.

Модуль төмендегiдей бөлiктерден тұрады:


  • Модуль тақырыбы;


  • Модуль интерфейсi;

  • Модульдiң орындалу бөлiмi;

  • Модульды инициализациялау бөлiмi.

Инициализациялау бөлiмiнен басқасы модульда болуы мiндеттi.

Модуль тақырыбы UNIT қызметшi сөзiнен және идентификатордан тұрады. Мысалы, UNITMyModule; Модуль- файл iшiнде орналасуы керек және файл атауы модуль атауымен бiрдей болып кеңейтiлуi .pas болуы мiндеттi.


Модуль интерфейсi арқылы негiзгi программа мен модуль (модуль мен модуль) арасында байланыс орнатылады. Интерфейсте негiзгi программада (модульда) модульдi шақырған кезде қолданылатын тұрақтылар, типтер, айнымалылар, процедуралар мен функциялар көрсетiледi.

Интерфейс INTERFASE қызметшi сөзiнен басталады. Содан соң USES сөзiнен кейiн осы модульде қолданылатын модульдың атаулары жазылады. Одан кейiн тұрақтылар, типтер, айнымалылар, процедуралар мен функциялар бөлiмi орналасады. Процедуралар бөлiмiнде INLINE директивасы орналасуы мүмкiн. Процедуралар бөлiмiнде тек көмекшi программалардың атаулары (INLINE директивасындағы көмекшi программалардан басқасы) көрсетiлiп, олардың өзi орындалу бөлiмiнде келтiрiледi.

Әр түрлi модульдағы интерфейстердi цикл iшiнде шақыруға болмайды, себебi компилятор ол кезде байланыс орната алмайды. Модульдiң орындалу бөлiмiнде модулдардың барлық көмекшi программалары орналасады. Сонымен бiрге онда белгiлер, типтер, айнымалылар болады.

Модульдiң орындалу бөлiмi IMPLEMENTATION қызметшi сөзiнен басталады. Содан соң USES сөзiнен кейiн осы модульде қолданылатын модульдың атаулары жазылады (бұларды жазбауға да болады). Егер қандай да бiр модуль интерфейсте жазылса оны қайталамау керек. Одан кейiн жергiлiктi тұрақтылар, жергiлiктiтиптер, айнымалылар бөлiмi орналасады. Содан соң процедуралар мен функциялар сипатталады. Бұл кезде FORWARD директивасындағы-дай көмекшi программалардың қысқартылған атауларын жазуға болады.

Модульдiң орындалу бөлiмiнде әр түрлi модульдарды цикл iшiнде шақыруға болады.

Модульды инициализациялау бөлiмiнде модулдарды қолдану үшiн оларды инициялизациялау керек, яғни ASSIGN процедурасы арқылы файлдар арасында байланыс орнату керек болады. Бұл бөлiм BEGIN сөзiнен басталып орындалатын операторлардан соң END сөзi жазылады.

Мысалы.


Begin

Assign(F1,’File1.dat’)

End.

Инициализациялау бөлiмiндегi опраторлар программа жүргiзу кезiнде бiр-ақ рет орындалады. Егер модулдi инициализациялау керек болмаса ол бөлiмге тек END. сөзi жазылады.



Модуль интерфейсiнде анықталған көмекшi программаларды, тұрақтыларды, айнымалыларды негiзгi программада қолдану үшiн Uses cөзiнен кейiн оның атауын жазу керек.

Бақылау сұрақтары.

  1. Көмекші программа дегеніміз не?

  2. Процедура және функция көмекші программаларының ұқсастығы және айырмашылығы неде?

  3. Параметр дегеніміз не? Мағынасы неде? Формальды және фактілік параметрлер дегеніміз не? Олардың байланысы?

  4. Модульды қолдану не үшiн қажет?

  5. Модуль қандай бөлiмдерден тұрады және олардың мақсаты қандай?

Қорытынды. Үйге тапсырма: «Моделдеу. Моделдеу түсінігі» оқу



САБАҚ ЖОСПАРЫ «Бекітемін»

________________

Оқу ісінің меңгерушісі

«___________» ________2015 ж

Пән аты: Информатика

Класы: 9 «А», 9 «Б», 9 «В»

Тақырыбы: Программалау тілі арқылы модельдер жасау
Сабақтың мақсаты: Оқушылардықұрылымдық программалау әдісін игеру мақсатында көмекші программаларды құруды және қолдануды үйрету.

Дамытушылық: Оқушыларға модулдеу түсінігі және тәсілін көмекші программа

жазылу әдісімен жұмыс жасауға дағдыландыру.



Тәрбиелелігі: Оқушыларды шапшаңдыққа, ақпараттық мәдениетке тәрбиелеу.

Сабақтың түрі: Аралас сабақ

Сабақтың барысы:

  1. Ұйымдастыру кезеңі.

  2. Жаңа сабақ

  3. Компьютермен жұмыс

  4. Қорытынды.

Тақырып мәтіні

Процедуралар және функциялар программаның бiршама дербес бөлiктерi болып табылады. Ол ерекше түрмен безендiрiлiп, атпен жабдықталған. Программа iшiнде бұл аттың еске алынуы процедураны немесе функцияны шақыру деп аталады. Келешекте процедуралар және функцияларды көмекшi программа ортақ атпен атаймыз, ал егер айырмашылығы баяндалса өз аттарымен атаймыз.

Көмекшi программа, кез-келген программаны бiр-бiрiнен тәуелсiз бiрнеше бөлiктерге бөле алатын аспаб болып табылады. Мұндай бөлу 2 себептен қажет.

Бiрiншiден, бұл әдiс жадының үнемдеуi: кез-келген көмекшi программа - программа iшiнде дана бола тұра, оны программаның кез-келген нүктесiнен бiрнеше рет шақыруға болады. Көмекшi программа шақырылғанда оны құрайтын операторлар тiзiмi активтендiрiледi, ал көмекшi программаға берiлетiн параметрлер көмегiмен қажеттi алгоритм құралады.

Екiншiден, программаларды бәсеңдей жобалайтын тәсiлдi қолдану. Бұл жағдайда алгоритм бiршама дербес және маңызды бөлiктерден тұратын бiршама үлкен көмекшi программалар арқылы құралады. Көмекшi программалар төмен деңгейлi кiшiрек көмекшi программаларға бөлiне алады,

Кез-келген көмекшi программа шақырылмас бұрын программаның сипаттау бөлiмiнде сипатталуы керек. Көмекшi программаны сипаттау - оның тақырып және тұлғасын басып, көрсету деген сөз. Көмекшi программаның тақырыбында оның аты және формалдi параметрлерi жарияланады. Функция үшiн бұдан басқа қайтарылатын нәтиженiң типi жарияланады. Басынан соң көмекшi программа тұлғасында, программада секiлдi, сипаттау және операторлар бөлiмдерi келедi. Көмекшi программа сипаттау бөлiмiнде төмен деңгейлi көмекшi программалар сипаттамасы, олардың iшiнде тағы басқалары кездесуi мүмкiн.

Негiзiнде көмекшi программа тұрақтылардан, айнымалылардан, тип және төмен деңгейлi көмекшi программалардан тұрады. Көмекшi программада сипатталған аттардың бәрi программаға жайылмайды, яғни “көрiнбейдi” деуге болады. Олай болса, көмекшi программаға қатысты операторлар жағынан ол “қорап” ретiнде қарастырылып, оның iшiнде кез-келген алгоритм жүзеге асырылады. Бұның бәрiн программалаушы көре алмайды. Мысалға, жоғарыда көрсетiлген мысалда негiзгi программаның iшiнен бiз А және В процедураларын шақырып, олардың iшкi А1, А2, В1 процедураларын шақыра алмаймыз.

Айтылғанның бәрi тек көмекшi программалардың аттарына емес, сондай-ақ кез-келген аттарға және олардың iшiнде сипатталған типтерге, тұрақтыларға, айнымалылар және таңбаларға қатысты. Көмекшi программаның iшiнде жарияланған аттардың бәрi бiрегей (уникалды) бола тұра көмекшi программаның атымен сәйкес болмау керек.

Төмен деңгейлi көмекшi программаның iшiне кiргенде, оның жарияланған аттарымен қатар жоғары деңгейлi көмекшi программаның аттарын қолдануға мүмкiндiк бар. Мысалға, В21 көмекшi программаның iшiнен бiз А көмекшi программасын шақырып қолдана аламыз. Кез-келген көмекшi программа өз-өзiн шақыра алады-рекурсия амалы. Мынандай сипаттама бар болсын:

Program ...;

var V1: ...; …

Procedure A;

var V2:: ...;

...........

end{A};

Procedure B;

var V3: ...;

Procedure B1;

varV4: ...;

Procedure B11;

varV5;

.........

В11 процедурасынан V1,...,V5 айнымалыларын, В1 процедурасынан V1,...,V4 айнымалыларын, негiзгi программадан тек V1 айнымалысын пайдалана аламыз.



Көмекші программаның сипатталуы

Процедураның тақырыбы: Procedure<аты> [(ф.п.тiз)];

Функцияның тақырыбы: Function<аты> [(ф.п.тiз)]: <типi>;

Мұндағы <аты>-көмекшi программаның аты;

[(ф.п.тiз)]-формалдi параметрлер тiзiмi;

<типi>-функцияның қайтаратын мәннiң типi;

Процедура мен функцияның параметрлері.

Формалдi параметрлер тiзiмi қажеттi болмағандықтан, болмауы да мүмкiн. Ал егер бар болса, онда оның iшiнде формалдi параметрлердiң аттары және олардың типтерi анықталған болуы тиiс, мысалға:



Procedure SB(a: Real; b: Integer; c: Char);

Мысалда, тiзiмдегi параметрлер (; ) арқылыажыратылған. Егертiзiмдебiртиптi бiрнешепараметрлерболса, онда



Function F(a: Real; b: Real): Real; орнына бiз Function F (a, b : Real) : Real ; деп жаза аламыз.

Келесi мысалды қарастырайық. ТР тiлiнде дәреже шығару операциясы жоқ, бiрақ LN (X) және EXP (X) функцияларын пайдалану арқылы бiз қажеттi, POWER атты, жаңа функция аламыз

VAR X,Y: REAL;

FUNCTION POWER(A,B:REAL):REAL;




Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет