O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi farg’ona davlat universiteti fizika-matematika fakulteti
Download 98.6 Kb.
|
Karimova Dilshoda
Lokal va global o'zgaruvchilar
Deyarli har bir dasturlash tilida lokal o'zgaruvchi tushunchasi mavjud. Ikki funktsiya o'z ma'lumotlarini hisobga olgan holda, go'yo ular bir-biriga aralashmaydi. Bu avvalgi misolda aniq bir omil (4.2-misol). Asosiy va asosiy ikkalasida mahalliy o'zgarmaydiganlar mavjud. Agar men mahalliy bo'lmaganimda, ya'ni funktsiyalar o'rtasida bo'lishgan bo'lsam - nima bo'lishi mumkinligini o'ylab ko'ring. Birinchidan, asosiy funktsiya if holatini baholashning bir qismi sifatida asosiy vazifasini bajaradi . Aytaylik, men 24 qiymatiga egaman. if (prime(i)) cout << i << " is prime" << endl; else cout << i << " is not prime" << endl; // Assume i is not declared here, but is global. int prime(int n) { for (i = 2; i <= sqrt((double) n); i++) if (n % i == 0) return false;
prime.
} Ushbu funktsiya nimani bajarishini ko'rib chiqing. U i ni 2 ga o'rnatadi va keyin uni o'tgan songa bo'linish uchun tekshiradi, 24. Ushbu test o'tadi, chunki 2 teng ravishda 24 ga bo'linadi va funktsiya qaytadi. Ammo men endi 24 o'rniga 2 ga tengman. Qaytgandan so'ng, dastur bajariladi cout << i << " is not prime" << endl;; quyidagilarni bosib chiqaradi: Bu biz xohlagan narsa emas, chunki biz 24 raqamini sinab ko'rdik! Shunday qilib, ushbu muammoga duch kelmaslik uchun, o'zgaruvchini mahalliy deb e'lon qiling, agar buni amalga oshirish uchun yaxshi sabab bo'lmasa. Agar 2.3-misolga nazar tashlasangiz, men mahalliy ekanligini ko'rasiz; asosiy va asosiy har biri o'zlarining i versiyasini e'lon qiladi. O'zgaruvchini mahalliy qilmaslik uchun yaxshi sabab bormi? Ha, garchi sizning tanlovingiz bo'lsa, mahalliyroq borganingiz ma'qul, chunki siz bir-biringizga imkon qadar kam xalaqit beradigan funktsiyalarni xohlaysiz. Global, ya'ni mahalliy bo'lmagan o'zgaruvchilarni har qanday funktsiya ta'rifidan tashqarida e'lon qilish orqali e'lon qilishingiz mumkin. Odatda barcha global deklaratsiyalarni dasturning boshlanishiga, birinchi funktsiyadan oldinroq qo'yish yaxshidir. O'zgaruvchi faqat e'lon qilingan joydan fayl oxirigacha tan olinadi. Masalan, status deb nomlangan global o'zgarishni e'lon qilishingiz mumkin: #include #include using namespace std; int status = 0; void main () { // } Endi nomlangan o'zgaruvchiga har qanday funktsiya kirishi mumkin. Ushbu o'zgaruvchi global bo'lganligi sababli, uning faqat bitta nusxasi mavjud; agar bitta funktsiya holat qiymatini o'zgartirsa, bu boshqa funktsiyalar ko'rgan holat qiymatini aks ettiradi. Download 98.6 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling