Tiplar
Ma'lumot tiplarining nomlari
|
Sinonimlar
|
Keng tarqalgan xarakteristikalari
|
long double
|
10 bayt
|
+/-3.4e-4932...+/-3.4e4932
|
double
|
8 bayt
|
+/-1.7e-308...+/-1.7e308
|
float
|
4 bayt
|
+/-3.4e-38...+/-3.4e38
|
unsigned long int
|
unsigned long
|
|
long int
|
long
|
|
unsigned int
|
unsigned
|
|
int
|
|
|
unsigned short int
|
unsigned short
|
|
short int
|
short
|
|
unsigned char
|
|
|
short
|
|
|
char
|
|
| Арифметик ва ўзлаштириш операциялари, ифодалар Арифметик операцияларга қуйидагилар киради: Қўшиш (+), Айириш(бинар) (-), Кўпайтириш (*), Бўлиш (/), Бўлиш колдиғи (%), Айириш(унар)(-). Си да шундай қоида бор: агар сурат ва махраж қийматлари бутун бўлса, бўлиш натижасида каср қисм бутунлай ташлаб юборилади. Бошқа тиллардагидек, ифодаларда кўпайтириш, бўлиш ва қолдиқни топиш амаллари қўшиш ва айиришдан олдин бажарилади. Қуйидаги жадвалда амаллар бажариш тартиби келтирилган:
Прио-ритет
|
Амал
|
Амал номи
|
Бажарилиш тартиби
|
Энг юкори
|
()
[]
++
--
(тип)
*
|
Оддий қавс
Квадрат қавс
Ошириш
Камайтириш
Келтириш
Кўрсаткич
(таркиби?)
|
Чапдан ўнгга
Чапдан ўнгга
Ўнгдан чапга
Ўнгдан чапга
Ўнгдан чапга
Ўнгдан чапга
|
1
|
&
-
!
\~
sizeof
*
|
Адрес
Унар минус
Мантиқий «инкор»
Битлар инверсияси
Обьект ўлчови
Кўпайтириш
|
Ўнгдан чапга
Ўнгдан чапга
Ўнгдан чапга
Ўнгдан чапга
Ўнгдан чапга
Чапдан ўнгга
|
2
|
/
%
|
Бўлиш
Қолдиқ
|
Чапдан ўнгга
Чапдан ўнгга
|
3
|
+
-
|
Қўшиш
Айириш
|
Чапдан ўнгга
Чапдан ўнгга
| |
>>
<<
|
Ўнгга силжитиш
Чапга силжитиш
|
Чапдан ўнгга
Чапдан ўнгга
|
5
|
>
>=
<
<=
|
Катта
Катта ёки тенг
Кичик
Кичик ёки тенг
|
Чапдан ўнгга
Чапдан ўнгга
Чапдан ўнгга
Чапдан ўнгга
|
6
|
==
!=
|
Тенг
Тенг эмас
|
Чапдан ўнгга
Чапдан ўнгга
|
7
|
&&
|
Мантиқий «ва»
|
Чапдан ўнгга
|
8
|
||
=
|
Мантиқий «ёки»
Ўзлаштириш
|
Чапдан ўнгга
Ўнгдан чапга
|
9
|
+=
-=
*=
/=
%=
|
Махсус ўзлаштириш операциялари
|
Ўнгдан чапга
Ўнгдан чапга
Ўнгдан чапга
Ўнгдан чапга
Ўнгдан чапга
| Ошириш (++) ва камайтириш (--) операциялари Дастурлашда кўпинча бирор ўзгарувчи қийматини 1 га ошириш ёки камайтириш талаб этилади. Бунда қуйидагича ўзлаштириш оператори ишлатилади: s=s+1; Ушбу ишлар учун махсус операциялар киритилган: Ошириш(++) (инкремент; Камайтириш(--) (декремнт. Си да қуйидаги ёзувлар эквивалент: i=i+1; ва i++; j=j-1; ва j--; Ушбу амаллар ифодалар ўртасида ҳам амалга ошириш мумкин. Мисоллар: sum=a+b++; бу ерда a ўзгарувчига b қўшилиб, sum га ўзлаштирилади ва шундан сўнггина b ўзгарувчиси 1 бирликка оширилади. sum=a+ ++b; бу ерда аввал b ўзгарувчи 1 бирликка оширилиб, сўнг а га қўшилади ва натижа sum га ўзлаштирилади. Шундай қилиб, ++ ва -- амаллари ўзгарувчининг қайси томонига қўйилгани катта аҳамиятга эга. Агар амал ўзгарувчи олдига қўйилган бўлса, ўзгарувчи аввал 1 бирликка оширилади ва ифодада ишлатила-ди, агар амал ўзгарувчидан кейин қўйилган бўлса, ўзгарувчи ифодада ишлатилиб бўлингандан кейин 1 бирликка ошириб қўйилади. Ушбу махсус амалларни фақат ўзгарувчиларга қўллаш мумкин, уларни ифодага қўллаб бўлмайди, яъни (i+j)++ амали нотуғри. Шунингдек агар ўзгарувчи ифодада фақат бир мартагина ишлатилган вақтдагина унга бу амалларни қўллаш мумкин. Қуйидаги дастурда махсус амаллар мисол сифатида келтирилган. #include main() { int a, b, sum; a = b = 5; sum = a + b; /* натижа a=5, b=5, sum=10 */ sum = a++ + b; /* натижа sum=10, a=6, b=5 */ sum = ++a + b; /* натижа a=6, b=5, sum= 11 */ sum = --a + b; /* натижа a=4, b=5, sum=9 */ sum = a-- + b; /* натижа sum=9, a=3, b=5 */ sum = a + b; /* натижа sum=8, a=3, b=5 */ } Умумий ҳолда, агар Х++ десак, агар Х сон бўлса, у 1 бирликка ўсади, агар Х символ бўлса, алфавит тартибида кейинги символни олади масалан: Х=3 ва Х++ натижасида Х=4 бўлади. Х=”A” ва Х++ натижасида Х=”B” бўлади.
Simvolli satrlar
Simvolli satr – bu simvollar ketma-ketligi bo’lib, '\0‘ simvol bilan tugaydi.
S++ tilida satr uchun maxsus tur aniqlanmagan. Satr char turidagi belgilar massivi sifatida qaraladi va bu belgilar ketma–ketligi satr terminatori deb nomlanuvchi nol kodli belgi bilan tugaydi (‘\0’).
Odatda, nol-terminator bilan tugaydigan satrlarni ASCIIZ–satrlar deyiladi. Satr konstanta deb qo’shtirnoqlar ichiga olingan belgilar ketma–ketligiga aytiladi:
“Ushbu belgilar ketma–ketligiga satr deyiladi.”
C++ da belgi sifatida ishlatilishi mumkin bo’lgan konstantalar
Bitta so’zni kiritish :
Probelli satrlarni kiritish :
char q[80];
cout<<“Matn kiriting :\n”;
cin >> q ;
cout<<“Natija:\n“<< q;
Simvolli satrlarni kiritish
Matn kiriting:
Anvar uyga ketdi
Natija: Anvar
char q[80];
cout<<“Matn kiriting :\n”;
gets ( q );
cout<<“Natija:\n“<< q;
Matn kiriting:
Anvar uyga ketdi
Natija: Anvar uyga ketdi
gets ( q );
Universal usul :
Faqat bitta satr uchun:
cout<<“Natija: “<< q;
Simvolli satrlarni kiritish
puts ( q );
- Boshqa ma`lumotlarni ham chiqarish mumkin: yozuvlar, o’zgaruvchilarni qiymatlari, …
Faqat bitta satrni chiqarish
Chiqargandan keyin yangi satrga o’tish
cout<< q <Satr o’zgaruvchilari e`loni
Simvolli satr – bu simvollar ketma-ketligi bo’lib, '\0‘ simvol bilan tugaydi.
Satr o’zgaruvchilari e`lon qilinishida boshlang’ich qiymatlar qabul qilishi mumkin. Bu holda kompilyator avtomatik ravishda satr uzunligi hisoblaydi va satr oxiriga nol–terminatorni qo’shib qo’yadi:
char Hafta_kuni[]=”Juma”;
Ushbu e`lon quyidagi e`lon bilan ekvivalent :
char Hafta_kuni[]= {‘J’,’u’,’m’,’a’,’\0’};
Satr qiymatini o’qish
Satr qiymatini o’qishda oqimli o’qish operatori “>>” o’rniga getline() funktsiyasini ishlatgan ma`qul.
Chunki oqimli o’qishda probellar inkor qilinadi (garchi ular satr belgisi hisoblansa ham) va o’qilayotgan belgilar ketma–ketligi satrdan “oshib” ketganda ham belgilarni kiritish davom etishi mumkin.
Natijada satr o’ziga ajratilgan o’lchamdan ortiq belgilarni qabul qilishi mumkin.
Satr qiymatini o’qish
Programmada satr satri 5 ta belgini qabul qilishi mumkin, ortiqchalari tashlab yuboriladi. getline() funktsiyasiga murojaatda ikkinchi parametr qiymati o’qilayotgan satr uzunligidan katta bo’lmasligi kerak.
int main(){
char satr[6];
cout<<”Satrni kiriting: “<<’\n’; cin.getline(satr,6);
cout<<”Siz kiritgan satr: “<}
Satrlar bilan ishlovchi funktsiyalar
Satr uzunligi : strlen (string length)
Bibliotekani ulash :
#include
char q[80] = "qwerty";
int n;
n = strlen ( q );
n = 6
Satrni uzunligini aniqlashda '\0' simvol inobatga olinmaydi
!
Satr bilan ishlaydigan funktsiyalar
strlen() funktsiyasi satrning real uzunligidan bitta kam qiymat qaytaradi, ya`ni nol-terminator o’rni hisobga olinmaydi.
sizeof() funktsiyasidan ham foydalanish mumkin va u strlen() funktsiyasidan farqli ravishda satrning real uzunligini qaytaradi.
#include
int main()
{
char Str[]="1234567890";
cout <cout<<<return 0;
}
Satrlarni solishtirish
char q1[80], q2[80];
int n;
gets ( q1 );
gets ( q2 );
n = strcmp ( q1, q2 );
strcmp (string comparison):
Do'stlaringiz bilan baham: |