9-mavzu. Algoritmlashtirish va dasturlash asoslari. Reja



Download 0,57 Mb.
bet16/29
Sana03.03.2022
Hajmi0,57 Mb.
#480256
1   ...   12   13   14   15   16   17   18   19   ...   29
Bog'liq
Dasturlash tillari

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);

  1. # include < iostream.h >

  2. int main()

  3. {

  4. int A = 30;

  5. int B = 30;

  6. int c;

  7. c=A++ ;

  8. cout << "c=" <

  9. c=A;

  10. cout<<"c="<

  11. c=++B;

  12. cout << "c=" << c <<"\n";

  13. c=B;

  14. cout<< "c=" << c <<"\n";

  15. return 0;

  16. }

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;
}


Download 0,57 Mb.

Do'stlaringiz bilan baham:
1   ...   12   13   14   15   16   17   18   19   ...   29




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish