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:
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 |
|
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 |
|
floor(a) |
а ni o`zidan katta bo`lmagan eng kichik butun songa yaxlitlash |
floor(12.4)=12 |
|
fmod(a, b) |
a/b ni hisoblashdagi qoldiqni olish |
fmod(4.4, 7.5) = 4.4 |
|
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