Ishchi muhitini yaratish: C++ uchun kompilyator va ide ni o'rnatish

Ishchi muhitini yaratish: C++ uchun kompilyator va IDE ni o'rnatish
Dasturlashga kirish, dasturlash tillarining tuzilmasi
Ishning maqsadi: Algoritmlar tuzish, C++ dasturlash tili bilan tanishish va unda ishlashni o’rganish, chiziqli va tarmoqlanish jarayonlariga algoritm va dastur tuzish ko’nikmalarini shakllantirish.
Nazariy ma’lumotlar: C++ tili Byarn Straustrup tomonidan 1980 yil boshlarida ishlab chiqilgan. Bu til asosan tizim sathida dasturlovchilar uchun yaratilgan.
C++ algoritmik tilining alifbosi:
Lotin va kirill harflari (katta va kichik);
0 dan 9 gacha bo’lgan arab raqamlari;
Maxsus belgilar: - + * / : ; . , % ? ! = “” № < > { } [ ] ( ) $ # & ^ va h.k.
Dastur bajarilishi jarayonida o’z qiymatini o’zgartira oladigan kattaliklar o’zgaruvchilar deyiladi. O’zgaruvchilarning nomlari harfdan boshlanuvchi harf va raqamlardan iborat bo’lishi mumkin. O’zguruvchilarni belgilashda katta va kichik harflarning farqlari bor. (A va a harflari 2 ta o’zgaruvchini bildiradi) Har bir o’zgaruvchi o’z nomiga, toifasiga, xotiradan egallagan joyiga va son qiymatiga ega bo’lishi kerak. O’zgaruvchiga murojaat qilish uning ismi orqali bo’ladi. O’zgaruvchi ishlatilishidan oldin u aniqlangan bo’lishi lozim.
O’zgaruvchilarning son qiymatlari quyidagi ko’rinishda yoziladi:
Butun toifali o’nlik sanoq tizimsida: ular faqat butun sondan iborat bo’ladilar. Masalan: 5; 76; -674 va h.k.
Sakkizlik sanoq tizimsidagi sonlar: 0 (nol) dan boshlanib, 0 dan 7 gacha bo’lgan raqamlardan tashkil topadi. Masalan: x=0453217; uning o’zgarish intervali -128 dan +127 gacha yoki apostrof ichidagi ixtiyoriy 1ta simvol. Xotiradan 1 bayt joy oladi. Simvollar ASCII kodlariga mos keladi. ( ASCII – American Standart Code for Information Interchange)
Butun toifali o’zgaruvchilar: int. Masalan: int a, i, j ; Bu yerda dasturda ishlatilayotgan a, i, j o’zgaruvchilarining toifasi butun ekanligi ko’rsatildi. Bu toifadagi o’zgaruvchilar 2 bayt joy egallaydi. Ularning o’zgarish intervali: -32768 dan +32767 gacha; (Hozirgi 32 razryadli kompyuterlarda 4 bayt joy oladi va oralig’i 2 marta oshgan).
Butun toifali katta (uzun) o’zgaruvchilar: long. Masalan: long s, s2, aa34; Bu toifadagi o’zgaruvchilar 4 bayt joy egallaydi. Ular –2147483648 dan +2147483647 oraliqdagi sonlarni qabul qilishi mumkin.
Ishorasiz butun o’zgaruvchilar: unsigned short – 2 bayt joy oladi, o’zgarish intervali 0 dan 65535 gacha; unsigned long – 4 bayt joy oladi, o’zgarish intervali: 0 dan 4294967295 gacha; unsigned char – 1 bayt joy oladi, o’zgarish chegarasi 0 dan 255 gacha.
Haqiqiy toifadagi o’zgaruvchilar: float. Masalan: float a, b: Bu yerda dasturda ishlatilayotgan a, b o’zgaruvchilarining toifasi haqiqiy ekanligi ko’rsatilgan. Bu toifadagi o’zgaruvchilar 4 bayt joy egallaydi va qabul qilish chegarasi 10-38 dan 10+38 gacha.
Katta yoki kichik qiymatli o’zgaruvchilarni ifoda etishda double toifasi ishlatiladi. Ular uchun 8 bayt joy ajratiladi va qabul qilish chegarasi 10-304 dan 10+304 gacha.
Juda katta yoki juda kichik qiymatli o’zgaruvchilar uchun long double toifasi ishlatiladi, u 10 bayt joy oladi va qabul qilish chegarasi 3.4*10-4932 dan 1.1*10-4932 gacha.
Qator toifasidagi o’zgaruvchilar uchun ham char toifasi belgilangan. Ular ham 1 bayt joy oladi va 0 dan 256 tagacha bo’lgan simvollar ketma-ketligidan iborat bo’lishi mumkin. Satr toifasidagi o’zgaruvchilar qo’shtirnoq (“) ichida yoziladi.
C++ tilida o’zgaruvchilarni initsializatsiya qilish degan tushuncha ham mavjud. Initsializatsiya qilish degani o’zgaruvchini e’lon qilish barobarida unga boshlang’ich qiymatini ham berish demakdir. Masalan: int a=5, b, s=-100; - a, b, s o’zgaruvchilari butun toifali ekanligi ko’rsatildi va a o’zgaruvchisiga 5 (a=5), s o’zgaruvchisiga esa –100 (s=-100) boshlang’ich qiymatlar berildi.
Dastur bajarilishi jarayonida o’z qiymatini o’zgartira olmaydigan kattaliklar o’zgarmaslar deyiladi. Masalan: x=1; bo’lsa keyinchalik x=x+5 deb yozib bo’lmaydi. O’zgarmaslarni const so’zi bilan ko’rsatiladi. Maslan: const int x=95; float y=9.17;
1-jadval. C++ tilida standart funksiyalarning yozilishi
Funksiya Ifodalanishi Funksiya Ifodalanishi
sin x sin(x)
sqrt(x); pow(x,1/2.)
cos x cos(x)
abs(x) yoki fabs(x)
tg x tan(x) arctan x atan(x)
ex exp(x) arcsin x asin(x)
ln x log(x) arccos x acos(x)
lg x log10(x)
pow(x,2/3.)
xa pow(x,a) log2x log(x)/log(2)
Direktivalar – # include direktiva – instruksiya degan ma’noni beradi. C++ tilida dasturning tuzilishiga, ya’ni ehtiyojiga qarab, kerakli direktivalar ishlatiladi. Ular < > belgisi orasida keltiriladi. Umuman olganda quyidagi direktivalar mavjud (jami 32 ta):
#include - S da oddiy kiritish/chiqarish dasturi uchun. Bu yerda std - standart, i – input, o - output degani.
#include - C++ da kiritish/chiqarish uchun, oddiy amallar bajarilsa.
#include - standart funksiyalarni ishlatish uchun.
#include - dasturning tashqi ko’rinishini shakllantirish uchun.
#include - satr toifasidagi o’zgaruvchilar ustida amallar bajarish uchun.
#include - standart kutubxona fayllarini chaqirish uchun.
#include - kompyuter ichidagi soat qiymatlaridan foydalanish
uchun.
#include - C++ tilining grafik imkoniyatlaridan foydalanish uchun.
Asosiy funksiya - main( ) hisoblanadi. Bu funksiya dasturda bo’lishi shart. Umuman olganda C++ dagi dastur funksiyalardan iborat deb qaraladi. main ( ) funksiyasi { boshlanadi va dastur oxirida berkitilishi shart } . main – asosiy degan ma’noni beradi. Bu funksiya oldida uning toifasi ko’rsatiladi. Agar main ( ) funksiyasi beradigan (qaytaradigan) javob oddiy so’z yoki gaplardan iborat bo’lsa, hech qanday natija qaytarmasa, void so’zi keltiriladi. main ( ) funksiyasi dastur tomonidan emas, balki OS tomonidan chaqiriladi. OSga qiymat qaytarish shart emas, chunki u bu qiymatdan foydalanmaydi. Shuning uchun main ( ) funksiyasining turini void deb ko’rsatganimiz ma’qul. Har bir funksiyaning o’z argumenti bo’ladi, shuning uchun main funksiya ( ) lari ichiga uning parametri keltiriladi. Ba’zan u bo’sh bo’lishi ham mumkin. Bu funksiyadan chiqish uchun odatda return operatori ishlatiladi. 0 (nol) qiymatining qaytarilishi operasion tizimga ushbu dastur normal bajarilib turganini bildiradi. return orqali qaytadigan qiymat toifasi funksiya e’lonidagi qaytish toifasi bilan bir xil bo’lishi kerak. Masalan int main ( ) va 0 (nol) qiymat butun toifalidir. Bu funksiyadan so’ng lokal o’zgaruvchilar, qism dasturlar, ularning haqiqiy parametrlar e’lon qilinadi. So’ngra dasturning asosiy operatorlari (kiritish/chiqarish, hisoblash va h.k.) yoziladi. Agar bu operatorlar murakkab toifali bo’lsalar, ularni alohida {} qavslarga olinadi. C++ tilida dastur kichik harflarda yoziladi. Ba’zi operatorlar katta harflar bilan kelishi mumkin, bunday xollarda ular alohida aytib o’tiladi. Operatorlar oxiriga ; belgisi qo’yiladi. Operatorlar bir qatorga ketma-ket yozilishi mumkin. Dasturda izohlar ham kelishi mumkin, ular /* ....*/ belgisi orasiga olinadi. Agar izoh bir qatorda tugasa, uni // belgisidan keyin yoziladi. Masalan:
main ( ) // C++ tilining asosiy funksiyasi
Tilda quyidagi amallardan foydalanish mumkin:
Arifmetik amallar: +, -, /, *, %. Barcha amallar odatdagidek bajariladi, faqat bo’lish amali butunga bo’lish bajariladi, ya’ni agar butun sonlar ustida bajarilayotgan bo’lsa, natija doim butun bo’ladi, ya’ni kasr qism tashlab yuboriladi (9/5=1; vaxolanki 1,8 bo’lishi kerak). Shuning uchun surat yoki maxrajiga nuqta (.) qo’yilsa, natija ham haqiqiy bo’ladi (9./5=1.8). % belgisi (modul operatori) esa butun sonni butun songa bo’lgandan hosil bo’ladigan qoldiqni bildiradi.
Masalan: 9 % 5=4
Taqqoslash amallari: = = (tengmi?); != (teng emas); < ; > ; >=; <=
Mantiqiy amallar: && (and) mantiqiy ko’paytirish; || (or) mantiqiy qo’shish; ! (not) mantiqiy inkor. Mantiqiy amallarni ixtiyoriy sonlar ustida bajarish mumkin. Agar javob rost bo’lsa, natija 1 bo’ladi, agar javob yolg’on bo’lsa, natija 0 bo’ladi. Umuman olganda 0 (nol) dan farqli javob rost deb qabul qilinadi.
Masalan: i>50 && j==24 yoki s1 < s2 && (s3>50 || s4<=20);
Yoki 6 ≤ x ≤ 10 yozuvini x>=6 && x<=10 deb yoziladi
Qiymat berish amallari:
a=5; b = 2*c; x = y = z =1; a = (b = c)*d // 3=5 deb yozib bo’lmaydi qabul qildim va almashtirdim deb nomalandigan amallar:
+ = : a+=b → a = a + b;
- = : a-=b → a = a - b;
* = : a*=b → a = a * b;
/ = : a/=b → a = a / b;
% = : a%=b → a = a % b;
inkrement operatsiyasi (++) ikki ma’noda ishlatiladi: o’zgaruvchiga murojaat qilinganidan keyin uning qiymati 1 ga oshadi (a++ postfiks ko’rinishi) va o’zgaruvchining qiymati uning murojaat qilishdan oldin 1 ga oshadi (++a prefix ko’rinishi);
dekrement operatsiyasi (--), xuddi inkrement operatsiyasi kabi, faqat kamaytirish uchun ishlatiladi. Masalan: s = a + b++ (a ga b ni qo’shib keyin b ning qiymatini 1 ga oshiradi); s = a+(--b) (b ning qiymatini 1 ga kamaytirib, keyin a ga qo’shadi).
Yuqoridagi standart funksiyalardan tashqari yana quyidagi funksiyalar ham ishlatiladi:
ceil (x) - x ni x dan katta yoki unga teng bo’lgan eng kichik butun songacha yaxlitlash. Masalan: ceil (12.6) = 13.0; ceil (-2.4) = -2.0;
floor (x) - x ni x dan kichik bo’lgan eng katta butun songacha yaxlitlash. Masalan: floor (4.8) = 4.0; floor (-15.9) = -16.0; floor(12.1) = 12; floor(-12.1)=-13;
fmod (x,y) – x / y ning qoldig’ini kasr son ko’rinishida berish. Masalan: fmod(7.3, 1.7) = 0.5;
|