Ф-об-001/033 Ќазаќстан республикасы білім жєне



бет2/4
Дата25.04.2016
өлшемі3.33 Mb.
#88183
1   2   3   4

Жазылуы: Var <айнымалылардың аттары>: integer;
Байттық тип бүтін тип тәрізді,айырмашылығы мәндері 0-ден 255-ке дейінгі аралықты қамтиды және byte стандартты айнымалысымен сипатталады.

Жазылуы: Var < айнымалылардың аттары > : byte;
Нақты типті сипаттауға real стандартты айнымалысы алынады.

Жазылуы: Var < айнымалылардың аттары > : real;
Логикалық типті айнымалылар тек қана True (ақиқат) және False (жалған) мәндерінің бірін қабылдай алады. Бұл тип Boolean стандартты айнымалысымен сипатталады.

Жазылуы: Var < айнымалылардың аттары > : Boolean;
Логикалық типті айнымалының мәні бір байтқа орналасады.

Символдық тип char стандартты айнымалысымен сипатталады.

Жазылуы: Var < айнымалылардың аттары > : char;
Әр символға сәйкес 0 мен 1 цифрларының тізбегін сол символдың екілік бейнесі деп атайды.Символдардың бейнесі бір байтқа жазылатындықтан,char типті шамалардың мәндері бір ғана символ бола алады.Символдық тұрақтылар екі жағынан да дәйекшеге алынып жазылады.

Жасанды жай типтер

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



Атап өту типі айнымалылардың қабылдай алатын мәндерін тегіс көрсету арқылы анықталады. Жеке мәндер үтірлермен айырылып,жақшаға алынады.

Жазылуы: Type <типтің идентификаторы>=(1-ші мән,2-ші мән, ...);

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

Жазылуы: Type <типтің аты>=<1-тұрақты>..<2-тұрақты>;

Var <айнымалылар> : <тип>;



Дәрежелік өрнектер және олардың түрлері

Өрнектердің орындалуы негізгі үш фактормен анықталады :

.Дәрежелік операциямен

.Реттелген операциялық өрнектермен

.Жақшаларды қолдану арқылы

Барлық дәрежелік операциялар төрт топқа бөлінеді. I (жоғарғы) операциялық өрнектер бірінші орындалады. IV (төменгі) операциялық өрнектер ең соңында орындалады. Тең операциялық өрнектер солдан оңға қарай орындалады, кейде компилятор генерацияның аса оптимальды реттелген кодына сәйкес болады. Ал жақшалар жай реттелген операцияның түрін өзгертуге қолданылады. Жақшалы амалдар ең алдымен жеке операнд ретінде қарастырылады, ал кейін оның нәтижесін операцияны орындауға қолданылады.

Дәрежелік операциялар


Дәрежесі

Операция

Операциялық категориялар

Бірінші (алғашқы)

+ -

not


@

Унарлы операция

Екінші

* /

div mod


and

sh1 shr


Бинарлы операцияның көбейту типі

Үшінші

+ -

or xor


Бинарлы операцияның қосылу типі

Төртінші (төменгі)

= <>

< >

<= in >=

Бинарлы операцияның

қатынас типтері


Күрделі өрнектерге мысал:

A*(((a-b/c)*2+3)/(x + y)-d*z)-12(A<>B) and ((I

Өрнектердің жіктелуі

Өрнектердің жіктелуі келесі топтарға бөлінеді:

1.Арифметикалық амалдар:

.Унарлы: +, -

.Бинарлы: +,-,*,/,div,mod

2.Қатынас амалдары:

=,< , >,<>,<=,>=

3.Бульдік(логикалық) амалдар:

not,and,or,xor

4.Логикалық разрядты және жылжымалы амалдар:

not ,and ,or ,xor,sh1,shr

5.Қатарлы өрнек (конкатенация)

+

6.Операциялық амалдар:



+,-,*,in,<=,>=
7.Адресті алу операциясы:

@


Арифметикалық өрнектер

Арифметикалық өрнектерде арифметикалық амалдар қолданылады да, өрнектің нәтижесі нақты немесе бүтін сандар болады.

Арифметикалық өрнектің қарапайым түрлері: тұрақты,айнымалы және функция, өрнекке қатысты айнымалылардың мәндері алдын ала анықталуы қажет.Арифметикалық амалдар integer(бүтін),byte, real(нақты) типті шамалармен орындалады да, нәтижесінің типі осы шамалардың типіне байланысты анықталады.

Төменде Паскаль тілінде қолданылатын арифметикалық өрнектер және олардың орындалу мүмкіндігі кему ретімен көрсетілген:



+,-,*,/, div, mod

Қосу(+),алу(-),көбейту(*) және бөлу(/) амалдары арифметикалық өрнектерде әдеттегідей орындалады. Бір өрнекте integer,byte,real типті операндтарды пайдалануға болады.Бөлу өрнегінің нәтижелік типі қашанда нақты (real),ал қосу,көбейту,алу өрнегінің нәтижелері,егер де операндтардың екеуі бүтін (байттық) типті болғанда бүтін(байттық),қалған жағдайларда нақты болады.

+,-,*,/ түрдегі өрнектердің орындалуы ерекше түсіндірілмейді. Тек олардың әртүрлі типтерін есте сақтау керек,тип нәтижесі аса қамтылған болады, бөлу өрнегінің нәтижесі әрдайым нақты сан болады.

div операторының нәтижесі бүтін санақты белгі, нәтиженің тең бүтін бөлігі ол- бірінші операндтың екінші операндқа бөлінуі.

mod операторының нәтижесі бүтін санақты белгі болады да,қалдық бөлігі

бірінші операндтан екінші операндқа бөлінеді.



Бүтіндей бөлу (div) өрнегі бөліндінің тек қана бүтін бөлігін анықтайды.Өрнекке қатысты шамалар бүтін (integer) типті болады.

Мысалы: 13 div 5 2

10 div 3 3

5 div 6 0

Қалдық табу (mod) өрнегі бүтін санды санға бөлгендегі қалдықты анықтайды,өрнектің нәтижесі де бүтін(integer) типті болады.



Мысалы: 11 mod 5 1

10 mod 3 1

14 mod 5 4

Арифметикалық өрнектердің қатесіз жазылуы және нәтиженің дұрыс табылуы үшін төмендегі ережелерді ескеру қажет:



  1. Екі амал қатар жазылмайды(А+ -В өрнегі дұрыс жазылмаған,өрнек А+(-В) түрінде жазылуы керек).

  2. Көрнекілігі жоғары өрнектер бірінші орындалады (мына өрнекте x*y-d/4 алдымен көбейту мен бөлу амалдары,сонан соң алу амалы орындалады).

  3. Егер барлық амалдардың орындалу көрнекілігі бірдей болса,онда олар солдан оңға қарай орналасу ретімен біртіндеп орындалады.

  4. Алдымен жақшаның ішіндегі амалдар орындалады.

( (a+b)*(c+d) өрнегінде көбейту амалы ең соңынан орындалады).

  1. Математикалық мағынасы жоқ өрнекті жазуға болмайды,мысалы, нөлге бөлу, нөлді логарифмдеу,теріс саннан түбір табу т.с.с.

Логикалық өрнектер



Логикалық өрнектің нәтижесі ақиқат(true) немесе жалған(false) болады.Логикалық өрнектер -логикалық тұрақты, логикалық айнымалы, логикалық функциялардан және логикалық қатынас амалдарынан және жақшалардың көмегімен құрылады.

Қатынас амалдары (=,<>,<,>,<=,>=) арифметикалық өрнектің нәтижелерін салыстырып, ақиқат немесе жалған екендігін анықтайды.Мысалы: 14<11+4-ақиқат себебі, алдымен арифметикалық өрнектер есептелініп,сонан соң нәтижелері салыстырылады.Салыстырылатын шамалар файлдық типтен басқа кез келген типті болады.

Логикалық -өрнектерге қатысты шамалардың типі логикалық болуы қажет. Амалдардың орындалу көрнекілігі:not,and,or

Паскальда логикалық өрнектер қатынас амалдарынан бұрын орындалады.

Мысалы:А<10 and D<100 өрнегінде алдымен 10 and B амалы орындалуы керек, логикалық амал логикалық типті шамалармен орындалатын болғандықтан,бұл жерде қателік туады,сондықтан амалдардың орындалу ретін жақшамен көрсеткен жөн, яғни былай жазған дұрыс: (A<10) and(B<100). Математикада жиі кездесетін қос теңсіздік -жақша мен логикалық and өрнегі.

Мысалы: 1<=x<=50 теңсіздігі былайша (1<=x) and (x<=50) жазылады.Программалау тілдерінде логикалық өрнектер шартты операторлардың жұмысын ұйымдастыруда пайдаланады.

Қатынас таңбалары

Қатынас таңбалары математикалық тұрғыдан қарастырылады. Бұл өрнектердің нәтижесі ретінде бульдік мән (ақиқат,жалған) болып табылады. Қатар мәндеріне қатынас таңбаларын қолданғанда, солдан оңға қарай ASCII таңбалық кодымен орындаймыз.

Барлық қатар мәндері, ұзындық өлшеміне тәуелді емес.Алайда,таңбалық тип сол сияқты қатар тип белгілерімен ұзындықтары арқылы қарастырылады. Операндтарды салыстырғанда бағытталушы тип тек =(тең) және <>(тең емес) өрнектерінде ғана қолданылады. Егер де екі бағытталушы тип дәл сол объектіге жіберілсе,онда олар тең болады.


өрнектер

амалдар

операнд типтері

нәтижелік тип

=

<>

тең

тең емес


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

бульдік

<

>

<=

>=


кіші

үлкен


кіші немесе тең

үлкен немесе тең



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

бульдік

1.3. Қарапайым операторлар және оларды қолдану

Оператор дегеніміз – белгіл бір шамаларға жүргізілетін орындалу жолдарын көрсететін нұсқау. Паскальда программаның негізгі бөлімі нүкте-үтірмен (;) ажыратылып жазылған операторлар тізбегінен тұрады. Операторлар мынадай екі топқа бөлінеді:

1.Жай операторлар.

2.Құрама оперторлар.

Жай оператор дегенміз – құрамына басқа операторлар кірмейтін операторды айтамыз.

BEGIN

Оператор

END.



Жай операторлар


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

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

Паскальда қолданушы мен компьютердің мәліметтер алмастыру процесі программаның параметрлері болып қарастырылатын Input және Output стандартты файлдарының көмегімен іске асырлады. Программа өңделетін мәліметтерді Input файлынан оқиды да, өңделу нәтижесін Output файлына жазады. Стандартты Input файлы ретінде пернетақта, Output файлы ретінде дисплей тағайындалған. Олар программаның параметрлерінде көрсетілмеуі де мүмкін.

Жалпы, файлдарадан мәліметтерді оқу және оларға жазу әрекеттерін Read, Write, Readln, Writeln операторлары орындайды. Әзірге біз осы операторлардың мәліметтерді клавиатуадан енгізуге және дисплейге шығаруға пайдалану жолдарын қарастырамыз.



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

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

Read(а1,а2,а3,…,аn);

Мұндағы а1,а2,а3,…,аn – айнымалы атаулары, оларды енгізу оператордың параметрлері деп те атайды. Айнымалылардың идентификаторлары үтірмен ажыратылады.

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

Readln операторы Read операторындай, бірақ Readln операторлары қатар жазылса, әрбір келесі енгізу операторына қажетті мәндер міндетті түрде жаңа жолдан терілуі керек. Мысал үшін екі программа үзіндісін және соларға сәйкес айнымалылардың мәндерін пернетақта теру жолдарын келтірейік:

1) var a,b,c,d:real; 2) var a,b,c,d:real;

Begin Begin

Read (a,b); Readln (a,b);

Read (c,d); Readln (c,d);

… …

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



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

Жазылуы:

Write (а1,а2,а2…аn);

Write («өрнектері»);

Мұндағы а1,а2,а2…аn – жай айнымалылар немесе апотрофішіне алынған символдар тобы болуы мүмкін.

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

Бүтін және нақты сандарды щығару үшін сандардың форматын беру қажет.

Мысал. Write (555); {өрнек тұрақты түрінде берілген}

Write (a+b/c); {өрнектің нәтижесі шығарылады.}

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

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

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

Бүтін және нақты сандарды шығару үшін сандардың форматын беру қажет. Формат айнымалы атынан соң қос нүкте арқылы жазылады. Нақты сан үшін формат екі саннан тұрады :

1-санға берілетін барлық орын

2- үтірден кейін алынатын бөлшек бөлік саны.

Мысал:

WRITE(Y:5:2)



Мұндағы 5-нәтижеге берілген барлық орын, 2-үтірден соң алынатын бөлшек бөлік саны.

Жалпы түрде:

Бүтін сан үшін WRITE (N: S) немесе WRITE (‘K=’.N:S)

Мұндаңы S- формат, яғни бүтін санға берілген орын.

Нақты сан үшін :WRITE (‘Y=’. Y:8 :3).

Жалпы түрде:WRITE (Y’.=Y : V: N).

Мұндағы – М барлық сан үшін берілген орын саны, N бөлшек бөліктің орындарының саны. Егер операторда формат көрсетілмесе, онда нәтижеде қанша орынды сан алынса, сол сан экранға шығады.

Айталық, Х=7, Ү=15, Z=11, ал, R=450,08 болсын оларды экранға шығарудың әр түрлі жағдайын көрсетейік.

Оператордың жазылуы: Экранда

wrte (X,У) 715

write (X,’_ _’,Y); 7_ _15

write (‘X=’,X); X:=7

write (X,’ ‘:3,Z); 7 11

write (‘X+Y=’,X+Y); X+Y=22

write (Z,’-соңы‘); 11-соңы

write (‘бітті’); бітті

write (R); 4.5008+2
Меншіктеу операторы

Меншіктеу операторы барлық тілдерде пайдаланылатын негізгі оператор болып табылады.

“Мені меншікте” деген бұйрықты орындайтын операторды меншіктеу операторы дейді.

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



Жазылуы :

< айнымалы > : = < өрнек > ;

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

Меншіктеу операторының жалпы жазылуы түрі төмендегідей:

W:=Z;


Мұндағы: W- айнымалы атауы, “:=” - меншіктеу белгісі, Z – арифметикалық өрнек.

Бұл оператор екі міндет атқарады:

1.Айнымалылардың белгілі мәндер бойынша Z – арифметикалық өрнегінің мәнін есептейді.

2.Есептелген мән W атауына меншіктеледі (жазылады), яғни мән W-ге сәйкес зерде ұяшығына орналасады. Мұнда әдеттегі теңдік “=” белгісін шатастырмау керек. Олар тек түр жағынан ғана емес, мағынасы жағынан да өзгеше. Мысалы, х=9 өрнегі х-тің мәні 9-ға дегенді білдіреді де, х=х+5 өрнегі дұрыс мағына бермейді. Ал х:=9 өрнегі х нөмері бар ұяшыққа 9 санын саламыз дегенді білдіреді. Ендеше х:=x+5 өрнегі дұрыс, өйткені бұл бұрынғы х ұяшығында тұрған санға

5 санын қосып х шәшігіне қайта орналастыр дегенді білдіреді.

Z={тұрақты, айнымалы атауы, функция, өрнек} – түрінде берілуі мүмкін.

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

var i, j: integer ;

a, b: real ;

x, y: char ;

I, f : boolen;

онда мына меншіктеу оператоадары орынды :

і:=k + 1d 1vj ;

a:=b\c ;


x : = y:

i: = a=b ;

f = ( a = b ) and c

f : = k *j mod 2;

a : = k*j mod 2;

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

Нақты типті шаманы бүтін типті айнымалыға меншіктеу қажет болған жағдайда арнайы Round немесе Trunc функцияларын пайдалану керек. Rount функциясы нақты шаманы дөңгелектеп , бүтін шамаға айналдырады ( Rount ( 0,35 ) = 0 , Rount (1,85) = 2, Rount (-3,14) =-3 , Rount (-3,67)= - 4 ). Trundc функциясы нақты шаманың бүтін бөлігін ғана алып, бүтін типті шамаға айналдырады (Trunc(0.85)=0,Trunc(-3.14)=-3)
1.4. Тармақталу және таңдау операторлары

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

Қарапайым операторға мыналар жатады:


  • Меншіктеу операторы (:=);

  • Шартсыз өту операторы (goto);

  • Процедура кіретін оператор (функция).

Құрылымдық оператор келесі операторлардан тұрады:

  • Құрама оператор (ол begin деген сөзден басталып, еnd сөзімен аяқталады);

  • Шартты оператор (if, case);

  • Қайталау оператор (repeat, while, for);

  • Біріктіру операторы (with);


Шартсыз өту операторы

Паскальда шартсыз өту операторын goto операторы және break, continue, exit, halt процедуралары кіреді. Шартсыз өту операторы программада жиі қолданылады.

Шартсыз өту операторы (goto) қарапайым оператор. Ол программа жұмысын өзгертіп тұрады. Шартсыз өту операторының жалпы түрі мынандай:

GOTO <таңба>

Мұндағы GOTO – Турбо Паскаль тілінде келесі шартты орындайды, ал <таңба> - идентификатор немесе 0 ден 9999 дейінгі бүтін сан. Егер программада бұл оператор болса, онда келесі Label-ға өтеді. Таңбадан кейін қос нүкте қойылады (<таңба>:).

Жалпы алғанда таңбаларды программада қолданбаған жөн. Ал егер қажет болған кезде келесі екі ережені есте сақтау керек:


  1. Таңбаларды программаның орындалу ретін тек алға қарай (төмен қарай) орындалуы керек. Ал программаның ретін кері қарай орындалуы қажет болса циклді қолдану керек.

  2. Таңба мен программаның орындалу ретін өзгертетін оператор ара қашықтығы жақын болуы тиіс. Олар бір бетте немесе бір экранда орналасқаны жөн.

Мысалы:

Program esep;

Uses crt;

Label 1;

Var x, y, s, z: real;

Begin clrscr;

Read (x, y); goto 1;

S:=2*x+y;

1: z:=x/y;

write (‘s, z =’, s, z);

readkey; end.

Break процедурасы циклді жылдам аяқтауға мүмкіндік береді.

Continue процедурасы жаңа итерациялық циклді бастауға және соңғы итерацияны аяқтауға мүмкіндік береді.

Exit прцедурасы жұмысты аяқтауға көмектеседі.

Halt (n) процедурасы n кодты программаның жұмысын аяқтауға мүмкіндік береді (n-бүтін сан). Соңында n коды ERRORLEVEL командасының көмегімен MS DOS операциясының системасын талдайды.

Тармақталу командасы

Құрылыста қарай күрделі болып саналатын операторлардың (тармақталу, таңдау, қайталау) бірі тармақталу операторына тоқталайық.

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

Жалпы түрі:

If <шарт> then <1-операторы> else <2-операторы>;

Мұнда еlse қызметші сөзінің алдына “;” қойылмайды.



Қысқа түрі:

If <шарт> then <операторы>;

Шартты оператордың синтаксистикалық диаграммасы төменде көрсетілген.




Берілген оператор келесі бейнеде орындалады. Алдымен if қызметші сөзімен шарт тексеріледі. Нәтижесі бульдік тип болуы шарт. Егер шарт мәні true болса, онда then қызметші сөзінен кейінгі оператор орындалады. Егер шарттың есептеу нәижесі false болса, онда else қызметші сөзінен кейінгі оператор орындалады. Егер else қызметші сөзінен кейін шарт орындалмаса, онда басқару шарттан кейінгі операторға беріледі. Шарт қатынас немесе логикалық өрнектер түрінде жазылады.

If…ten операторының құрылымы 1-суретте көрсетілген:


If <шарт>

Then

Else

оператор 1

.

.



.

оператор n



операторЕ 1

.

.



.

операторЕ n




1-сурет. If…then операторының құрылымы

Мысалы:

if x

else

max:=x;

Орындалу кезінде қабаттасқан шартты оператор синтаксистикалық біркелкі болмауы мүмкін, ол келесі схемада бейнеленген:



if Expr1 then if Expr2 then Stmt1 else Stmt2

Берілген құрылымды келесі жолмен түсіндіреміз:



if Expr1 then

begin

if Expr2 then stmt1

else

stmt2

end;

Қысқаша айтқанда, else қызметші сөзі if қызметші сөзімен тығыз байланыста.

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

Х [0;1] жатады. If (x>=0) and (x<=1) then writeln (‘жатады’) else writeln (‘жатпайды);

Таңдау командасы

Паскаль тілінде көп қолданылатын операторлардың бірі case…of операторы. Бұл операторы if…then қабаттасқан оператормен тығыз байланыста. Мәні екіден артық болғанда case…of операторын қолданамыз.

Паскаль тілінде таңдау командасы: case m of

end;

Мұндағы case – жағдай қызметші сөзі;




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




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

    Басты бет