Ma’ruza mashg`ulot uchun


Download 0.85 Mb.
bet9/49
Sana19.06.2023
Hajmi0.85 Mb.
#1600219
1   ...   5   6   7   8   9   10   11   12   ...   49
Bog'liq
1-semestr maruzalar

Butun tiplar.
Jadval 2.5-Butun tipli sonlar jadvali

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
Jadval 2.5- Haqiqiy sonlar jadvali

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.


Nazorat uchun savollar

  1. C# qanday dasturlash tili?

  2. C# tilining xususiyatlarini sanang.

  3. C# tilining qanday afzalliklari bor.

  4. C# alfavitiga qanday belgilarni kiritilgan?

  5. Leksema nima?

  6. Identifikatorlar nima?

  7. Kalit so‘zlar haqida gapirib bering.

  8. Amal belgilari nima?

  9. Literallar (konstantalar) va o`zgaruvchilar qanday farq bor?

  10. C# da izohlar haqida nimalar bilasiz?

  11. C# tilining tiplari tizimini sanab bering.



3-Ma`ruza: C# tilining amallari




Reja:

  1. O‘zgaruvchi va o‘zgarmaslar.

  2. Operatsiya (amal) va ifodalar

  3. C# ning asosiy amallari

  4. Konsolli ilovalar, ma’lumotlarni kiritish va chiqarish.

  5. Turlar. Turni o`zgartirish qonuniyati

  6. O‘zgartirishlar

Tayanch iboralar: Ifodalar, operatorlar, arifmetik amallar, qiymat berish operatori, til ko’rsatmasi, inkrement, dekrement.
3.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 V 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.



Download 0.85 Mb.

Do'stlaringiz bilan baham:
1   ...   5   6   7   8   9   10   11   12   ...   49




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling