B. J. Boltayev, A. R. Azamatov, G. A. Azamatova, B. S. Xurramov nazariya, algoritm, dastur toshkent 2013
Download 372.89 Kb.
|
Algoritmlash va dasturlash asoslari seriyasidan Kitob – II b. J.-fayllar.org
- Bu sahifa navigatsiya:
- O‘zgaruvchilar turini o‘zgartiruvchi funksiyalar
- Funksiya Qiymati Funksiya Qiymati
- Funksiya nomi Argument turi Qiymat turi Izoh
- Argument X ning turi Funksiya Qiymati Funksiya Qiymati
- O‘zgaruvchi turi Boshlang‘ich qiymat O‘zgaruvchi turi Boshlang‘ich qiymat barcha
- 3*a*sqr(b) yoki 3*a*b*b
- (a+b)/c
Funksiya nomi Argument turi
Qiymat turi Izoh Matematik funksiyalar ABS(X)
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)
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
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
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
:= 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
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
b ning qiymati a/500=500/500= 0.1000000000E+1 ga teng 47
b
=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: |
ma'muriyatiga murojaat qiling