Birinchi Qator
Ikkinchi Qator
A V S
D ye U
O’zgaruvchilar va ularni aniQlash
O’zgaruvchilar Quyidagi operatorlarda tavsiflanadi: type, var
type - o’zgaruvchining turi (tipi)
var -har Qanday haQiQiy sonli o’zgaruvchituri.
o’zgaruvchilar yordamida imkoniyatga mos keluvchi o’zgaruvchilar tipi yaratiladi.
S# dagi varcha o’zgaruvchilar ularning Qo’llashdan oldin yaratilib olinishi lozim. Bizga esa kompyurerga o’zgaruvchilar Qanday imkoniyatli va Qanday Qiymatlar Qabul Qilinishini oldindan ko’rsatish kerak bo’ladi.
S# da bir necha har xil tipli o’zgaruvchilar mavjud.
O’zgaruvchilarni aniQlab olish (aniQlashtirish).
O’zgaruvchilarni ishlatishdan oldin ularni dasturdagi o’rnini aniQlashtirib olish lozim bo’ladi.
Dinamik aniQlashtirish
S# da dinamik o’zgaruvchan har - Qanday ifodalarni aniQlashtirish mumkin.
M: silindr hajmini berilgan radius va balandligi asosida topish dasturini kiritilgan:
g’g’ demonstratsiya Qilish dasturi
g’g’dinamik o’zgaruvchilarni aniQlashtirish
Us_ng Syster;
Class Dynlnit
Public stalic voia Marn ( )
Doudlic radius -4 , height – 5;
g’g’ dinamik o’zgaruvchining aniQlashtirish volure double vo_ume – 3.14.16. rad_us * he_qha;
Console. Writeline (silindr hajmi “-volumel”);
Ushbu dasturda uchta lokal o’zgaruvchi – radius, height va volumel Qatnashadi.birinchi ikkitasi ani topshiriQlar, silindir hajmi Qatnashgan o’zgaruvchi dinamik aniQlashtiriladi.
O’zgaruvchili vaQt hayoti va ko’ginish Qismi
Shu vaQtgacha biz ko’rgan hamma o’zgaruvchi metodi bilan berilgan. Lekin S# da o’zgaruvchili lokal va ichki blokni aniQlash mumkin.
1-bo’limdagi blok figunali Qavslar ichida keltirilgan. U berilgan blokning Qism blogidagi elon Qilingan o’zgaruvchilarumumiy ko’rinishini ifodalaydi.
S# da aniQlanayotgan maydon parametrlari maydon tarkivida o’z ifodasini topgan. Kuzatish natijasida o’zgaruvchilardan foydalanish malum miQdorda himoyalangan.
AniQlanayotgan maydon bo’ysinuvchi bo’lishi mumkin. YAngi yaratilayotgan blok Qism bloklarni o’z ichiga oladi. Bu shuni ifodalaydiki tashg’i blok ichki bloklar xususiyati bilan o’xshash bo’ladi.
Bu tushunchalar Quyidagi dasturda o’z aksini topgan.
using System
clfss ScopeDeno
public static vold Main ( )
int x, G’G’ x o’zgaruvchili kod
G’G’ Main ( )da Qilinga metod
X, LC
If(x-10), G’G’ yangi tuzilgan blok
Nt (y -20) G’G’ ramkali o’zgaruvchi blok
Conso e Woirtelino ( QxQ Qy)
X y 2,
Consoio WoirLane
}
}
Ko’rsatmalarda ifodalanishicha, o’zgaruvchilar if blogida e’lon Qilingan. U-100 ning o’z blokida xotolik berishi ko’rsatmada keltirilgan. Agar ko’rsatma o’chirilsa kampulyatsiya vaQtida xatolik yuz beradi. If blokida foydalanilgan o’zgaruvchilar ichki aniQlanayotgan maydondan tashQi maydonga foydalanish uchun imkoniyati belgilanishi zarur. AniQlanayotgan maydondan olingan o’zgaruvchilar berilgan maydonda mavjudligiga etibor berish kerak.
O’zgaruvchi maydondan chiQayotganda Qiymatni saQlayotganini anglatadi.
Shuningdek o’zgaruvchi blokdan chiQayotganda avvalgi Qiymatni yo’Qotadi. O’zgaruvchi navbatdagi blokka kirayotganda Qiymatni o’zgartirilganligini ko’rishi mumkin, Quyidagi dasturda o’z aksini topgan.
Using System:
Class VarInitDemo {
Public static void Main () {
int x:
for (x-0: x<3: xQQ) {
int yq-1; G’G’ o’zgaruvchi blokka kirishdan lodin har safar o’zgartiriladi.
Consoie. Writeline (o’zgaruvchining Qiymati “ Q u teng bo’ladi)
G’G’ hamma vaQt -1 Qiymat kiradi.
U – 100;
Console.WriteLine (o’zgaruvchining Qiymati “ Qu ga teng);
}
}
}
Quyida ushbu dasturning bajarilishi ko’rsatilgan:
O’zgaruvchining Qiymati : 1 teng
Endi o’zgaruvchining Qiymati : 100 ga teng
O’zgaruvchining Qiymati : -1 teng
Endi o’zgaruvchining Qiymati : 100 ga teng
O’zgaruvchining Qiymati : 1 teng
Endi o’zgaruvchining Qiymati : 100 ga teng
For sikli ichida o’zgaruvchining Qiymati 100 ga tenglansa yikl yakunlanganligini anglatadi.
S#va S da aniQlanayotgan maydonlar bilan ishlash farQini ko’rish mumkin.
Blokda Qism blok va undagi o’zgaruvchi ichki maydonda e’lon Qilingan bo’lsa, u asosiy blok uchun o’zgaruvchi sifatida foydalanilmaydi.
Quyidagi dasturda ikki o’zgaruvchini bir noma’lum bilan e’lon Qilingan;
Using System;
Class NestVar {
Public static vold Main ( ) {
Int count;
For(count – 0; count < 10; count q count Q1);
Console. Writeline (sikl nomeri “ Qcount);
Int count;G’G’ buni e’lon Qilish shart emas ‘ ! ‘
For (count q 0; count < 2; count Q1)
Cjnsole. Writeline (“dasturda xatolik bor”);
}
}
}
Do'stlaringiz bilan baham: |