Butun sonlar toifasi
Toifa nomlanishi
|
Qabul qiladigan qiymatlar oralig’i
|
Hotirada egallagan hajmi
|
unsigned short int
|
0..65535
|
2 bayt
|
short int
|
-32768.. 32767
|
2 bayt
|
unsigned long int
|
0..42949667295
|
4 bayt
|
long int
|
-2147483848.. 2147483847
|
4 bayt
|
int (16 razryadli)
|
-32768.. 32767
|
2 bayt
|
int (32 razryadli)
|
-2147483848.. 2147483847
|
4 bayt
|
unsigned int (16 razryadli)
|
0..65535
|
2 bayt
|
unsigned int (32 razryadli)
|
0..42949667295
|
4 bayt
|
Haqiqiy sonlar toifasi
Toifa nomlanishi
|
Qabul qiladigan qiymatlar oralig’i
|
Hotirada egallagan hajmi
|
float
|
1.2E-38…3.4E38
|
4 bayt
|
Double
|
2.2E-308…1.8E308
|
8 bayt
|
Long double
|
3.4e-4932… - 3.4e-4932
|
10 bayt
|
long int
|
-2147483848.. 2147483847
|
4 bayt
|
int (16 razryadli)
|
-32768.. 32767
|
2 bayt
|
int (32 razryadli)
|
-2147483848.. 2147483847
|
4 bayt
|
unsigned int (16 razryadli)
|
0..65535
|
2 bayt
|
unsigned int (32 razryadli)
|
0..42949667295
|
4 bayt
|
Boshqa toifalar
Toifa nomlanishi
|
Qabul qiladigan qiymatlar oralig’i
|
Hotirada egallagan hajmi
|
Bool
|
true yoki false
|
1 bayt
|
Char
|
0..255
|
1 bayt
|
Void
|
2 yoki 4
|
|
Demak, har xil toifadagi o’zgaruvchilar computer hotirasida turli hajmdagi baytlarni egallaydi. Xattoki bir toifadagi o’zgaruvchilar ham qaysi komputerda va qaysi operatsion tizimda ishlashiga qarab turli o’lchamdagi hotirani egallashi mumkin.
Ma’lumotlarning mantiqiy ifodalari
Mantiqiy toifa bool ikki xil hil qiymat qabul qilishi mumkin: true(rost,1) va false (yolg’on, 0).
Mantiqiy ma’lumotlarni e’lon qilish uchun bool xizmatchi so’zidan foydalaniladi.
bool a, b;
Mantiqiy toifadagi o’zgaruvchilarga qiymat berish quyidagicha amalga oshiriladi.
a=true; // rost
b=0; // yolg’on, false
Mantiqiy amallar.
!(inkor qilish)- mantiqiy operatori mantiqiy ifodalar yoki o’zgaruvchilar oldidan qo’yiladi. Bunda amal teskarisi bajariladi.
! mantiqiy inkor operatori.
X
|
!x
|
True
|
false
|
False
|
true
|
&& (mantiqiy ko’paytirish) – mantiqiy operatori ikkita mantiqiy o’zgaruvchini birlashtiradi. Bunda ikkala o’zgaruvchi ham rost qiymatga ega bo’lsa natija rost, aks holda natija yolg’on.
|| (mantiqiy qo’shish) – mantiqiy operatori ikkita mantiqiy o’zgaruvchini birlashtiradi. Agar o’zgaruvchilardan kamida bittasi rost qiymatga ega bo’lsa natija rost, aks holda yolg’on natja beradi.
&&, || mantiqiy operatorlari
-
X
|
y
|
x&&y
|
x || y
|
True
|
true
|
true
|
true
|
False
|
false
|
false
|
false
|
False
|
true
|
false
|
true
|
True
|
false
|
false
|
true
|
Mantiqiy amallarga misollar.
a=true; b=false;
c=!a; {c=false}
c=a && b ; {c=false}
c=a || b; {c=true}
Munosabat amallari
==-teng <= - kichik yoki teng
!= teng emas >= - kata yoki teng
< kichik > kata
Munosabat amallariga misollar
c=5<0; // c=false
c=(4%2==0); // c=true
c=(k>0) && (k<5); // c=true, agar 0Masalani echish va qayta ishlash.
Dastur bu computer tushunadigan biror tilda yozilgan dastur kodiga aytiladi. Har qanday dastur kiritish, qayta ishlash va chiqarish strukturasiga asoslangan.
input output
1-rasm. Dasturning konseptual chizmasi.
Bir dasturning yaxshiroq ishlashi uchun loyihalash va tizimli rejalashtirishni amalga oshirilishi lozim. Rejalashtirish dasturni yanada samarali bo’lishini xal qiladi. Dastur kodlanishi mantiqiy xatolar kamayishini oldini oladi.
2-rasm. Muammoni mantiqiy hal qilish
Masalani dasturini tuzuishdan oldin uni berilishini to’g’ri berilganligini aniqlab olishimiz kerak. Undan so’ng masalani algoritmi va dasturini tuzish kerak bo’ladi.
Bu ichki va tashqi bo'linadi.
a) Ichki ma'lumotlar - bir dasturi doirasida hosil bo'ladigan ma'lumotlar.
b) Tashqi ma'lumotlar - kiritilishi lozim bo’lgan ma'lumotdir.
Echishning bir usulini tanlash kerak. Raqamli matematik usullar, elementar operatsiyalar, ya'ni hisoblash jarayonini ajratish va qo’yilgan masalani echimini aniqlash zarur. Ma'lum bir vazifani hal qilish uchun raqamli usullar orasida muammoni hal qilishning eng yaxshi yo’lini tanlang.
Tizimni qayta ishlashning hayotiylik sikli.
3-rasm. Dasturni tashkil etuvchi klasster
Bunung uchun, ixtiyoriy toifadagi o’zgaruvchilarning o’lchamini sizeof funksiyasi orqali aniqlash mumkin. Masalan. Bizga o’zgaruvchilarni komputer hotirasida egallagan hajmini aniqlash kerak bo’lsin.
Dasturi.
#include
using namespace std;
int main ()
{
cout<<”char=”<cout<<”bool=”<cout<<”int=”<cout<<”float=”<cout<<”double=”<return 0;
}
C++tilida ikki ko`rinishdagi operatorlar bor:
O`zlashtirish operatori (=) o`zidan chap tomonda turgan operand qiymatini tenglik belgisidan o`ng tomondagilarni hisoblangan qiymatiga almashtiradi. Masalan,
x = a+b;
ifodasi x operandga a va v o`zgaruvchilarni qiymatlarini qo`shishdan hosil bo`lgan natijani o`zlashtiradi.
O`zlashtirish operatoridan chapda joylashgan operand adresli operand yoki l–kiymat (chap-chap so`zidan olingan) deyiladi. O`zlashtirish operatoridan o`ngda joylashgan operand operatsion operand yoki r–kiymat deyiladi.
O`zgarmaslar faqatgina r–kiymat bo`lishi mumkin va hech qachon adresli operand bo`la olmaydi, chunki dasturning bajarilishi jarayonida o`zgarmas qiymatini o`zgartirib bo`lmaydi.
35 = x // notugri!
l–kiymat esa r–kiymat bo`lishi mumkin.
Matematik operatorlar.
C++tilida 5 ta asosiy matematik operatorlar ko`llaniladi: qo`shish (+), ayirish (-), ko`paytirish (*), butun songa bo`lish (\) va modul bo`yicha bo`lish (%)(qoldiqni olish).
Misol
# include < iostream.h >
int main()
{
int a=10,b=2;
cout << “yigindi “<cout << “ayirma “<cout << “kopaytma “<cout << “bolinma “<cout << “qoldiq “<return 0;
}
HATIJA:
yigindi 12
ayirma 8
kopaytmfa 20
bolinma 5
qoldiq 0
Inkrement va dekrement amallari.
Dasturlarda o`zgaruvchiga 1 ni qo`shish va ayirish amallari juda ko`p hollarda uchraydi. C++tilida qiymatni 1 ga oshirish inkrement, 1 ga kamaytirish esa dekrement deyiladi. Bu amallar uchun maxsus operatorlar mavjuddir.
Inkrement operatori (++) o`zgaruvchi qiymatini 1 ga oshiradi, dekrement operatori (––) esa o`zgaruvchi qiymatini 1 ga kamaytiradi.
Masalan, a o`zgaruvchisiga 1 qiymatni qo`shmoqchi bo`lsak quyidagi ifodani yozishimiz lozim.
a++ //a o`zgaruvchi kiymatini 1 ga oshirdik.
Bu ifodani quyidagicha yozishimiz mumkin edi.
a=a+1;
Bu ifoda o`z navbatida quyidagi ifodaga teng kuchli:
a+=1;
Prefiks va postfiks
Inkrement operatori ham, dekrement operatori ham ikki variantda ishlaydi: prefiksli va postfiksli. Perefiksli variantda ular o`zgaruvchidan oldin (++Age), postfiksli variantda esa o`zgaruvchidan keyin (Age++) yoziladi.
Oddiy ifodalarda bu variantlarni qo`llanishida farq katta emas, lekin bir o`zgaruvchiga boshqa o`zgaruvchining qiymatini o`zlashtirishda ularning qo`llanilishi boshqacha xarakterga ega. Perefeksli operator qiymat o`zlashtirilguncha, postfiksli operator esa qiymat o`zlashtirilgandan keyin bajariladi
Qisqa xisoblash formulalari:
P*=2 ekvivalent P= P *2 ;
P/=2-a ekvivalent P= P /(2-a);
N%=3 ekvivalent N=N%3;
A+=B ekvivalent A=A+B;
A-=3-B ekvivalent A=A-(3-B);
# include < iostream.h >
int main()
{
int A = 30;
int B = 30;
int c;
c=A++ ;
cout << "c=" <
c=A;
cout<<"c="<
c=++B;
cout << "c=" << c <<"\n";
c=B;
cout<< "c=" << c <<"\n";
return 0;
}
HATIJA:
c=30
c=31
c=31
c=31
Standart matematik funktsiyalar
№
|
Matematik ko`rinish
|
C++da yozilishi
|
Izox
|
1
|
|x|
|
abs(x)
|
Soni modulini aniklaydi (faqat butun qismini oladi)
|
2
|
|x|
|
fabs(x)
|
|
3
|
|
sqrt(x)
|
|
4
|
|
pow(x, y)
|
|
5
|
sin(x)
|
sin(x)
|
|
6
|
cos(x)
|
cos(x)
|
|
7
|
tg(x)
|
tan(x)
|
|
8
|
arccos(x)
|
acos(x)
|
|
9
|
arctg(x)
|
atan(x)
|
|
10
|
arctg(x/y)
|
atan2(x,y)
|
|
11
|
|
exp(x)
|
|
12
|
ln(x)
|
log(x)
|
|
13
|
lg10(x)
|
log10(x)
|
|
14
|
|
ceil(x)
|
X ni o`zidan kichik bo`lmagan songa yaxlitlaydi
|
15
|
|
floor(x)
|
X ni o`zidan katta bo`lmagan songa yaxlitlaydi
|
16
|
|
fmod(x,y)
|
X sonono u sonoga bo`lib qoldiqni aniqlaydi
|
Misol . Quyidagi ifodani C++tilida yozing.
#include
#include
int main ()
{
double x, y, z, a, b, c, h;
cout << " x=";
cin >> x;
cout << " y=";
cin >> y;
cout << " z= ";
cin >> z;
a = pow(x, 2*y) + exp(y-1);
b = 1+x * fabs(y - tan(z));
c = 10 * pow(x, 1/3.) - log(z);
h = a / b + c;
cout << "natija h= " << h << endl;
return 0;
}
5>
Do'stlaringiz bilan baham: |