O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi farg’ona davlat universiteti fizika-matematika fakulteti



Download 98,6 Kb.
bet4/8
Sana01.08.2021
Hajmi98,6 Kb.
#134722
1   2   3   4   5   6   7   8
Bog'liq
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;
return true; // If no divisor found, n is

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:

2 is not prime

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:
1   2   3   4   5   6   7   8




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