Ob’ekt
|
o‘lchamli
|
Tavsifi
|
Object
|
object
|
CTS ning barcha tiplarining bazaviy sinfi
|
String
|
string
|
Satrli tip
|
SByte
|
sbyte
|
8-razryadli ishorali butun sonlar.
128 ... 127
|
Byte
|
byte
|
8-razryadli ishorasiz butun sonlar.
0 .. 255
|
Int16
|
int
|
16-razryadli ishorali butun sonlar.
32 768.. 32 767
|
UInt16
|
uint
|
16-razryadli ishorasiz butun sonlar.
0 .. 65 535
|
Int32
|
int
|
32-razryadli ishorali butun sonlar.
2 147 483 648 .. 2 147 483 647
|
UInt32
|
uint
|
32-razryadli ishorasiz butun sonlar.
0 ..4 294 967 295
|
Int64
|
long
|
64-razryadli ishorali butun sonlar.
9 223 372 036 854 775 808 .. 9 223 372 036 854 775 807
|
UInt64
|
ulong
|
64-razryadli ishorasiz butun sonlar.
0 .. 18 446 744 073 709 551 615
|
Decimal
|
decimal
|
128-razryadli haqiqiy sonlar.
|
Char
|
char
|
16-razryadli belgili tip.
|
Single
|
float
|
32-razryadli haqiqiy sonlar.
|
Double
|
double
|
64-razryadli haqiqiy sonlar.
|
Boolean
|
bool
|
Mantiqiy tiplar (true/false)
|
Butun tiplar.
3.5-jadval
Tip
|
Diapazoni
|
Formati(razryadi)
|
System.SByte
|
-128…127
|
8 bit, ishorali
|
System.Int16
(System.Short)
|
-32768…32767
|
16 bit, ishorali
|
System.Int32
|
-2 147 483 648…2 147 483 647
|
32 bit, ishorali
|
System.Int64
|
-263…263
|
64 bit, ishorali
|
System.Byte
|
0…255
|
8 bit, ishorasiz
|
System.Uint16
(System.Ushort)
|
0…65535
|
16 bit, ishorasiz
|
System.Uint32
(System.Uint)
|
0…4 294 9 67 295
|
32 bit, ishorasiz
|
System.Long
|
-9 223 372 036 854 775 808-
9 223 372 036 854 775 807
|
64 bit, ishorali
|
System.Long
|
0 - 18 446 744 073 709 551 615
|
64 bit, ishorasiz
|
Haqiqiy tiplar
3.6Jadval
Tip
|
Diapazoni
|
Belgili sonlar xonasi(razryadi)
|
Formati
|
System.Single
|
1.5*1045…3.14*1038
|
7-8
|
4 bayt
|
System.Double
|
-5.0*10324…1.7*10308
|
15-16
|
8 bayt
|
Belgili tiplar
Asosiy belgili tip: System.Char;
Asosiy satrli tip: System.String;
C# da belgili tiplarning qiymatlari bittalik qo‘shtirnoq(apostrof) bilan, satrli tiplarning qiymatlari ikkitalik qo‘shtirnoq bilan beriladi.
Masalan:
String x=”f”;
Char ch=’f’;
Mantiqiy tip
Asosiy mantiqiy tip: System.Bool;
Qabul qiluvchi qiymatlari: true, false.
O’zlashtirish uchun savollar
Til identifikatorida katta va kichik registrlar inobatga olinadimi? Va uzunligi chegaralanganmi?
Identifikator qanday belgilardan boshlanishi mumkin?
Tilda kalit so’zlar nima uchun xizmat qiladi?
Tilda qanday konstantalar turlari mavjud va ular qanday tavsiflanadi?
Tilning boshqaruv belgilari qaysilar va tavsiflari qanday?
C# tilining tiplari tizimi. Ma’lumotlarning tiplari.
4-Ma`ruza: C# tilining amallari. Consoleda kiritish-chiqarish.
Reja:
O‘zgaruvchi va o‘zgarmaslar.
Operatsiya (amal) va ifodalar
C# ning asosiy amallari
Konsolli ilovalar, ma’lumotlarni kiritish va chiqarish.
Tayanch so’z va iboralar: Ifodalar, operatorlar, arifmetik amallar, qiymat berish operatori, til ko’rsatmasi, inkrement, dekrement.
4.1. O‘zgaruvchi va o‘zgarmaslar. O‘zgaruvchilar
O‘zgaruvchi - dastur bajarilishi jarayonida o‘z qiymatini bir yoki bir necha marotaba almashtirishi mumkin bo‘lgan xotiraning nomlangan qismi. Nom esa o‘zgaruvchi belgilangan so‘z, harf yoki harf va belgilar ketma ketligi bo‘lishi mumkin. Dasturda foydalaniluvchi barcha o‘zgaruvchilar aniq e’lon qilinishi lozim. Har bir o‘zgaruvchi e’lon qilinayotganda uning nomi va tipi ko‘rsatiladi. O‘zgaruvchining nomi uning qiymati joylashgan xotira qismiga murojaat qilish uchun xizmat qiladi. Tip esa ma’lumot uchun xotiradan qancha joy ajratilishi lozimligini bildiradi.
O‘zgaruvchilar quyidagicha e’lon qilinishi mumkin:
[= o‘zlashtiriluvchi qiymat];
Misollar:
int a=10, c=12, abc=0;
double b=11.5;
//a=10;
Console.Writeline(a);
bool isEnabled = true;
int x;
double y=3.0;
string hello="Hello World";
char c='s';
int a=4;
int z=a+5;
O‘zgaruvchini e’lon qilishda bir tipli bir nechta o‘zgaruvchilarni bitta tip yozib, so‘ngra shu tipli o‘zgaruvchilarni ketma-ket “,” bilan ajratgan xolda yozish orqali e’lon qilish hamda to‘g‘ridan-to‘g‘ri ularning boshlang‘ich qiymatini berib ketish mumkin, ya’ni ularni initsializatsiya qilib olish mumkin. O‘zgaruvchini initsializatsiya qilish deganda e’lon qilingan o‘zgaruvchiga boshlang‘ich qiymatni berish tushuniladi. Masalan:
int a, b = 1;
Bu yerda:
a int tipidagi o‘zgaruvchi bo‘lib, uning boshlang‘ich qiymati o‘rnatilmagan, ya’ni initsializatsiya qilinmagan;
b int tipidagi o‘zgaruvchi bo‘lib, uning boshlang‘ich qiymati 1 ga teng;
float x = 0.1, y = 0.1f;
Bu yerda: float tipidagi x va y o‘zgaruvchilarga boshlang‘ich xolda 0.1 qiymat o‘zlashtirilmoqda. Farqi, x o‘zgaruvchi initsializatsiya qilinayotganda avval uning tipi double tipidagi konstanta sifatida shakllantiriladi so‘ngra float tipiga o‘zgartiriladi, y o‘zgaruvchi esa to‘g‘ridan to‘g‘ri oraliq o‘zgartirishsiz float tipi sifatida e’lon qilinadi va 0.1 ni o‘zlashtirib oladi.
O‘zgaruvchilarni e’lon qilish jarayonida ularning qiymati to‘g‘ridan-to‘g‘ri ifoda bilan berib ketish mumkin, faqat ifodada ishtirok etuvchi o‘zgaruvchilar avvalroq initsializatsiya qilingan bo‘lishi lozim, masalan:
int b = 1, a = 100;
int x = b * a + 25;
Ba’zi xollarda o‘zgaruvchiga null (bo‘sh) qiymat o‘zlashtirish lozim bo‘ladi. string tipidagi yoki ishorat(ssilka)li tipdagi o‘zgaruvchilar to‘g‘ridan to‘g‘ri null qiymat qabul qiladi.
Misol uchun: string=null;
Oddiy tipdagi o‘zgaruvchilar esa to‘g‘ridan-to‘g‘ri null qiymat olmaydi. Ular bo‘sh qiymat olishi uchun tipni e’lon qilgandan so‘ng ? belgisi qo‘yish lozim bo‘ladi.
int? i = null;
C# da o‘zgaruvchilarni ixtiyoriy joyda e’lon qilish mumkin.
using System;
class ozgaruvchi
{
public static void Main()
{
int i; //o‘zgaruvchini e’lon qilish;
i=10; // o‘zgaruvchiga qiymat berish
Console.WriteLine(i.tostring());// ekranga chiqarish
Console.ReadKey(); //biror tugma bosilguncha kutish
}
}
|
C# da katta va kichik harfli o‘zgaruvchi va o‘zgarmaslarning nomlari bir-biridan farqlanadi. Katta va kichik harfda yozilgan bir hil nomli o‘zgaruvchilar alohida-alohida o‘zgaruvchi va o‘zgarmaslar sifatida hisoblanadi.
C# da o‘zgaruvchining avvalgi qiymatini birga oshirish uchun ketma-ket joylashgan ++, kamaytirish uchun ketma-ket joylashgan –- amal belgilaridan foydalanish mumkin.
Agar ++(--) o‘zgaruvchining o‘ng tomonida joylashgan bo‘lsa, avval qiymati 1 ga oshiriluvchi(kamaytiriluvchi) o‘zgaruvchining joriy qiymati bo‘yicha hisoblash ishlari bajarilib, undan so‘ng uning qiymati 1 ga oshiriladi(kamaytiriladi).
int i=1;
int j=i++;
…
Ushbu xolda j ga avval 1 o‘zlashtiriladi. So‘ngra i ning qiymati birga oshiriladi. Ya’ni, hisoblashdan so‘ng j=1, i=2 bo‘ladi.
Agar ++(--) o‘zgaruvchining chap tomonida joylashsa, u xolda o‘zgaruvchining qiymati hisoblashdan avval 1 ga oshiriladi(kamaytiriladi),so‘ngra hisoblash bajariladi. Masalan:
int i=1;
int j=++i;
...
Ushbu xolda i ning qiymati avval 1 ga oshiriladi, so‘ngra hisoblash natijasi j ga uzatiladi. Ya’ni, hisoblash natijasida, j=2, i=2 bo‘ladi.
Quyidagi xolatni ko‘ramiz:
...
int i=1;
Console.WriteLine(“i=”+i++);
...
Ushbu dastur kodi bajarilishi natijasida, avval i ning joriy qiymati (ya’ni 1) ekranga chiqariladi, so‘ngra i ning qiymatiga 1 qo‘shiladi.
Agar, o‘zgaruvchiga uni e’lon qilish vaqtida to‘g‘ridan-to‘g‘ri qiymat o‘zlashtirish, hisoblash ishlari orqali amalga oshiriladigan bo‘lsa, amal bajariluvchi operandlar barchasi, bir xil tipga ega bo‘lishi hamda natija ham e’lon qilinuvchi o‘zgaruvchi tipi diapazonidan chiqib ketmasligi lozim. Masalan:
int i=15*10; //to‘g‘ri;
byte j=10;
int i=j*50; /* to‘g‘ri; chunki, j qabul qilish mumkin bo‘lgan qiymatlar int tipi diapazonidan chiqib ketmaydi shu sababli qabul qiladi*/;
int k=15+10.0; //xato. 10.0 butun son emas;
byte b=255*3; //Xato. Natija byte diapazonidan chiqib ketadi.
C# dasturlash tilidagi dastur o‘zida uslub (metod) va ma’lumotlarni jamlagan sinflardan tashkil topadi. Sinf bloki ichida to‘g‘ridan to‘g‘ri e’lon qilingan o‘zgaruvchi sinfning maydoni deyiladi. Sinf ichida esa alohida blok ichida sinfning uslub(metod)lari yoziladi. Uslub ichida e’lon qilingan o‘zgaruvchi lokal o‘zgaruvchilar deyiladi. O‘zgaruvchilardan foydalanilganda ularning foydalanish chegarasi degan tushunchaga e’tibor berish lozim. O‘zgaruvchining foydalanish chegarasi uni initsializatsiya qilingan joydan boshlab, dasturning shu qismini yakunlovchi blokgacha davom etadi. Blok – bu figurali qavslar bilan chegaralangan dastur kodidir. Blokning vazifasi – operatorlarni guruhlashdan iborat. C# da har qanday o‘zgaruvchi qandaydir blok ichida e’lon qilinadi, masalan: sinf bloki ichida, sinf uslubining bloki ichida, uslubning ichida joylashgan ichki uslub ichida va h. O‘zgaruvchining nomi uning foydalanish chegarasi ichida, ya’ni u joylashgan blok ichida unikal bo‘lishi lozim. Quyidagi misolni ko‘rib o‘taylik:
class X // X nomli sinfni e’lon qilish
{
int A; // X sinfning A nomli maydonini e’lon qilish
int B; // X sinfning B nomli maydonini e’lon qilish
void Y()
{//--X sinfning Y nomli uslubi bloki boshlanishi---
int C; // C nomli lokal o‘zgaruvchi, uning foydalanish chegarsi faqat Y uslubi bloki ichida
int A; // A nomli lokal o‘zgaruvchi, uning foydalanish chegarsi faqat Y uslubi bloki ichida va X sinfning yuqorida e’lon qilingan A maydoni bilan konflikt bermaydi
{ //====== Y uslubining ichki bloki boshlanishi=========
int D; // D nomli lokal o‘zgaruvchi, uning foydalanish chegarsi faqat ushbu ichki blok ichida
int A; // Bu xato. Chunki Y uslubi ichida A nomli o‘zgaruvchidan avval foydalanilgan!
S = B; // S o‘zgaruvchiga X sinfning V maydoni qiymati o‘zlashtirilmoqda
S = this.A; // S o‘zgaruvchiga X sinfning A maydoni qiymati o‘zlashtirilmoqda
} // ======= Y uslubining ichki bloki oxiri=====
} // X sinfning Y nomli uslubi bloki oxiri---
} // X sinf bloki oxiri
O‘zgaruvchilar dasturda ular e’lon qilingan joyda yaratiladi va ular joylashgan blok tugashida tozalab tashlanadi. Shu blokka qayta murojaat etilganda o‘zgaruvchi yangidan yaratiladi.
O‘zgarmaslar.
O‘zgarmaslar dastur bajarilishi jarayonida bir marta qiymat berilgandan so‘ng qiymatini o‘zgartirib bo‘lmaydigan kattaliklardir. O‘zgarmaslarni C# da const kalit so‘zi bilan e’lon qilinadi.
const double Pi = 3.14;
Agar o‘zgarmas butun boshli dasturning barcha qismlarida foydalanish uchun ruxsat etilgan bo‘lsa, public kalit so‘zi bilan qo‘llaniladi.
public const double Pi = 3.14;
O‘zgarmaslarning qiymati ifoda ko‘rinishida berilishi ham mumkin.
Dostları ilə paylaş: |