sizeof(char) = sizeof(signed char) = sizeof(unsigned char) = 1
Quyidagi jadvalda C++ da ishlatiladigan toifalar ro’yxati va ularning qiymat diapazonlari keltirilgan(3-jadval).
3-jadval.
Toifa
|
Qiymatlar diapazoni
|
O’lchami (bayt)
|
bool
|
true va false
|
1
|
signed char
|
-128 … 127
|
1
|
unsigned char
|
0 … 255
|
1
|
signed short int
|
-32 768 … 32 767
|
2
|
unsigned short int
|
0 … 65 535
|
2
|
signed int
|
-2 147 483 648 … 2 147 483
647
|
4
|
unsigned int
|
0 … 4 294 967 295
|
4
|
signed long int
|
-2 147 483 648 … 2 147 483
647
|
4
|
unsigned long int
|
0 … 4 294 967 295
|
4
|
float
|
3.4e-38 … 3.4e+38
|
4
|
double
|
1.7e-308 … 1.7e+308
|
8
|
long double
|
3.4e-4932 … 3.4e+4932
|
10
|
Standart matematik funksiyalar
Dasturlarda buyruqlar tarkibida turli ko’rinishdagi standart funksiyalardan foydalanish mumkin. Matematik funksiyalar arifmetik amallarda ishlatiladi. Quyidagi jadvalda standart matematik funktsiyalar keltitrilgan (4-jadval)
jadval
Funktsiya
|
Ifodalanishi
|
Funktsiya
|
Ifodalanishi
|
Sin x
|
sin(x)
|
x
|
sqrt(x); pow(x,1/2.)
|
Cos x
|
cos(x)
|
x
|
abs(x) ёки fabs(x)
|
Tg x
|
tan(x)
|
Arctan x
|
atan(x)
|
ex
|
exp(x)
|
Arcsin x
|
asin(x) ?
|
Ln x
|
log(x)
|
Arccos x
|
acos(x) ?
|
Lg x
|
log10(x)
|
3 x 2
|
pow(x,2/3.)
|
xa
|
pow(x,a)
|
Log2x
|
log(x)/log(2)
|
Masalan,
2a
yoki
→ (-b+sqrt(b*b-4*a*c)/(2*a);
(-b+pow(b*b-4*a*c,1/2.)/(2*a);
e sin x + tg2(x+3) → exp(sin(x)) + pow(tan(x+3),2); k=(m*5)+((7 % n) / (9+x));
Quyida keltirilgan funktsiyalar ma’lumotlar toifasini o’zgartirish(o’girish) vazifasini bajaradi (5-jadval): 5-jadval
Funktsiyaning C++dagi ifodasi
|
Funktsiyaning vazifasi
|
CHR(N)
INTTOSTR(K) FLOATTOSTR (N) FLOATTOSTR(N, F, K,M)
STRTOINT (S) STRTOFLOAT (S)
ROUND (N) TRUNC (N)
FRAC(N)
INT (N)
|
Kodi n(butun son) ga teng simvolni aniqlash Butun k sonini satrga o’tkazish
Haqiqiy n sonini satrga o’tkazish Haqiqiy n sonini satrga
o’tkazish,bunda:f - format;k - aniqlik; m - kasr qismidagi raqamlar soni
S Satrni butun songa o’tkazish
S Satrni haqiqiy songa o’tkazish Haqiqiy sonni yaxlitlash
Haqiqiy son kasr qismini olib tashlash Kasrli sonning kasr qismi
Kasr sonning butun qismi
|
Ifodalar
C++ algoritmik tilida arifmеtik, mantiqiy va bеlgili ifodalar aniqlangan.
Arifmеtik ifodalar o’zgaruvchilar, o’zgarmaslar, arifmеtik amal bеlgilari qavslardan va standart funksiyalardan tashkil topadi. Arifmеtik ifodada qatnashayotgan amallar ustivorligiga qarab bajariladi.
Amallar quyidagi ustivorlikka ega.
qavs ichidagi amallar;
funktsiyalarnin chaqirish;
ko’paytirish, bo’lish, qoldiqni aniqlash;
qo’shish, ayirish.
Rang
|
Amallar
|
Yo’nalish
|
1
|
() [] -> :: .
|
Chapdan o’ngga
|
2
|
! ~ + - ++ -- & * (tip) sizeof
new delete tip()
|
O’ngdan chapga
|
3
|
. * ->*
|
Chapdan o’ngga
|
4
|
* / % (multiplikativ binar amallar)
|
Chapdan o’ngga
|
5
|
+ - (additiv binar amallar)
|
Chapdan o’ngga
|
6
|
<<>>
|
Chapdan o’ngga
|
7
|
<<= >= >
|
Chapdan o’ngga
|
8
|
= !=
|
Chapdan o’ngga
|
9
|
&
|
Chapdan o’ngga
|
10
|
^
|
Chapdan o’ngga
|
11
|
|
|
Chapdan o’ngga
|
12
|
&&
|
Chapdan o’ngga
|
13
|
||
|
Chapdan o’ngga
|
14
|
?:(shartli amal)
|
Chapdan o’ngga
|
15
|
= *= /= %= += -= &= ^=
|= <<= >>=
|
Chapdan o’ngga
|
16
|
, (vergul amali)
|
Chapdan o’ngga
|
Arifmеtik ifodada bir xil ustivorlikka ega amallar kеtma-kеt kеlsa, ular chapdan o’ngga qarab bajariladi.
Misol:
esin (x)+cosx+tg (x+ 3).
C++da bu ifoda quyidagi ko’rinishda yoziladi:
exp(sin(sqrt(x))+cos(sqr(x)))+sin(x+sqrt(3))/cos(x+sqrt(3)).
Mantiqiy ifodalar o’z ichiga mantiqiy o’zgarmaslarni, mantiqiy o’zgaruvchilarni, mantiqiy amal bеlgilarini, mantiqiy natija bеradigan standart funktsiyalarni qamrab oladi.
Ifodada solishtirish amallari (>, <, =,<=,=>,<>), mantiqiy ko’paytirish &&, mantiqiy qo’shish II va mantiqiy inkor qilish ! amallarini bajarish mumkin. Quyidagi jadvalda BOOLEAN toifasidagi A va B o’zgaruvchilari ustida mantiqiy amallarning bajarilishi natijasi kеltirilgan (6- jadval).
6-jadval
A
|
B
|
! A
|
!B
|
A && B
|
A II B
|
TRUE
|
TRUE
|
FALSE
|
FALSE
|
TRUE
|
TRUE
|
TRUE
|
FALSE
|
FALSE
|
TRUE
|
FALSE
|
TRUE
|
FALSE
|
TRUE
|
TRUE
|
FALSE
|
FALSE
|
TRUE
|
FALSE
|
FALSE
|
TRUE
|
TRUE
|
FALSE
|
FALSE
|
Mantiqiy ifodada ham amallar ustivorligiga ko’ra bajariladi:
Qavs ichidagi amal va mantiqiy inkor amali (!).
Mantiqiy ko’paytirish (&&) amallari.
Mantiqiy qo’shish (II) va solishtirish amallari.
Quyidagi misolda bеrilgan mantiqiy ifodada amallarning bajarilish kеtma-kеtligi kеltirilgan, bu yеrda A=2, B=4, C=5;
(A>3) && (A=C+3) II ! (B=5)
(A>3) =FALSE
(A=C+3) =FALSE
(B=5)=FALSE 4) !(B=5)=TRUE
5) (A>3) && (A=C+3)= FALSE
6) (A>3) && (A=C+3) II ! (B=5)=TRUE
Bu mantiqiy ifodaning qiymati TRUE ga tеng.
Borland C++ Builder 6 da dastur tarkibi
C++ tilida dastur preprotsessor direktivalari, global ob’ektlar va funktsiyalarning tavsiflari va ta’riflari ketma-ketligidan tashkil topadi. Direktivalar dasturni kompilyatsiya qilingungacha boshqaradi. Ta’riflar funktsiyalarni va ob’ektlarni kiritadi. Ob’ektlar dasturdagi qayta ishlanadigan ma’lumotlarni tasvirlash uchun zarur. Funktsiyalar dasturdagi amallarni aniqlaydi.
Tavsiflar kompilyatorga dasturning turli qismlari yoki boshqa fayllarda aniqlangan ob’ekt va funktsiyalarning nomi va xossalari haqida ma’lumot beradi.
Dastur bitta yoki bir nechta matnli fayl ko’rinishida shakllanadi. Matnli fayl qatorlarga ajratilgan bo’ladi. Har bir qator qator oxiri belgisi bilan tugatiladi.
Dastur qayta ishlashning uchta bosqichidan o’tadi:
matnni preprotsessor yordamida o’girish; kompilyatsiya qilish;
kompanovkalash (barcha bog’lanishlarni taxrirlash yoki yig’ish).
Yuqorida keltirilgan bosqichlar muvaffaqiyatli tugatilgan so’ng dasturning mashina kodi shakllanadi (8-rasm).
Preprotssesorning vazifasi dastur matnini uni kompilytsiyagacha o’girishdir. Preprotssesorli qayta ishlashning tartibini dasturchi direktivalar yordamida belgilaydi. Har bir direktiva '#' belgisidan boshlanadi, masalan, #include yoki #define. #define matnda o’zgartirish qoidalarini, '#' include esa dasturda qanday matnli fayllarni qo’shish lozimligini ko’rsatadi. #include direktivasi kompilyatorning standart kutubxonalari bilan birgalikda uzatiladigan sarlavha fayllari katalogidan kerakli fayl matnini dastur matniga qo’shadi. Standart kutubxonalar uchun sarlavha fayllari ro’yhati C++ tili standartida belgilangan. Global ob’ektlar va funktsiyalarning tavsiflari va ta’riflari albatta main nomli funktsiya bo’lishi shart. Chunki bu funktsiya dasturning asosiy funktsiyasi bo’lib, usiz dastur bajarilmaydi. C++da dastur tuzish va bajarish natijasida turli ko’rinishagi ilovalar yaratiladi. Asosan 2 ta muhitda dastur tuzish va bajarish mumkin konsol va forma ilova muhitida.
C++ tilidagi dasturning har bir bo’lagini qarab chiqamiz.
Direktivalar – # include direktiva – instruksiya degan ma’noni beradi. C++ tilida dasturning tuzilishiga, ya’ni ehtiyojiga qarab, kerakli direktivalar ishlatiladi. Ular <> belgisi orasida keltiriladi. Umuman olganda quyidagi asosiy direktivalar mavjud (jami 32 ta):
# include - C da oddiy kiritish/chiqarish dasturi uchun. Bu yerda std - standart, i – input, o - output degani.
# include - C++ da kiritish/chiqarish uchun, oddiy amallar bajarilsa.
# include - standart funktsiyalarni ishlatish uchun
# include - dasturning tashqi ko’rinishini shakllantirish uchun;
# include - satr toifasidagi o’zgaruvchilar ustida amallar bajarish uchun;
# include - standart kutubxona fayllarini chaqirish uchun;
# include - kompyuter ichidagi soat qiymatlaridan foydalanish uchun;
# include - C++ tilining grafik imkoniyatlaridan foydalanish uchun.
Bu fayllar maxsus kutubxona e’lon fayllari hisoblanadilar va ular alohida INCLUDE deb nomlanadigan papkada saqlanadilar. Hozirda C++ kutubxonasi yangilandi va undagi fayllarning nomlaridan “.h” (head – sarlavha ma’nosida) kengaytmasi olib tashlandi va oldiga “c” xarfi kushildi (C dan kolgan 18tasiga). Bu fayllarda funktsiya prototiplari, toifalari, o’zgaruvchilar, o’zgarmaslar ta’riflari yozilgan bo’ladi.
C++ tilidagi dasturning har bir bo’lagini qarab chiqamiz.
Dostları ilə paylaş: |