Оқулық Қазақстан Республикасы Білім жəне ғылым министрлігі бекіткен Алматы, 2011 1



бет57/210
Дата06.01.2022
өлшемі4,42 Mb.
#16437
түріОқулық
1   ...   53   54   55   56   57   58   59   60   ...   210
Байланысты:
boribaev-algoritmdeu

begin
if <2 шарт> then
<1 оператор>
end
else <2 оператор >;

5.4-мысал. Төменде көрсетілген функция мəнін есептейтін программа жазу қажет:







x




, егер




x




≤1;












































































2





































x

, егер 1<




x




≤2;







y =






























































































4,







егер




x

> 2.



































































































5.8-сурет. Алгоритмдер фрагменттері


98

Бұл программаны аргумент мəнін енгізуден бастау керек. Енгізілген мəннің қандай аралықта жатқанына байланысты функ-ция мəнін берілген өрнектің бірі бойынша есептейміз. Бұл есепті шешу алгоритмі 5.9-суретте көрсетілген. Программа мəтіні төменде берілген.
Program ex;
Var x,y:real;
Begin
WriteLn('Аргумент мəнін енгіз:'); ReadLn(x);
if abs(x)<=1 then y:=abs(x) {бірінші аралық} else
if (abs(x)>1) and (abs(x)<=2) then y:=sqr(x) {Екінші аралық} esle y:=4; {Үшінші аралық}
WriteLn(' x=',x:8:5,' болғанда y=',y:8:5) End.



5.9-сурет. Берілген аралықта функция мəнін есептеу алгоритмінің схемасы


99

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


  1. Шартты оператор не үшін керек?

  2. Шартты оператордың жазылуының екі формасының айырмашы-лығы неде?




  1. Шартты оператордың ішінде басқа шартты операторды жазуға бола ма?




  1. Құрама оператор қайда жəне қалай қолданылады?

  2. Шартты оператордың блок-схемасының орындалуын түсіндіріңіз.


Тапсырмалар


  1. M(x,y) нүтесі орналасқан квадранттың нөмірін анықтап, экранға шығарыңыз.




  1. X, Y нақты сандары берілген. Сандардың кішісін олардың жарты қосындысымен, ал үлкенін олардың екі еселенген көбейтіндісімен алмастырыңыз. Есептеулер нəтижесін экранға шығарыңыз.




  1. Үш нақты сан берілген. Осы сандардың ішіндегі оң сандарды ква-драттап, экранға шығарыңыз.










* x

егер

0 ≺ x ≺ 2







x






















4.




+ 4

егер

− 2 ≺ x ≤0 функциясының мəнін есептейтін

y = x







баска жагдайларда

программа жазыңыз.




0



















  1. Үш санның ең үлкенін анықтайтын программа құрыңыз.

  2. x, y сандары берілген. Егер x жəне y теріс сан болса, онда оларды модульдерімен алмастырыңыз; егер тек біреуі ғана теріс сан бол-са, олардың екеуін де 0.5-ке өсіріңіз; егер екеуі де оң сан болса, онда оларды 10 есе өсіріңіз.

  3. M(x,y) нүктесі радиусы r, центрі a,b нүктесінде орналасқан дөң-гелектің ішінде жататындығын анықтаңыз.

  4. M(x,y) нүктесі центрі координаталар жазықтығының басын-да орналасқан, сыртқы радиусы R1, ішкі радиусы R2 шеңберге жататындығын анықтайтын программа құрыңыз.

  5. a, b, c үш саны берілген. a

  6. Ең жақын бүтін санға дейін дөңгелектелген a жəне b сандарының бөліндісі жұп сан екенін анықтаңыз.


5.3 Таңдау операторы
Жоғарыда біз тармақталу операторында белгілі бір шарттың орындалу немесе орындалмауына байланысты алгоритмнің 1-ші немесе 2-ші операторы орындалатынын қарастырдық. Алайда, көбінесе мүмкін болатын жағдай екеу емес, одан да көп бола береді, яғни процесс көп тармақты болады.


100

CASE таңдау операторы алгоритм құрамындағы екіден көп тармақтың бірін таңдау керек болған кезде шартты оператордың орнына қолданылады.
Тармақталу берілген логикалық мəнге ие болатын өрнек тү-ріндегі шартты тексеруден басталады, өрнек (селектор) мəндері таңдап алынған типтердің бірі болатын бүтін, символдық, логика-лық типтердің бірінде жазылады. Бұл өрнек оператор орындалар кезде белгілі бір мəнге ие болуы тиіс. Сол мəн оған байланысты орындалатын оператордың белгісі рөлін атқарады. Егер өрнектің есептелген мəні көрсетілген мəннің біріне сəйкес келсе, сол қатардағы оператор орындалады.
CASE таңдау операторы көп тармақты алгоритмдерді барынша қарапайым жəне көрнекі түрде жазуға мүмкіндік береді. Оның құрамында селектор (selector – таңдау) деп аталатын өрнек жəне параметрлер тізімі болуы тиіс, əрбір параметрге сəйкес таңдау тұрақтылары болуы қажет. CASE операторының синтаксистік диаграммасы (5.10-сурет) былай кескінделеді:
Ал, оның жалпы жазылу түрі:



5.10-сурет. Таңдау операторының синтаксистік диаграммасы
CASE < селекторлық өрнек > OF

















<белгі>

,<белгі>

:<1 оператор>;




,<белгі>..<белгі>


































<белгі>

,<белгі>

:<2 оператор>;




,<белгі>..<белгі>



















<белгі>

,<белгі>

:;




,<белгі>..<белгі>


















[ELSE <оператор>]


END


101

Селекторлық өрнек (селектор, ауыстырғыш) пен белгі тү-ріндегі тұрақты (белгі нұсқалар, таңдау белгісі) бір типті болуы керек. Белгі-тұрақты программадағы белгілер тəрізді белгілер бөлімінде сипаттауды талап етпейді. Белгі-тұрақтыларға GOTO операторында сілтеме жасауға болмайды. Белгілер саналатын не-месе интервалды түрде берілуі тиіс.

Диаграммаға сəйкес таңдау операторы төмендегідей ықшамды түрде де жазылады:


case <селектор-өрнек > of <1-белгі>: <1-оператор> <2-белгі >: <2-оператор>

. . .
<n - белгі >: <n-оператор> else <n+1-оператор>



end;

Таңдау операторы төмендегідей ереже бойынша орындалады: алдымен селекторлық өрнек есептеледі; сонан кейін белгі нұсқасы селектордың ағымдағы мəніне сəйкес оператор орындалады; бұдан кейін CASE операторынан кейін орналасқан операторға көшу атқарылады. Егер селектор мəні белгі нұсқаларының ешқайсысымен сəйкес келмесе, онда ELSE түйінді сөзінен кейін орналасқан оператор орындалады. ELSE тармағы жоқ болған жағдайда, CASE операторынан кейін орналасқан оператор атқарылады.


Мысалы, төмендегі функцияны есептеу қажет болсын делік:











егер k = 3

cos x ,






















егер k = 2

sin x ,
















x










,

егер k =1

Z = e

























егер k = 0

ln x ,

























0, басқа жағдайда
мұндағы k мəніне сəйкес белгілер жазып, соларға төмендегідей түрде көшу əрекеттерін орындаймыз:
CASE K OF


  1. Z:= LN(X);




  1. Z:= EXP(X);


102

  1. Z:= SIN(X);




  1. Z:= COS(X)

ELSE Z:= 0

END; …

Бұл мысалда k параметрінің мəніне байланысты стандартты функциялардың бірі есептеледі. k параметрінің мəні таңдау операторларына дейін белгілі болуы тиіс.


Келесі мысалда JAUAP айнымалысы V символдық айныма-лысының енгізілген мəніне байланысты YES немесе NO мəн-дерінің біріне ие болады. Бұл жерде белгілер үтір арқылы бөлініп, тізбек түрінде берілген.


  1. VAR V: CHAR;

JAUAP: STRING;



CASE V OF
‘D’, ‘d’, ‘Д’, ‘д’: JAUAP:=‘YES’;
‘N’, ‘n’, ‘Н’, ‘н’: JAUAP:=‘NO’
ELSE JAUAP:=‘ ’
END; …
Келесі мысалда белгі нұсқалары интервалмен берілген.


  1. VAR V:CHAR;

JAUAP:STRING;



CASE V OF ‘A’..‘Z’,’a’..‘z’:JAUAP:=‘əріп’;

‘0’..‘9’:JAUAP:=‘цифр’


ELSE
JAUAP:=‘арнайы символ‘
END; …

Таңдау операторы бірнеше нұсқалар ішінен қандай да бір параметрдің мəніне тең нұсқаны іске асыру үшін қолданылады.


5.5-мысал. Көрсетілген нүктеде берілген функция мəнін есеп-тейтін программа жазу керек.


103

Тұтынушыға функцияны қарапайым менюден таңдауға мүм-кіндік берейік. Əр функцияға қандай да бір сан (код) сəйкес келеді:



Достарыңызбен бөлісу:
1   ...   53   54   55   56   57   58   59   60   ...   210




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

    Басты бет