Haqiqiy toifaga kasr qismlari bor chekli sonlar to’plami kiradi. Haqiqiy sonlar ustida turli matematik amallarni bajarish mumkin. Bu amallarning natijalari ham haqiqiy toifaga kiradi. Bu yerda ham binar amallarga nisbatan masalaning
yechimlari mantiqiy toifaga tegishli bo’ladi.
Kompyuter xotirasida haqiqiy sonlar asosan qo’zg„aluvchan nuqta formatida saqlanadi.
937,56 = 93756 * 10-2= 0,93756 * 103=0,93756E3
0,002355=2,355*10-3=2,355E-3
Xotiraga haqiqiy sonlar yozilayotganda uning uchun ajratilgan xotira sohasining 1-bitiga E simvolidan chapdagi mantissa ishorasi 1 ta bitga, keyin mantissa, undan keyin E– ya’ni har doim 10 soniga teng deb olinadigan eksponenta belgisi darajasining ishorasi 1 ta bitga, so’ngra uning darajasidagi son, ya’ni Esimvolidan o’ngdagi son yoziladi (1.2-rasmga qarang).
0 1 9 10 11 15
1.2-rasm. Haqiqiy sonlarni xotiraga yozilish shakli
Haqiqiy (kasr) qiymatli toifaga tegishli o’zgaruvchilarni e‟lon qilish uchun
float,double,longdoublexizmatchi so’zlaridan foydalanish mumkin.
Haqiqiy toifa shakllari
1.2-jadval
Toifa ko’rinishi
Mazkur toifadagi o’zgaruvchining qabul qiladigan qiymat oralig„i
Berilgan mva nhaqiqiy sonlari ustida quyidagi amallarni bajarish dasturini ko’rib chiqaylik.
#include 11
using namespacestd;intmain() { floatm,n;cin>>m>>n;floatk1=m+n;floatk2=m-n;floatk3=m*n; cout< system("PAUSE"); } C++ da ushbu toifalarni oldiga signedva unsignedkalit so’zlarini qo’yib toifalarni modifikatsiyalash mumkin. Masalan,
signedfloatunsignedfloatsigneddoubleunsigneddoublesignedlongdouble unsignedlongdouble
Mantiqiy toifa
Mazkur toifa mantiqiy mulohazalarning to’g„riligini aniqlash uchun, turli xil dasturlash tillarida turlicha ifodalaniladigan ifodalarni 2 ta ko’rinishda aniqlaydi. Mantiqiy ma’lumotlar ustida quyidagi mantiqiy operatsiyalarni bajarish mumkin: konyunktsiya (va), dizyunktsiya (yoki) va inkor (yo’q), hamda qiyinroq bo’lgan ekvivalentlik, implikatsiya, chiqarib tashlash va boshqa operatsiyalar. Yuqorida keltirilgan ixtiyoriy operatsiyaning natijasi – mantiqiy qiymatga ega bo’ladi.
Mantiqiy qiymatni xotirada saqlash uchun bitta bit yetarli.
Asosiy mantiqiy funksiyalarning chinlik jadvali
Mantiqiy toifa tavsifi
1.3-jadval
1.4-jadval
Toifa ko’rinishi
Mazkur toifadagi o’zgaruvchining qabul qiladigan qiymat oralig„i
O’zgaruvchining kompyuter xotirasidan egallaydigan joyi
Bool
true , false
1 bayt
C++ da andmantiqiy amalining yana bir yozilish shakli &&,oryoki ||, not yoki !va “inkor-yoki” amali xorkabi yozilishi mumkin.
booltoifasiga bitta misol ko’rib chiqamiz.
#includeusing namespacestd;intmain() { boolb=true;bools=false; boold1=notb||s;boold2=b&&s;boold3=bxor s; cout<"<"< system("PAUSE"); } Natija:0 01
Belgili toifa
Belgili toifaga belgilarning chekli to’plami yoki liter, ularga lotin alifbosidagi harflar va unda yo’q kirill harflar, o’nlik raqamlar, matematik va maxsus belgilar kiradi. Belgili ma’lumotlar hisoblash texnikasi bilan inson o’rtasidagi aloqani o’rnatishda katta ahamiyatga ega. Belgili toifadagi o’zgaruvchilar ustida turli matematik amallarni bajarish mumkin. Bunda amallar belgilarning ASCII kodlari ustida bajariladi. Shu sababli, belgili toifalarni taqqoslash ham mumkin va taqqoslashlarning natijalari bool toifasiga kiradi. C++ tilida belgili toifalarning qiymatlari qo’shtirnoq ichida beriladi va u bitta belgidan iborat bo’lishi mumkin.
Belgili toifa shakllari
1.5-jadval
Toifa ko’rinishi
Mazkur toifadagi o’zgaruvchining qabul qiladigan qiymat oralig„i
O’zgaruvchining kompyuter xotirasidan egallaydigan joyi
char(signedchar)
-128…127
1 bayt
unsignedchar
0…255
1 bayt
wchar_t(kengaytirilgansimvollitip)
0…65535
2 bayt
Satr (qator) – bu qandaydir belgilar ketma-ketligi bo’lib, satr bitta, bo’sh yoki bir nechta belgilar birlashmasidan iborat bo’lishi mumkin. C++ tilida satrlarni e‟lon qilish belgilar massivi shaklida amalga oshiriladi. Bu haqda keyinroq batafsil to’xtalamiz.
Belgili toifadagi o’zgaruvchilar ustida o’zlashtirish, taqqoslash va turli matematik amallarni bajarish mumkin. Bunda agar belgili toifalar ustida matematik amallar bajariladigan bo’lsa, belgilarning ASCII kodlari olinadi.
Belgilar va qatorlarga doir quyidagi sodda dasturni keltiramiz:
#includeusing namespacestd;intmain() {charx='a';chary='b';charmin; cout<<”belgilaryig‘indisi=”<vab simvollarniASCIIkodlariniyig‘indisi-195 cout<"<bni ekrangachiqarishif(x>y) min=y; else min=x; cout<<”min=”<ekrangaa chiqadisystem("pause"); } Natija:belgilaryig‘indisi=195a b min=a