• Savolingiz bormi?
  • +998 97 534 03 20
  • turayev.ruziboy@bk.ru
 C++ da ma`lumotlaming asosiy turlari bilan amallar bajarish

C++ da ma`lumotlaming asosiy turlari bilan amallar bajarish

C++ / 2022-11-23

Ma`lumot tiplari. Dasturda biror ma`lumotni saqlash va qayta ishlashda har bir ma`lumot ma`lumot qaydaydir tipda saqlanadi. C++ da sonlarni saqlash uchun birnechta ma`lumot tiplari mavjud. Sonlar 2 xil bo`lishi mumkin: butun va haqiqiy sonlar.

C++ da son tiplari:

Tip

Hotira

Chegarasi

Butun sonlarni saqlovchi o`zgaruvchi tiplari

int

4 bayt

-2 147 483 648 dan 2 147 483 647 gacha

unsigned int

4 bayt

0 dan 4294967295 gacha

short int

2 bayt

-32768 dan 32767 gacha

unsigned short int

2 bayt

0 dan 65,535 gacha

long long

8 bayt

-9 223 372 036 854 775 808 dan 9 223 372 036 854 775 807 gacha

unsigned long long

8 bayt

0 dan 18 446 744 073 709 551 615 gacha

Xaqiqiy sonlarni saqlovchi o`zgaruvchi tiplari

float

4 bayt

+/- 3.4e +/- 38 (~7 raqam)

double

8 bayt

+/- 1.7e +/- 308 (~15 raqam)

long double

12 bayt

+/- 3.4e +/- 4932 (~15 raqam)

 

Butun sonlar uchun unsigned  (ishorasiz) faqat manfiy bo`lmagan sonlarni saqlash uchun hizmat qiladi.

O`zgaruvchini nomlash.

O`zgaruvchilar bilan ishlash uchun ularning har biriga alohida nom berish lozim. O`zgaruvchini nomlashda uning maqsadini tushintirib beradigan ingliz tilida nom qo`yish lozim. Masalan  kub hajmining qiymatini saqlaydigan o`zgaruvchini cube_volume deb nomlagan maqsadga muvofiq.

C++ da o`zgaruvchini nomlashda bir nechta qoidalar mavjud:

  1. O`zgaruvchi nomi harf yoki pastki chiziq(_) belgisi bilan boshlanishi kerak va harflar, raqamlar va pastki chiziq belgisidan iborat bo`lishi lozim.
  2. Boshqa belgilarni, masalan . yoki % qo`llash mumkin emas. Probel ham qatnashmasligi lozim. Ma`noga ega qismlari bir-biridan cube_volume ga o`xshab pastki chiziqcha bilan ajratilishi lozim. Masalancan_volume.
  3. O`zgaruvchini nomlashda kata va kichik harflar farq qiladi. cube_volume va Cube_volume o`z garuvchilari boshqa-boshqa.
  4. C++ da maxsus ma`noga ega bo`lgan masalan int, return, for kabi so`zlarni o`zgaruvchi nomi sifatida qo`llash mumkin emas.

C++ da oz`garuvchini e`lon qilish.

O`zgaruvchini e`lon qilishda dastlab o`zgaruvchi tipi yoziladi, undan so`ng o`zgaruvchi nomi yoziladi.

            int a;

-2 147 483 648 dan 2 147 483 647 gacha bo`lgan butun sonni saqlashi mumkin bo`lgan a deb nomlangan  o`zgaruvchi e`lon qilindi.  O`zgaruvchini tavsiflashda unga qiymat berishimiz va birnechta o`zgaruvchini birgalikda tavsiflashimiz mumkin:

int main() {

            int a = 10, b, c, d = 20;

            double g = 9.81, s;

}

 Bunda a, b, c va int tipidagi o`zgaruvchilar tavsiflandi. a ning qiymati 10, g ning qiymati 9.81, d ning qiymati 20, b, c va s ga qiymat berilmagan.

 

Kiritish va Chiqarish

 

O`zgaruvchilarga qiymatni klaviatura orqali kiritish.  Bu o`zgaruvchilardan foydalanib amallar bajarish va chiqarish mumkin.

Ikki sonning yig`indisini topadigan dastur tuzamiz. Kiruvchi o`zgaruvchilarni saqlash uchun ikkita o`zgaruvchi kerak.

 

#include

 

using namespace std;

 

int main() {

            int a, b;

            cin>>a>>b;

            int c = a + b;

            cout<<c;

}

Bu dasturni ko`rib chiqamiz.

#include - kiritish chiqarish(cin, cout)bilan ishlash uchun e`lon qilinadigan kutibxona.

using namespace std – standart kutibxonalardan foydalanganda har bir dasturda uni yozish lozim

int a, b – a va b o`zgaruvchilarni tavsiflash

cin>>a>>b cin – oz`garuvchilar qiymatlarini kiritish uchun xizmat qiladi. Dastlab kiritilgan sonni a o`zgaruvchi , keying kiritilgan sonni b o`zgaruvchi o`zida saqlaydi. Sonlarni probel yoki enter bilan ajratilagan holda kiritish mumkin.

int c = a + b c  o`zgaruvchi a va b larning qiymatlari yig`indisini o`zlashtiradi. Bunda a va b larning qiymatlari o`zgarmaydi.

cout<

 

Barcha amallar yuqoridan pastga, bir qatorda chapdan o`ngga bajarilib keladi.

 

C++ da matematik funksiyalar.

 

Matemetik funksiyalardan foydalanish uchun math.h jutibxonasini e`lon qilish lozim.

Funksiya

Tavsifi

Misol

abs( a )

a ning moduli

abs(-3)= 3
abs(5)= 5

sqrt(a)

a ning kvadrat ildizi

sqrt(9)=3.0

pow(a, b)

а ni b darajaga ko`tarish

pow(2,3)=8

ceil( a )

а ni o`zidan kichik bo`lmagan eng kichik butun songa yaxlitlash

ceil(2.3)=3.0
ceil(-2.3)=-2.0

floor(a)

а ni o`zidan katta bo`lmagan eng kichik butun songa yaxlitlash

floor(12.4)=12
floor(-2.9)=-3

fmod(a, b)

a/b ni hisoblashdagi qoldiqni olish

fmod(4.4, 7.5) = 4.4
fmod( 7.5, 4.4) = 3.1

exp(a)

еа ni hisoblash

exp(0)=1

sin(a)

sina,  a radiyanda beriladi.

 

cos(a)

cosa,  a radiyanda beriladi.

 

log(a)

a natular logarifmi

log(1.0)=0.0

log10(a)

а ning o`nlik logarifmi

Log10(10)=1

asin(a)

arcsina, bunda  -1.0 < а < 1.0. Natija radiyanda xosil bo`ladi

asin(1)=1.5708

 

 

Bo`linmaning haqiqiy qismi kerak bo`lga, agar o`zgaruvchilar butun son bo`lsa bo`lish amaliga e`tibor qaratish lozim.

Misol. Asosining uzunligi a va balandligi h ga teng bo`lgan uchburchakning yuzasini hisoblovchi dastur tuzing.

Yechimi.

Kiruvchi ma`lumot a va h butun sonlari. Uchburchak yuzasi formulasi: s=.

a va b sonlari butun, lekin s soni haqiqiy son.

#include

using namespace std;

int main() {

            int a, h;

            cin>>a>>h;

            double s = a * h / 2;

            cout<<s;

}

Dasturda hatolik mavjud. Bu hatolik shundan iboratki, butun sonlarni bo`lganda bo`linmaning butun qiymati hisoblanadi. Bo`linmaning haqiqiy qiymatini hisoblash uchun bo`linuvchilardan birining qiymati haqiqiy bo`lishi kerak. Yuqoridagi masalada buni

            double s = a * h / 2.0;

yoki

            double s = 1.0 * a * h / 2;

ko`rinishida yozish orqali to`girlash kiritishimiz mumkin.

Murakkab topshiriq bo`yicha na`muna:

Bunda kiruvchi ma`lumotlar x, y, z haqiqiy sonlari.

Chiquvchi ma`lumot AF.

#include

#include

#include

 

using namespace std;

 

int main() {

            double x, y, z;

            cin>>x>>y>>z;

            double AF = pow(2, -x) * sqrt(x + sqrt(sqrt(fabs(y)+2))) * pow(exp(x-1) / sin(z+2) + 2, 1. / 3);

            printf("%.2f", AF);

}

printf() funksiyasi xaqiqiy sonni nuqtadan so`ng biror xona aniqlikda chiqarish uchun hizmat qiladi.  Agar sonning qiymati 3.5689 ga teng bo`lsa yaxlitlab chiqarilganda 3.57 soni chiqariladi.

 

Katta ifodani yozishni o`rniga uni qismlarga ajratishimiz ham mumkin:

#include

#include

#include

 

using namespace std;

 

int main() {

            double x, y, z;

            cin>>x>>y>>z;

            double A = pow(2, -x);

            double B = sqrt(x + sqrt(sqrt(fabs(y)+2)));

            double C = pow(exp(x-1) / sin(z+2) + 2, 1. / 3);

            double AF = A * B  * C;

            printf("%.2f", AF);

}

 

 

Topshiriqlar.

1-Topshiriq

  1. O`lchami x bo`lgan kubik berilgan. Uning hajmini toping.
  2. Radiuslari r1, r2, r3 bolgan 3 to doira radiuslari berilgan. Doiralarni yuzini hisoblang.
  3. Yuzasi s va balandligi h bo`lgan uch burchag berilgan. Uni asosini toping.
  4. Radiusi r bo`lgan sharning yuzini toping.
  5. a,b va c tamonli uchburchak berilgan. Uch burchagning pirimetiri topilsin.
  6. Asoslariavab, balandligihbo`lgang`olayuzinitoping.
  7. Konusni balandligi h va radiusi r bo`lsa uni hajmi nimaga teng bo`ladi.
  8. Tezligi v bo`lgan avtomabil s masofani qancha vaqtda bosib o`tadi.
  9. h balandlikqan erkin tushayotgan jism qancha vaqtdan keyin erga uriladi.
  10. Jo`mrakdan 1 s da 1 milli litr suv tomsa x yilda necha litr suv tomadi.
  11. 1 dan n gacha sonlar berilgan. Berilgan sonlarni yig`indisini toping.
  12. Massasi m bo`lgan jismni og`irligini toping.
  13. m massali jismga a tezlanish berilganda unga qanchali kuch tasir qiladi.

 


Izoh qoldirish