Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AEP_LEKTsII.doc
Скачиваний:
90
Добавлен:
28.03.2015
Размер:
1.27 Mб
Скачать

6.2 Өрнектер. Арифметикалық және логикалық өрнектер

Бүтін шамаларға (integer типі) қолданылатын келесі арифметикалық операциялар анықталған: * (көбейту), div (бүтін бөлу), mod (бөлудің қалдығын есептеу), + , - (қосу және алу); бұл операциялар басымдылық реті бойынша келтірілген. Мысалы: 25 div 4 = 6; 25 mod 4=1. кейбір стандартты функциялар бүтін нәтиже қайтарады (функцияның аргументі жай жақшаларға алынады): abs(x) – бүтін х шаманың абсолют мәні; sqr(x) - х мәннің квадраты; trunc(x) – нақты х шаманың бүтін бөлігі; round(x) – дөңгелектендіру ережесі бойынша нақты х шамасынан алынған бүтін сан; random(x) – 0-ден х-ке дейінгі аралықтан алынған кездейсоқ сан. Мысалы: trunc(4,7)=4; round(4.7)=5; sqr(3)=9. byte типті деректер үшін анықталған операциялар мен функциялар integer типті деректер үшін анықталған операциялар мен функциялар бірдей.

Нақты шамаларға қолданылатын келесі операциялар анықталған: *, +, -, /, және сонымен қатар аргументі нақты немесе бүтін болатын стандартты функциялар: abs(x), sqr(x), sin(x), cos(x), arctan(x), ln(x), exp(x), sqrt(x) – х-тің түбір асты, int(x) - х-тің бүтін бөлігі, random - 0-мен 1 аралығындағы кездейсоқ сан. Көрсетілген операциялар және функциялар нақты нәтижені қайтарады.

Логикалық шамаларға қолданылатын келесі операциялар: not - терістеу, and -конъюнкция, оr - дизъюнкция. Логикалық odd(x) функция егер бүтін х сан тақ болса true мәнін қабылдайды, ал жұп болса false мәнін қабылдайды.

Барлық символдардың жиыны символдық шамаларды (char типі) құрайды, олар реттелген болып табылады, сонымен қатар: 'А' < 'В'< 'С <..< 'Z', 'а' < 'b' <...< 'z’, '0' < ‘1’ <..< '9'.

Паскаль екі жолдық операндтарды біріктіру үшін + (конкатенация) операциясын пайдалануға мүмкіндік береді. s және t жолдық, символдық немесе пакеттелген жолдық типке ие болатын s + t операцияның нәтижесі s пен t - ның конкатенациясы болады. Нәтиже кез келген жолдық типке үйлесімді болады. Егер нәтижелі жолдың ұзындығы 255 символдан асып кететін болса, онда ол 255 символға дейін қысқартылады.

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

Оның түрі: Идентификатор := өрнек;

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

Мысалдар. a:=2*pi*r; p:=(a+b+c)/2; z:=sqrt(sqr(x)+sqr(y))

Өрнектерді жазғанда Паскальда қабылданған есептеу ретін ескеру керек. Өрнектер операциялар мен операндтардан тұрады. Операциялардың көбісі бинарлы болып табылады, яғни екі операндты қамтиды. Қалған операциялар унарлы және жалғыз операндты қамтиды. Бинарлы операцияларда кәдімгі алгебралық бейнелеу пайдаланылады, мысалы: a+b. Унарлық операцияларда операция әрдайым операндтың алдында болады, мысалы: -b. Күрделілеу өрнектерде орындалу реті операциялардың басымдылықтарына сәйкес:

Операция

Басымдылық

Операция түрі

@, not

*, /, div, mod,

and, shl, shr

+, -, or, xor

=, <>, <, >,

<=, >=, in-

бірінші (ең жоғары)

екінші

үшінші

төртінші

(ең төменгі)

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

көбейту операциясы

қосу операциясы

қатынас операциясы

Операциялардың үлкенділігін (басымдылығын) анықтау үшін негізгі үш ереже бар:

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

  • басымдылықтары бірдей болатын екі операциялардың арасындағы операнд сол жақта орналасқан операциямен байланысады.

  • жақшаларға алынған өрнек, орындалудың алдында жеке операнд сияқты есептелінеді.

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

Егер not операцияның операнды бүтін типті операнд болып табылса, онда нәтижеде бүтін типті болады. Егер or, and немесе xor операцияларындағы операндтардың екеуі де бүтін типті болса, онда нәтиженің типі де осы екі операндтардың типіндей болады. not операциясы унарлы операция болып табылады. Бұл операциялардың нәтижелері кәдімгі бульдік логикаға сәйкес. Мысалы, a and b өрнек ақихат (Тruе) болады тек егер екі a және b операндтар ақихат (Тruе) мәндерге ие болғанда ғана. i shl j және i shr j операциялары i мәнін сол жаққа немесе оң жаққа j битке жылжытады. Нәтиженің типі i –дің типімен бірдей.

6.3 Стандартты ішкі программалар (кірістірілген функциялар мен процедуралар)

Паскаль тілінде типтік операциялардың орындалуын қамтамасыз ететін құрамына кірістірілген көптеген функциялар бар.

Pascal ABC жүйесінің стандартты System модуліне шолу.

System модулі кез келген программаға автоматты түрде қосылады. Ол стандартты деп аталатын бір қатар процедураларды, функцияларды, типтерді қамтиды.

  • жалпы стандартты процедуралар мен функциялар;

  • жолдармен жұмыс жасауға арналған стандартты процедуралар мен функциялар;

  • файлдармен жұмыс жасауға арналған стандартты процедуралар мен функциялар;

  • жадымен жұмыс жасауға арналған стандартты процедуралар мен функциялар;

  • жүйелік стандартты процедуралар мен функциялар;

  • стандартты тұрақтылар;

  • ерекшелеулердің стандартты класстары.

Бұл функциялармен Pascal ABC анықтамалық жүйесінен толығырақ танысуға болады. Мысалы, жалпы стандартты процедуралар мен функциялардың құрамы келесі кестеде келтірілген.

Кесте 6.1 Жалпы стандартты процедуралар мен функциялар

Аталуыжәнепараметрлер

Процедура н/ефункция

Параметрлердің типтері

Қайтарылатын мәннің типі

Амал

Read(a,b,...)

процедура

a,b,c–жай н/е string типті айнымалылар

 

клавиатурадан мәндерді a,b... айнымалыларына енгізеді

Write(a,b,...)

процедура

a,b,c–жай, string немесе нұсқағыш типті өрнектер

 

a,b...мәндерін шығару терезесіне шығарады

Readln(a,b,...)

процедура

a,b,c–жай немесе string типті айнымалылар

 

клавиатурадан мәндерді a,b... айнымалыларына енгізеді, одан кейін ағымдағы енгізу жолындағы қалған барлық символдарды өткізіп жібереді.Егер процедураның параметрлері көрсетілмесе, онда Enterклавишасы басылғанша программа орындалуында паузаны жүзеге асырады.

Writeln(a,b,...)

процедура

a,b,c–жай, string немесе нұсқағыш типті өрнектер

 

a,b...мәндерін шығару терезесіне шығарадыда келесі жолға өтуді жүзеге асырады. Егер процедураның параметрлері көрсетілмесе, онда келесі жолға өтуді ғана жүзеге асырады.

Abs(x)

функция

x-integer,real,complex

параметрдің типімен сәйкес

х-тің абсолютті мәнін (модулін)қайтарады

Sqr(x)

функция

x-integer,real,complex

- // -

х-тің квадратынқайтарады

Sqrt(x)

функция

x-real,complex

- // -

х-тің түбір астынқайтарады

Sin(x)

функция

x-real,complex

- // -

х-тің синусынқайтарады

Cos(x)

функция

x-real,complex

- // -

х-тің косинусынқайтарады

Ln(x)

функция

x-real,complex

- // -

х-тің натурал логарифмін

Exp(x)

функция

x-real,complex

- // -

e –нің x дәрежесін қайтарады (e=2.718281...)

Arctan(x)

функция

x-real,complex

- // -

х-тің арктангенсінқайтарады

Power(x,y)

функция

x,y-real

real

х–тің удәрежесін қайтарады

Conj(z)

функция

z-complex

complex

z-ке кешенді түрде ілесетін санды қайтарады

Carg(z)

функция

z-complex

real

кешенді zсанның ((-Pi,Pi] аралығындағы) аргументін қайтарады

Round(x)

функция

x-real

integer

х-ті ең жақын бүтінге дейін дөнгелектеу нәтижесін қайтарады

Trunc(x)

функция

x-real

integer

х-тің бүтін бөлігінқайтарады

Int(x)

функция

x-real

real

х-тің бүтін бөлігінқайтарады

Frac(x)

функция

x-real

real

х-тің бөлшек бөлігінқайтарады

Ord(x)

функция

x-реттіктип

integer

реттіктиптегі мәннің нөмірін қайтарады

Chr(x)

функция

x-integer

char

кодых болатын символды қайтарады

Odd(x)

функция

x-integer

boolean

х – тақ болсаTrue және керісінше жағдайда Falseқайтарады

Inc(x)

процедура

x-реттіктип

 

х – ті 1-ге арттырады

Dec(x)

процедура

x-реттіктип

 

х – ті 1-ге кемітеді

Inc(x,n)

процедура

x-реттіктип,

n-бүтінтип

 

х – ті n-ге арттырады

Dec(x,n)

процедура

x-реттіктип,

n-бүтінтип

 

х – ті n ге кемітеді

Pred(x)

функция

x-реттіктип

параметрдің типімен сәйкес

реттіктиптегі алдыңғы мәнді қайтарады

Succ(x)

функция

x-реттіктип

параметрдің типімен сәйкес

реттіктиптегі келесі мәнді қайтарады

Random(x)

функция

x-integer

integer

0 денx-1аралықтағы кездейсоқ санды қайтарады

Random

функция

 

real

[0..1) аралықтағы кездейсоқ нақты санды қайтарады

Include(s,x)

процедура

s-жиын,x –типі жиынның базалық типімен үйлесімді болатын элемент

 

xэлементтіs жиынның құрамына кірістіреді

Exclude(s,x)

процедура

s-жиын,x –типі жиынның базалық типімен үйлесімді болатын элемент

 

xэлементтіs жиынның құрамынан жояды

Кесте 6.2 Файлдармен жұмыс жасауға арналған стандартты процедуралар мен функциялар

Аталуыжәнепараметрлер

Процедура н/ефункция

Параметрлердің типтері

Қайтарылатын мәннің типі

Амал

Assign(f,name)

процедура

f – файлдық типтегіайнымалы, name -string

 

файлдық fайнымалыны аталуы nameболатын файлмен байланыстырады

Reset(f)

процедура

f - файлдық типтегіайнымалы

 

Assign процедурасыарқылы алдын-ала файлдық fайнымалымен байланысқан файлды ашады. Файл дискіде болуы тиіс, кері жағдайда орындау уақытының қатесі орын алады.Мәтіндік файлдар тек оқу үшін ғана, типтелген файлдар–оқу және жазу үшін ашылады.

Rewrite(f)

процедура

f - файлдық типтегіайнымалы

 

Assign процедурасыарқылы алдын-ала файлдық fайнымалымен байланысқан жаңа файлды құрады және ашады. Егер көрсетілген атаулы файлбар болса, онда ол жойылады да оның орнына жаңа файл құрылады. Мәтіндік файлдар тек оқу үшін ғана, типтелген файлдар – оқу және жазу үшін ашылады.

Append(f)

процедура

f - Text типті айнымалы

 

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

Close(f)

процедура

f - файлдық типтегіайнымалы

 

Файлды жабалы

FileExists(name)

функция

name - string

boolean

дискіде nameатаулы файлбар болса True,кері жағдайда False қайтарады

CanCreateFile(name)

функция

name - string

boolean

name атаулы файлды құру мүмкін болсаTrue,кері жағдайда False қайтарады

Read(f,a,b,...)

процедура

f - файлдық типтегіайнымалы, a,b –жай,stringнемесе нұсқағыштиптегіайнымалылар

 

мәндерді f файлданa, b ...айнымалы-ларға оқиды. Егер файл типтелген болса, онда a, b ... айнымалылардың типтері файлдың базалық типімен сәйкес болуы тиіс, ал олардың мәндері файлдан екілік түрде оқылады. Егер файл мәтіндік болса, онда a, b ... айнымалылардың типтері әртүрлі болуы мүмкін, ал олардың мәндері файлда мәтіндік түрде сақталынуы тиіс

Write(f,a,b,...)

процедура

f - файлдық типтегіайнымалы, a,b –жай,stringнемесе нұсқағыштиптегіайнымалылар

 

a, b ... мәндерін f файлға жазады.Егер файл типтелген болса, онда a, b ... мәндерінің типтері файлдың базалық типімен сәйкес болуы тиіс. Егер файл мәтіндік болса, онда a, b ... мәндері оған мәтіндік түрде шығарылады, бұл кезде шығару форматтарын пайдалануға болады

Readln(f,a,b,...)

процедура

f - Text типтегіайнымалы, a,b -жай,stringнемесе нұсқағыштиптегіайнымалылар

 

мәтіндік fфайлдан мәндерді a, b ... айнымалыларға оқиды, одан кейін жолдың соңына дейінгі символдарды өткізіп жібереді. readln(f)-тышақыру жолдың соңына дейінгі символдарды жай өткізіп жібереді

Writeln(f,a,b,...)

процедура

f - Text типтегіайнымалы, a,b -жай,stringнемесе нұсқағыштиптегі өрнектер

 

мәтіндік fфайлға a, b ... мәндерін жазады, одан кейін оған жол соңын белгілейтін символды жазады.a, b ... мәндері файлға мәтіндік түрде жазылады,бұл кезде шығару формат-тарын пайдалануға болады. writeln(f)-тышақыру файлға жол соңын белгілейтін символды ғана жазады

Eof(f)

функция

f - файлдық типтегі айнымалы

boolean

егер файлдық нұсқағыш файлдың соңында тұрған болса True,және кері жағдайда Falseқайтарады

Eoln(f)

функция

f - Text типтегі айнымалы

boolean

егер файлдық нұсқағыш жолдың соңында тұрған болса True,және кері жағдайда Falseқайтарады

SeekEof(f)

функция

f - Text типтегі айнымалы

boolean

бос орын, табуляциялаужәне жаңа жолға өту символдарын өткізіп жіберіп, одан кейін егер файлдық нұсқағыш файлдың соңында тұрған болса True,және кері жағдайда Falseқайтарады

SeekEoln(f)

функция

f - Text типтегі айнымалы

boolean

бос орын, табуляциялаусимволдарын өткізіп жіберіп, одан кейін егер файлдық нұсқағыш жоллдың соңында тұрған болса True,және кері жағдайда Falseқайтарады

FileSize(f) 

функция

f - fileтиптегі айнымалы

integer

типтелген файлдағы элементтердің санын қайтарады

FilePos(f)

функция

f - fileтиптегі айнымалы

integer

типтелген файлдағы файлдық нұсқағыштың позициясын қайтарады

(типтелген файлдағы элементтер нөльден бастап нөмірленеді)

Seek(f,n)

процедура

f - fileтиптегі айнымалы

 

типтелген файлдағы файлдық нұсқағыштыn-ші элементке жылжытады(нөмірлеунөльден басталады)

Truncate(f)

процедура

f - fileтиптегі айнымалы

 

файлдық нұсқағыштың ағымдағы позициясынан бастап файлдың соңына дейінгітиптелген файлдың барлық элементтерін жояды

Rename(f,name)

процедура

f - файлдық типтегі айнымалы, name -string

 

файлдық f айнымалымен байланысқан файл аталуын өзгертеді. Файлжабық болуы тиіс.

Erase(f)

процедура

f - файлдық типтегі айнымалы

 

файлдық f айнымалымен байланысқан файлды жояды. Файлжабық болуы тиіс.

Кесте 6.3 Жүйелік процедуралар және функциялар

Аталуыжәнепараметрлер

Процедура н/ефункция

Параметрлердің типтері

Қайтарылатын мәннің типі

Амал

Sleep(ms)

процедура

ms - integer

 

программаның орындалу барысында ms миллисекундке паузаны жүзеге асырады

Cls

процедура

 

 

Шығару терезесін тазартады

Halt(n)

процедура

n - integer

 

Программаны аяқтайды. Шығару терезесіне "Программа Halt(n) шақыру арқылы аяқталды" деген ескертуді шығарады

Halt

процедура

 

 

ескертуді шығармай программаны аяқтайды

Assert(b)

процедура

b - boolean

 

Егер b=False болса, онда арнайы EAssertionFailed болдырмауды генерациялайды. Программадағы тұжырымдардың орындалуын тексеру үшін пайдаланылады.

Assert(b,mess)

процедура

b - boolean, mess - string

 

Егер b=False болса, онда mess хабарламасы бар арнайы EAssertionFailed болдырмауды генерациялайды. Программадағы тұжырымдардың орындалуын тексеру үшін пайдаланылады.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]