B. J. Boltayev, A. R. Azamatov, G. A. Azamatova, B. S. Xurramov nazariya, algoritm, dastur toshkent 2013


Download 372.89 Kb.
bet29/68
Sana02.11.2023
Hajmi372.89 Kb.
#1740971
1   ...   25   26   27   28   29   30   31   32   ...   68
Bog'liq
Algoritmlash va dasturlash asoslari seriyasidan Kitob – II b. J.-fayllar.org

Funksiya nomi Argument turi 
Qiymat turi 
Izoh 
Matematik funksiyalar

ABS(X)
butun/haqiqiy


butun/haqiqiy
X ning absolyut qiymati
(moduli) – |X|
SIN(X)
butun/haqiqiy
haqiqiy
X ning sinusi (radian o‘.b.)
– sinX
COS(X)
butun/haqiqiy
haqiqiy
X ning kosinusi (radian
o‘.b.) – cosX
ARCTAN(X)
butun/haqiqiy
haqiqiy
X ning arktangensi – arctgX
SQRT(X)
butun/haqiqiy
haqiqiy
X ning kvadrat ildizi –
X

(X


0)
SQR(X)
butun/haqiqiy
butun/haqiqiy X ning kvadrati – X
2

EXP(X)
butun/haqiqiy


haqiqiy
e
X
(e = 2. 718282. . . )
LN(X)
butun/haqiqiy
haqiqiy
X ning natural logarifmi (X
> 0)
FRAC(X)
butun/haqiqiy
haqiqiy
X ning kasr qismi {X}
INT(X)
butun/haqiqiy
haqiqiy
X ning butun qismi [X]
RANDOM
-
haqiqiy
[0, 1) oraliqdagi tasodifiy
son
RANDOM(X)
Word
Word
0..(X–1) oraliqdagi tasodifiy
son
SWAP(X)
2 baytli butun
2 baytli butun
X ning baytlari o‘rnini al-
mashtiradi
O‘zgaruvchilar turini o‘zgartiruvchi funksiyalar 
TRUNC(X)
haqiqiy
LongInt
X ning butun qismi
ROUND(X)
haqiqiy
LongInt
X ni yaxlitlaydi
ODD(X)
butun
mantiqiy
X – toq son bo‘lsa natijasi
TRUE
CHR(X)
byte
Char
X ning o‘nlik ASCII kodiga
mos belgi
HI(X)
butun
byte
X ning eng yuqori bayti
LO(X)
butun
byte
X ning eng quyi bayti


44
Bu funksiyalardan CHR(X) avval ko‘rilgan ORD(X) funksiyasiga nisbatan


qisman teskari vazifani bajaradi. Funksiyalar qiymatlarini quyidagi misollar orqali
ko‘rish mumkin:

Funksiya 
Qiymati 
Funksiya 
Qiymati 
ABS(–5)
5
ABS(–4.9)
4.9000000000E+00
ABS(5)
5
ABS(4.9)
4.9000000000E+00
SQR(4)
16
SQR(2.5)
6.2500000000E+00
SQR(–4)
16
SQR(0.0)
0.0000000000E+00
SQR(0)
0
SQRT(16)
4.0000000000E+00
SQRT(0.16)
4.0000000000E–01 SIN(0)
0.0000000000E+00
SIN(1)
8.4147098481E–01 TRUNC(5.3)
5
TRUNC(–5.3)
–5
INT(5.3)
5.0000000000E+00
INT(5)
5.0000000000E+00 INT(–5.3)
–5.0000000000E+00
FRAC(5.3)
3.0000000000E–01 FRAC(–5.3)
–3.0000000000E–01
FRAC(5)
0.0000000000E+00 ROUND(5.49)
5
ROUND(5.5)
6
ROUND(–5.49)
–5
ROUND(–5.5)
–6
ODD(–5)
TRUE
ODD(5)
TRUE
ODD(4)
FALSE
ODD(–4)
FALSE
ODD(0)
FALSE
CHR(65)
‘A‘
CHR(97)
‘a‘
ORD(‘a‘)
97
ORD(‘A‘)
65
HI(255)
0
LO(255)
255
HI(256)
1
LO(256)
255
HI(65280)
255
LO(65280)
0
SWAP(32897)
33152
SWAP(256)
1

Paskal dasturlash tili translyatoriga sodda turdagi miqdorlarda aniqlangan


(Sistem modulidagi) standart funksiyalar kiritilgan bo‘lib, ulardan ba’zilari
quyidagilar:

Funksiya nomi 
Argument turi Qiymat turi 
Izoh 
HIGH(X)
butun/oraliqli
butun
X ga mos turning eng
katta qiymati
LOW(X)
butun/oraliqli
butun
X ga mos turning eng
kichik qiymati
UPCASE(X)
Char
Char
X ni yuqori registrga
o‘tkazadi


45
Bu funksiyalar qiymatlarini quyidagi misollar orqali ko‘rish mumkin:



Argument
X ning turi 
Funksiya 
Qiymati 
Funksiya 
Qiymati 
BYTE
HIGH(X)
255
LOW(X)
0
INTEGER
HIGH(X)
32767
LOW(X)
–32768
WORD
HIGH(X)
65535
LOW(X)
0
LONGINT
HIGH(X)
2147483647 LOW(X)
–2147483648
ORALIQLI:
‘A‘..‘150‘
HIGH(X)
‘150‘
LOW(X)
‘A‘
CHAR:
X=‘a‘ yoki X=‘A‘
UPCASE(‘a‘)
‘A‘
UPCASE(‘A‘)
‘A‘

Dastur translyatori ta’minotiga aniq bir amallarni bajarishga mo‘ljallangan


protseduralar kiritilgan bo‘lib, ular standart protseduralar deyiladi. Ularning
sodda turlar bilan ishlaydigan ba’zilari quyidagi jadvalda keltirilgan.

Nomi 
Argument 
turi 
Qiymat 
turi 
Izoh 
Matematik protseduralar
INC(X)
butun
butun
X ni qiymatini 1 ga oshiradi (X=X+1)
INC(X, N)
butun
butun
X ni qiymatini 1 ga oshiradi (X=X+N)
DEC(X)
butun
butun
X ni qiymatini 1 ga kamaytiradi
(X=X–1)
DEC(X, N)
butun
butun
X ni qiymatini N ga kamaytiradi
(X=X–N)

7-§. O‘ZLASHTIRISH OPERATORI


Paskal dasturlash tili, odatda, tavsiflangan o‘zgaruvchilar uchun xotiradan tur-
ga mos joy ajratadi va shu turga mos boshlang‘ich qiymatlarni yozib qo‘yadi:

O‘zgaruvchi turi 
Boshlang‘ich 
qiymat 
O‘zgaruvchi turi 
Boshlang‘ich 
qiymat 
barcha
butun sonli 
0
barcha
haqiqiy sonli 
0.0000000000E+00
char 
‘ ‘ (probel)
boolean 
FALSE
string 
‘‘ (bo‘sh satr)
string[7] 
‘‘ (bo‘sh satr)

Miqdorlar ustida bajariladigan amallar natijalarini dastur ishlashi davomida


kompyuter xotirasida saqlab turish uchun o‘zlashtirish operatori qo‘llanadi.



46
O‘zlashtirish operatori o‘zgaruvchilarga qiymat berish uchun ishlatiladi va u


:= belgi orqali ifodalanadi. O‘zlashtirish operatorning umumiy ko‘rinishi
quyidagicha:
o‘zgaruvchi := ifoda; 
Bu operator bajarilganda quyidagicha ishlar bajariladi:
1) ifoda qiymati hisoblanadi;
2) ifodaning qiymati o‘zgaruvchiga o‘zlashtiriladi, ya’ni xotiraning o‘zgaruvchi
uchun ajratilgan qismida (o‘zgaruvchining “eski” qiymati o‘chib ketib)
hisoblangan ifodaning qiymati yoziladi.
Quyidagi misollarda a, b va m nomli har xil turidagi o‘zgaruvchilarning
qiymati qanday o‘zgarishi yaqqol ko‘rinadi.
var
a, b, m: byte;
begin
a := 8; {a ning qiymati 8 ga teng b
o‘ldi}
b := a*5; {b ning qiymati a*5=8*5= 40 ga teng b
o‘ldi}
b := b+10; {endi b ning qiymati b+10= 40+10= 50 ga teng b
o‘ladi}
m:=m*b; {m ning boshlan
g‘ich qiymati berilmagani uchun 0 deb olinadi,
demak, 0*50=0, ya’ni m ning qiymati 0 teng bo‘ladi}
end.
var
a: byte; b: word; m: integer;
begin
a := 8; {a ning qiymati 8 ga teng b
o‘ldi}
b := a*5000; {b ning qiymati a*500=8*500= 40000 ga teng b
o‘ldi,

shuning uchun word turida tavsiflangan}


m := 20000
–b; {m ning qiymati 20000–b = 20000–40000 = –20000 ga

teng b
o‘ladi, shuning uchun word turida tavsiflangan}


end.
var
a: char; b, m: string;
begin
a :
= ‘8’; {a ning qiymati ‘8’ ga teng bo‘ldi}
b :
= a+a; {b ning qiymati a+a=’8’+’8’= ‘88’ ga teng bo‘ldi,

shuning uchun string turida tavsiflangan}


b :
= b+’A’; {endi b ning qiymati b+’A’= ‘88’+’A’= ‘88A’ ga teng bo‘ladi}

m:=m+b+a+’!’; {m ning boshlang‘ich qiymati berilmagani uchun ‘’ (bo‘sh)

deb olinadi, demak, m+b+a+’!’=’’+’88A’+’8’+’!’=’88A8!’, ya’ni
m ning qi
ymati ’88A8!’}
end.
var
a: word; b: real; m: integer;
begin
a := 500; {a ning qiymati 500 ga teng b
o‘ldi}
b := a/500; {b
o‘lish amali natijasi doimo haqiqiy son, shuning uchun

b ning qiymati a/500=500/500= 0.1000000000E+1 ga teng





47

b
o‘ladi, ya’ni real turda}
m := a mod 7
–a div 2 ; {m ning qiymati a mod 7–a div 2 =
=500 mod 7
–500 div 2= 3–250= –247 ga teng,
shuning uchun integer turida tavsiflangan}
end.
var
a: word; b, m: boolean;
begin
a := 500;
{a ning qiymati 500 ga teng b
o‘ldi}
a := a+1;
{a ning qiymati 501 ga teng b
o‘ldi}
b := TRUE;
{ b ning qiymati TRUE ga teng b
o‘ldi}
m :=NOT(b and FALSE); {m = NOT(b and FALSE)=
=NOT(TRUE and FALSE) =
= NOT(FALSE) = TRUE}
m:= (500>=a) OR m; {m = (500>=a) OR m = (500 >= 501) OR TRUE=

=FALSE OR TRUE = TRUE}

end.

Paskal dasturlash tilida ifodalar amallar yordamida bog‘langan o‘zgarmaslar,


o‘zgaruvchilar va funksiyalardan tashkil topadi. Algebraik ifodalar bir satrda yozi-
ladi, ya’ni satrdan pastga tushirib yoki yuqoriga ko‘tarib yozish mumkin emas.
Masalan, 3ab
2
ifoda Paskalda 3*a*sqr(b) yoki 3*a*b*b kabi,
2
b
a

ifoda a/sqr(b)


yoki a/(b*b) kabi yoziladi.
Ifodalarni yozishda amallarni bajarish tartibini ko‘rsatish uchun faqat oddiy
qavslar ishlatiladi. Qavs ichidagi amallarni bajarish chapdan o‘ngga qarab, ma-
tematikada qabul qilingan tartibni saqlangan holda ketma-ket amalga oshiriladi:

funksiyalar qiymatlari hisoblanadi;

ko‘paytirish yoki bo‘lish amali bajariladi;

qo‘shish yoki ayirish amali bajariladi.
Masalan,
c
b
a

arifmetik ifodani Paskaldagi yozilishi (a+b)/c kabi bo‘lib, uni
hisoblashda avval qavs ichidagi amal, ya’ni a+b bajariladi, so‘ngra natija c ga
bo‘linadi. Amallar bajarilish tartibi ham qavslar yordamida tartiblanadi:
a
b
2
2

ifodani Paskalda sqrt(sqr(a) – sqr(b)) kabi, |x + tgx| ifoda abs(x + sin(x)/cos(x))


ko‘rinishida yoziladi.
Albatta, ikkita arifmetik amal ketma-ket kelganda ifodani qavs bilan yozish
mumkin. Masalan: 5*(–1) yoki a+(–b).
Ba’zi hollarda Paskal dasturlash tilida yozilgan ifodani odatdagi matematik
ko‘rinishda yozish talab etiladi. Masalan, Paskal dasturlash tilida yozilgan

Download 372.89 Kb.

Do'stlaringiz bilan baham:
1   ...   25   26   27   28   29   30   31   32   ...   68




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling