русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Меншіктеу операторы


Дата додавання: 2014-11-27; переглядів: 2906.


Паскаль тілінің негізгі операторлары.Паскаль программасының негізгі бөлімі бір-бірінен нүктелі үтір (;) символымен ажыратылған операторлар тізбегі түрінде жазылады.

Оператордеп белгілі бір шамалармен жүргізілетін амалдардың орындалу жолдарын керсететін нұсқауды айтады. Операторлардың жай және күрделі түрлері болады. Құрамына басқа операторлар кірмейтін операторлар жай операторлар деп аталады. Олар: меншіктеу, программа басқа кез келген жеріне шартсыз өту, процедураны шақыру және бос әрекетті операторлар.

Күрделі операторлар басқа операторлардан алынған қүрылымдардан және алдын ала анықталған белгілі бір ережеге сай құрылады. Күрделі оператордың түрлеріне құрмалас, тармақталу, таңдау, қайталау операторлары жатады. Құрмалас операторлар бірнеше жай операторлар тізбегінен тұрады да, Веgin, Еndқызметші сөздерімен шектеліп, соңынан нүктелі үтір (;) символы қойылады.

Жазылуы: Веgin

<1-ші оператор >;

<2 -ші оператор >;

….;

<N-ші оператор>;

Еnd.

Бұл жағдайда Веgіп, End қызметші сөздері операторлық жақша деп аталады. Ал операторлар программадағы орналасу ретімен орындалады.

Меншіктеу операторы.Кез келген программалау тілінің негізгі операторларының бірі болып меншіктеу операторы саналады. Меншіктеу белгісі (:=). Бұл оператор бойьінша берілген өрнектің нәтижесі табылып, оның мәні белгілі бір айнымалыға меншіктелінеді. Айнымалы меншіктеу белгісінің (:=) сол жағына, өрнек оң жағына жазылады-

Жазылу жалпы түрі: <айнымалы>:= <өрнек>;

 

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

Мысал.Егер айнымалылар төмендегідей сипатталса:

Vаг

I, j, k: integer;

А, Ь, с: геаl;

X, у: сhаг;

L, f: bооlean;

Онда келесі меншіктеу операторлары орынды:
І:=к+і div j; А:= b/с; Ғ:= (а=Ь) аnd (а<с);

b:= а+b; Х:=у; І:= k*j mod 2;

Соңғы оператордағы өрнектің бүтін типті нәтижесі і нақты типті айнымалысына меншіктелген. Керісінше, өрнектің нақты типті нәтижесін бүтін типті айнымалыға меншіктеуге болмайды, яғни і:=а*b/с д9рыс жазылмаған.

Нақты типті шаманы бүтін типті айнымалыға меншіктеу қажет болған жағдайда арнайы round немесе trипс функцияларын пайдалану керек.

round функциясы нақты шаманы дөңгелектеп, бүтін шамаға айналдырады мысалы, round (0.35)=0,
round (1.85) = 2, round (-3.14) = -3, round (-3.89) = -4.
trипс функциясы нақты шаманың бүтін бөлігін ғана алып, бүтін типті шамаға айналдырады, мысалы: trипс (0.85)=0; trипс (1 85)=1; trипс (-3.14)=-3; trипс (-3.85)=-3. Жоғарыда қарастырылған мысалға байланысты бұл функцияларды келесі түрінде пайдалануға болады: i:= round(а*b/с); і:= trипс (а*b/с);

Меншіктеу белгісінің сол жағындағы айнымалы оң жағындағы өрнектің мүшесі ретінде кездесуі де мүмкін, онда өрнек есептелгенде, айнымалының ескі (бүрынғы) мәні алынады да, оператор орындалған соң айнымалы жаңа мән қабылдайды, мысалы: i: =i+1; k:=і+.j;

4.2. Енгізу-шығару операторлары

Компьютерде ең қарапайым есепті шығарғанда да мәліметтерді енгізу-шығару операцияларынсыз тынбайды. Кез келген программа қандай да бір мәліметтерді өңдеу негізінде нәтиже береді. Өңделетін мәліметтер сыртқы құрылымдардан шығып, компьютер жадына орналастырылады, ал нәтиже, керісінше, жадыдан сыртқы құрылымға беріледі. Паскаль тілінде пайдаланушы мен компьютердің мәліметтер алмастыру процесі программаның параметрлері болып қарастырылатын Input және Output стандартты файлдарының кемегімен іске асырылады. Программада өңделетін мәліметтерді Input файлынан оқиды да, өңделу нәтижесін Output файлына жазады. Стандартты Input файлы ретінде клавиатура, Output - файлы ретінде дисплей тағайындалған. Олар программаның параметрлеріндс корсестілмеуіде мүмкін. Жалпы, файлдардан мәліметтерді оқу және оларға жазу әрекеттерін read, writh, readln, writelnоператорлары орындайды. Әзірше біз осы операторлардың мәліметтерді клавиатурадан енгізудс және дисплейге шығаруда пайдалану жолдарын қарастырамыз.

Оқу операторы Read ~ программада өңделетін мәліметтердің берілген мәндерін оқып, операторда көрсетілген айнымалыларға меншіктейді.

Жазылуы: Read (<айнымалылардың идентификаторлары>);

Айнымалылардың идентификаторлары бір бірінен үтірмен ажыратылады.

Read операторы орындалғанда, программа жұмысын тоқтатьш, мәндердің клавиатурада терілуіне мүмкіндік береді. Мәндер міндетті түрде операторда айнымалылардың көрсетілу ретіменен, араларына ең болмағанда бір бос орын тасталып теріледі де, соңынан Enter (_) клавишы басылады. Мысалға, төменде программа үзіндісін келтірейік:

Vаг

А: геа1;

і: integer; x: char;

begin

Read (x, I, a)

….

 

Мәндердің терілуінің түрлері
бірінші түрі екінші түрі
‘n’ 30 0.1 0.1 30 ‘n’

Бірінші жағдайда еңгізу операторы дұрыс орындалып, х, і, а айнымалыларына өздерінің типтеріне сейкес n, 30, 0.1 мәндерін қабылдайды. Екінші түрінде а айнымалысының типі нақты, ал оған сәйкес мән ‘n’ символдық типті болғандықтан қателік туғызады. Егер бірнеше read операторы қатар жазылса, оларға қатысты мәндерді бір жолда тере беруге де болады.

ReadLn операторы Read операторындай, бірақ ReadLn oператорлары қатар жазылса, әрбір келесі енгізу операторына қажетті мәндер міндетті түрде жаңа жолдан терілуікерек. Мысалы, келесі екі программаның үзіндісінде бастапқы мәліметтердің клавиатурадан енгізілу жолдарын қарастырайық.

 

1. Var А, b, с, d: real; Begin Read (a, b); Read (c, d); ….. 2. Var А, b, с, d: real; Begin ReadLn (a, b); ReadLn (c, d); …..
Енгізу жолы: 10 20 30 40 Енгізу жолы: 10 20 30 40

Бірінші жағдайда а, b, с,d айнымалылардың мәндерін бір жолда теруге болады, екінші жағдайда а, b айнымалыларының мәндері терілгеннен кейін Enter клавишасы басылып с, d айнымалыларының мәндері жаңа жолдан теріледі.

Жазу операторы Writeпрограммадағы өрнектердің, мәліметтерді өңдеудің нәтижесін экранға шығарады.

Жазылу жалпы түрі: Write(<өрнектер>);

Өрнектер (тұрақты, айнымалы, тізбек, ...) үтір символымен бір бірінен ажыратылады.

Мысалы:

Write (102); {өрнек тұрақты түріндс берілген}
Write (x+y/c); {өрнектің нәтижесі шығарылады}

Write ('Нәтиже', а); {тізбек және айнымалы түрінде}

Write (y(i)) {өрнек индексті айнымалы түрінде}

Мәліметтерді баспаға шығаруды белгілі бір үлгімен ұйымдастыруға да болады. Writeоператорында баспаға шығарылатын мәлімсттер төмендегі үлгілердің бірімен жазылады:

Q Q:m Q:m:n,

мұндағы:

Q - нәтижесі баспаға шығарылатын өрнек. Өрнек типі бүтін, нақты, байттық, логикалық, символдық типтердің біріне жатады.

m, n - бүтін типті өрнектер;

m - мәлімет жазылатын аймақтың жалпы ұзындығы;

n - нақты типті сандарды жазуда ғана пайдаланып, санның үтірден кейінгі позицияларын көрсетеді, яғни соңғы үлгі нақты типке ғана қолданады.

Нақты типтен басқа типті мөліметтер Q, Q:m үлгілерімен беріледі; бірінші жағдайда Q өрнегінің нәтижесі солдан оңға қарай, екінші жағдайда көрсетілген аймақтың оң жағынан ығыстырылып жазылады.

Төменде корсетілетін форматтарда белгілердің мағынасы:

I, р, q- бүтін;

R - нақты;

_ - бос орын белгісі.

Мысалдар.

 

I мәні Өрнек Нәтиже
Write (I);
Write (I);
Write (I, I, I);

Нәтижені ұзындығы р-ға тең болатын өрістің оң жак шетіне І:р форматы бойынша шығару:

 

 

 

I мәні Өрнек Нәтиже
Write (I:6); __123 _______1 __1002
Write (I:10);
Write (I+I:7);

 

Нәтижені R:p:q форматы бойынша шығару (0<=q<=24);

 

I мәні Өрнек Нәтиже
123,04 Write (R:8:4); 123.0400 _-12.56 __-12.5600 _,
-12.56 Write (R:7:2);
-12,56 Write (R:9:4);

Writeln операторы write операторы тәрізді, тек оператордағы соңғы мәлімет экранға жазылғаннан соң, курсор келесі жолдың басына орналасады.

Енді экранға мәліметтерді шығару мысалдарын қарастырайық. Әр опреатордан соң мәліметтердің экранға қандай түрде жазылатыны түсініктеме түрінде келтірілген.

4.1-мысал.

Program write_1;

Var

I, j, k: integer;

a, b, c: real;

X, y: char;

L: Boolean;

begin

I:=111; j:=2; k:=47; a:=-0.1; b:=237.46; c:=0.0005;

X:=’d’; y:= ‘b’;

Write (i); {*111*}

Write (i, j, k); {*111247 *}

Writeln (i:4, j:3, k:4); {*111 2 47 *}

Writeln (i+k/j); {*5.7800000000E-04*}

Writeln (b, c); {*3.3746000E-02570000E-04*}

Writeln (a:5:1, b:8:2, c:8:3); {*-0.01 237.46 0.0005*}

Writeln (‘Паскаль’); {*Паскаль*}

Writeln (‘Паскаль’:10); {* Паскаль*}

Write (i=j); {*False*}

Write (i=j:7); {* False*}

Write (x, y); {*db*}

Write (x:3, y:3); {* d b *}

end.

Бұл программа орындалғанда операторының орналасуына байланысты мәліметтер үш жолға жазылады.

111111247 111 2 475.7800000000Е+02   3.37460000000Е-025.000000000Е-04 -0.1 237.46 0.0005   Паскаль ПаскальFalse Falsedb d b  

 

4.2.-мысал.А тауарының құны А = 2750 теңге. С тауарының құны B тауарының құнының 26% құрайды, ал В тауарының құны А тауарының 7 % құрайды. А тауарының құны 100% қымбаттаған кездегі А, В, С тауарлардың құнын табу керек.

Бұл мысалды шығару кезінде екі түрлі мәліметтер кездеседі, олар:

Бастапқы берілгендер: SA=2750 - А тауарчнчң бастапқы құны;

Нәтиже: А тауарының құны - SA;

В тауарының құны - SB;

С тауарының құны - SC.

Есепті шығару үшін берілген шарттарды қолдану керек: А тауары 100 %-ға қымбаттады. Яғни оның жаңа құны келесі формуламен анықталады: SA = 2*SA; В тауарының құны SB = 0.07*SA формуласымен анықталады; ал С тауарының құны SC = 0,26*SB формуласымен есептеледі. Бұл есепті шығаратын программаны келтірейік:

Program baga;

Const

SA=2750;

Var

SA, SB, SC: real;

Begin

SA:=SA*2;

SB:=0.07*SA;

SC:= 0.26*SB;

Wrireln(‘SA=’, SA, ‘SB=’, SB, ‘SC=’,SC);

End.

 

4.3.-мысал.х нақты саны берілген, t функциясының х-ке сәйкес мәнін есептейтін программа жазу керек.

 

t = + ln +

Берілген шама - х-тің мәні;

Нәтиже - t айнымалысының мәні.

Program M3;

Var

x, t: real;

Begin

write(‘x=’); read(x);

t:=1/cos(x)+ln(abs(tg(x/2)))+x/(1+x/(1+x));

end.

 

4.3. Тармақталу операторы

 

Егер де есептеу процесінің орындалу барысы қандай да бір шарттың орындалуына байланысты болса, онда бұл процесс тармақталу процесі болып табылады. Ал бұл есептеу процесінің алгоритмі тармақталу құрылымды және де әрекеттердің бағыты олардың тармақтарыдеп аталады.

Алгоритмнің маңызды ерекшеліктерінің бірі - нәтижеге жету нұсқауларын нақтыландырмай, пайдаланушыға өз іс-әрекеттерінің мазмұнын ақылға салып пайымдауын қажет еткізбеуі. Мысалы, пайдаланушы А, В, С тауарларының жаңа құнын қалай есептеу керектігін ойламай-ақ, жоғарыда құрылған нұсқаулар тізбегінен тұратын алгоритмді орындай беруіне болады.

Тармақталу операторы көрсетілген шартқа байланысты құрамына кіретін операторлардың орындалу/орындалмауын қамтамасыз етеді.

Жазылуы: If <шарт> then <1 оператор> else <2 оператор>;

Мұндағы: - 1 оператор, 2 оператор - жай немесе құрама операторлар болуы мүмкін;

- шарт - кез келген қатынас операциясы немесе логикалық өрнек.

Бұл оператордың жұмысы төмендегі суретте көрсетілген.

 

 
 


True False

ақиқат жалған

 

 

12-сурет. Шартты тармақталу

 

Мұндағы шарт логикалық өрнек болғандықтан, ақиқат (true) немесе жалған (false) нәтижелерінің бірін ғана қабылдай алады. Осы нәтижеге сәйкес операторлар тобының біреуі таңдалып алынады. Шарт қатынас немесе логикалық өрнектер түрінде жазылады.

Мысал. If x>=0 then writeln (‘x-оң сан’)

else writeln (‘x-теріс сан’)

Мұнда тармақтарынан соң жазылған операторлар - жай операторлар.

Тармақталу операторларында шарттар күрделі де болуы мүмкін. Күрделі шарт логикалық амалдардың (and, or, not) көмегімен құрылады. Келесі мысалдарда шарттың күрделі түрін және тармақтарынан соң орналасқан операторлардың құрмалас болып қалуын қарастырайық. сонымен қатар тармақталу операторларының бірінің ішіне бірінің сатылап орналасу жолдарының бір вариантын көрсетейік.

4.4-мысал. x, y сандары берілген. егер осы сандар теріс болса, оларды абсолют шамаларымен айырбастаңыз; біреуі ғана теріс болса, әрқайсысын 0,5-ке көбейтіңіз; екеуіде оң болса, оларды 10 есе арттырыңыз.

Бастапқы берілгендер: x, y - кез келген нақты сандар;

Нәтиже: x пен y-тің өңделген мәндері;

Осы мысалды шығаруға арналған программа:

Program M44;

Var

x, y:real;

Begin

Read (x,y);

If (x<0) and (y<0) {*егер x-те, y-те теріс болса*}

then {*сыртқы If-тің тармағы*}

Begin

x:= abs(x);

y:= abs(y);

End;

else {*сыртқы If-тің тармағы *}

If (x<0) or (y<0){*екеуінің біреуі теріс болса*}

then {*ішкі If-тің тармағы*}

Begin

x:= x+0.5;

y:= y+0.5;

End;

else {*ішкі If-тің тармағы*}

Begin {*бұл тармақ - екеуіде оң*}

x:= x*10; {*болғанда орындалады*}

y:= y*10;

End;

write (x,y);

End.

 

Мұнда ішкі және сыртқы тармақталу операторлары бағыттамалармен, осы оператордың тармақтарындағы құрмалас операторлар фигуралы жақшалармен көрсетілген. программа end сөзінен кейін қойылған «;» символына назар аударыңыздар. Бұл «;» символы тармақталу операторларының соңын көрсетеді. «;» символы дұрыс қойылмауы, тармақталу жүйесін бұзады да, программада қателік тудырады немесе нәтиженің дұрыс табылмауына әсер етеді.

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

Жазылуы: If<шарт> then <оператор>;

Жай түрде тармақталу операторы шарттың нәтижесі «ақиқат» болса операторды орындайды да, «жалған» болған жағдайда if операторының сыртына шығып кетеді. Шартты оператордың қысқа түрінің орындалуын келесі схемедан (13-сурет) көруге болады.

 
 


 

True False

 

ақиқат жалған

 

13-сурет. Тармақталу операторының қысқа

түріндегі орындалуы

4.5-мысал.Кез келген екі сан берілсін. Егер бірінші санның абсолют шамасы екінші санның абсолют шамасынан артық болса, онда біріншісін бес есе азайту керек, әйтпесе екі санды да өзгеріссіз экранға шығару керек.

Бұл мысалдың программасытөменде келтірілген.

 

Program M45;

Var

x, y: real;

Begin

read (x, y);

If abs (x) > abs (y) then x:=x/5;

write (x, y);

End.

 

Таңдау операторы.Таңдау операторы case - of тармақталу if операторының жалпыланған түріне жатады. Бұл оператор бірнеше мүмкін болатын жағдайдың біреуін таңдап алуға өте ыңғайлы. Оператор көрсеткіштен және әрқайсысы бір немесе бірнеше таңдау тұрақтыларымен таңбаланған операторлар тізбегінен тұрады.

 

Жазылуы: Case <көрсеткіш> of

< тұрақтылар 1-тізімі >:< 1-оператор >;

< тұрақтылар 2-тізімі >:< 2-оператор >;

.....

< тұрақтылар N-тізімі >:< N-оператор >;

Else < оператор >

End;

Мұндағы көрсеткіш нәтижесі нақты типтен басқа кез келген жай тип болатын өрнек.

Таңдау операторы орындалғанда, алдымен көрсеткіштің мәні табылып, сол мәнге сәйкес таңбалы оператор орындалады. Егер де көрсеткіштің мәні бірде-бір таңбаға сәйкес келмесе, else қызметші сөзінен кейінгі оператор орындалады. Әрбір тізімдегі таңдау тұрақтыларының саны әрқалай болуы мүмкін, олар бір-бірінен үтір арқылы ажыратылады немесе аралықпен көрсетіледі. Таңдау тұрақтыларының типі көрсеткіштің типімен міндетті түрде сәйкес келуге тиіс. Төменде case операторының жазылу түрлеріне мысалдар қарастырылады.

Таңдау тұрақтылары аралық типпен берілген:


<== попередня лекція | наступна лекція ==>
Процедуралар мен функциялар тарауы. | Case N of


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн