=
new (
);
Bunday holda, strukturada aniqlangan konstruktor chaqiriladi.
System nomlar fazosida quyidagi strukturalar aniqlangan:
Boolean, DateTime, Int64, UInt64, Byte, Decimal, Intl6, Single, UIntl6
Char, Double, Int32, TimeSpan, UInt32 va boshqalar.
4-masala
struct Sana{unsigned char kun,oy;unsigned int yil;}; enum Hafta_ kuni{dush,sesh,chor,pay,juma,shan,yak}; Sana d; Quyidagi masalalar yechilsin: a) d-sanaga tegishli bo‘lgan oydagi kunlar sonini hisoblovchi Oy_kunlari(d) funksiyasi tuzilsin (kabisa bo‘lmagan yil uchun); b) d-sana to‘g‘riligini (masalan, 31 iyun bo‘lmasligi va h.k.) tekshiradigan mantiqiy Tugri_sana(d) funksiyasi tuzilsin. d) 1-yilning 1-yanvaridan to d-sanagacha necha kun o‘tganligini hisoblaydigan Kunlarsoni(d) funksiyasi tuzilsin. e) d - sana haftani qaysi kunini aniqlaydigan Hafta_kuni(d) funksiyasi tuzilsin.
Dasturi:
struct Sana { public byte kun; public byte oy; public uint yil; } enum Hafta_kuni { dushanba, seshanba, chorshanba, payshanba, juma, shanba, yakshanba } class Program { static int Oy_kunlari(Sana d) { int kunlar = DateTime.DaysInMonth((int)d.yil, (int)d.oy); return kunlar; } static bool Tugri_sana(Sana d) { bool tugri = true; if (d.kun < 1 || d.kun > 31) tugri = false; else { switch (d.oy) { case 2: if (d.kun > 29) tugri = false; break; case 4: case 6: case 9: case 11: if (d.kun > 30) tugri = false; break; default: break; } } return tugri; } static int Kunlarsoni(Sana d) { DateTime startDate = new DateTime((int)d.yil, 1, 1); DateTime endDate = new DateTime((int)d.yil, (int)d.oy, (int)d.kun); int kunlar = (int)(endDate - startDate).TotalDays + 1; return kunlar; } static Hafta_kuni Hafta_kuni(Sana d) { DateTime date = new DateTime((int)d.yil, (int)d.oy, (int)d.kun); DayOfWeek haftaKuni = date.DayOfWeek; return (Hafta_kuni)haftaKuni-1; } static void Main(string[] args) { Sana d; Console.Write("Kun: "); d.kun = byte.Parse(Console.ReadLine()); Console.Write("Oy: "); d.oy = byte.Parse(Console.ReadLine()); Console.Write("Yil: "); d.yil = uint.Parse(Console.ReadLine());
int oy_kunlari = Oy_kunlari(d);
Console.WriteLine("Oydagi kunlar soni: " + oy_kunlari);
bool tugri_sana = Tugri_sana(d);
Console.WriteLine("Sana to'g'ri: " + tugri_sana);
int kunlarsoni = Kunlarsoni(d);
Console.WriteLine("1-yilning 1-yanvaridan " + d.kun + "." + d.oy + "." + d.yil + " gacha " + kunlarsoni + " kun o'tdi");
Hafta_kuni hafta_kuni = Hafta_kuni(d); Console.WriteLine("Sana " + hafta_kuni + " kuni "); Console.ReadLine();
Console.ReadKey();
}
} }
Natija:
Kun: 14
Oy: 6
Yil: 2023
Oydagi kunlar soni: 30
Sana to`g`ri: True
1-yilning 1-yanvaridan 14.6.2023 gacha 165 kun o`tdi
Sana chorshanba kuni
5-Mavzu: Berilganlar oqimiga doir masalalar yechish
C# da berilganlar oqimiga doir masalalar, amaliyotda ko'p ishlatiladigan statistik ishlovchi dasturlarni yaratishda yaxshi bo'ladi. Bunday dasturlarni yaratishda, kiritilgan ma'lumotlarni to'plab, bo'luvchi, o'rta arifmetigini aniqlovchi va ko'plab boshqa operatsiyalar bajaradigan algoritmlar yozish kerak.
Berilganlar oqimiga doir masalalarning ba'zilari quyidagi ko'rinishda amalga oshiriladi:
1. Ma'lumotlarni to'plash: Bu, foydalanuvchidan berilgan miqdorda ma'lumotlarni to'plash operatsiyasini o'z ichiga oladi. Ko'pincha, bu ma'lumotlar fayl yoki foydalanuvchidan qabul qilinishi mumkin.
2. Bo'luvchiga ayirish: Bu operatsiyada, ma'lumotlar ro'yxatga yoziladi va ular statistik ko'rsatkichlar ko'rinishida tahlil qilinadi. Bular tahlil qilish jarayonida quyidagi o'rtacha, summa, butunlashtirilgan qiymat va boshqa o'rtoq hisoblashni o'z ichiga oladi.
3. O'rta arifmetigi: Bu, ko'pincha tahlil qilingan ma'lumotlar uchun o'rta arifmetigini topishning bir turidir. Bu ko'pincha, sonlarni qo'shish va ularga bo'luvchiga ayirish jarayonlari yordamida amalga oshiriladi.
4. Turni ko'paytirish: Bu operatsiya, ma'lumotlar to'plamining har bir elementini ko'paytiradi.
Berilganlar oqimiga doir masalalarni hal qilish uchun, C# da qo'llaniladigan dasturiy bir qatorlar yoziladi, yordamida foydalanuvchidan ma'lumotlarni qabul qilib, ularni tahlil qilish va undan foydalanish mumkin bo'ladi. Bu jarayon, statistik ko'rsatkichlar aniqlanganidan so'ng, o'zaro solishtiriladi va ma'lumotlarning bo'yicha tavsiyalar beriladi.
5-masala
Berilganlar oqimiga mos keluvchi to'plam elementlarini C# dasturida toping.
Dastur:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{ // Berilganlar oqimi
int[] berilganlar = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Mos keluvchi to'plam elementlarini saqlash uchun bo'sh List
List mosKeluvchilar = new List();
// Mos keluvchi elementlarni topish
foreach (int element in berilganlar)
{
if (element % 2 == 0) // Oqimdagi shartni kerakli o'zgartiring
{
mosKeluvchilar.Add(element);
}
}
// Natijani chiqarish
Console.WriteLine("Mos keluvchi elementlar:");
foreach (int element in mosKeluvchilar)
{
Console.WriteLine(element);
}
Console.ReadKey();
}
}
}
Natija:
Mos keluvchi elementlar:
2
4
6
8
10
6-Mavzu: Fayllar bilan ishlash
Fayl bilan ishlash fayllarni boshqarishni o'z ichiga oladi. Fayllar nomi va katalog yo'li bilan diskda saqlanadigan ma'lumotlar to'plamidir. Fayllar mos ravishda ma'lumotlarni o'qish va yozish uchun ishlatiladigan kirish va chiqish oqimlarini o'z ichiga oladi.
C# da fayllar bilan ishlash, fayllarni yaratish, ochish, yopish, o'qish va yozish uchun muhim amallarni o'z ichiga oladi. Fayllarni yaratish va ushlab qolishning yaxshiroq tuzilishi, dasturlarni bajarishda yaxshi tashqi ma'lumotlarga erishishga yordam beradi. Fayllarni C# da ushlab qolish uchun quyidagi klasslar yordamida ishlatiladi:
1. FileStream: Bu, bog'lanilgan faylga erishish uchun qulay sinfdir. FileStream sinfi yordamida fayl yozish, ochish va o'qish amalga oshiriladi.
2. StreamReader va StreamWriter: Bu, matnli ma'lumotlarni yozish va o'qish uchun qulay sinflar. StreamReader sinfi yordamida faylni o'qish va StreamWriter sinfi yordamida faylga yozish mumkin.
Fayllarni ochish va yozish uchun ko'pincha ushbu qadamlar amalga oshiriladi:
1. Faylni yaratish: Bu, faylni e'lon qilish va nomini aniqlash jarayonini o'z ichiga oladi.
2. Faylni ochish: Bu, faylni ochish va ularni o'qish yoki yozish uchun tayinlangan sinflarga bog'lash jarayonini o'z ichiga oladi.
3. Faylni yopish: Bu, faylni yopish jarayonini amalga oshiradi va fayldagi ma'lumotlar saqlanadi.
4. Faylni o'qish: Bu, faylni o'qib olish jarayonini o'z ichiga oladi.
5. Faylga yozish: Bu, faylga yozib olish jarayonini o'z ichiga oladi.
Fayllarni ishlashda shaffof muhit yaratishning yoki ushbu sinflar yordamida oddiy xatolik tuzatishning birinchi qadamida bog'liq sinflar qayd etish juda ahamiyatli. Fayllarni ochish yoki yozishda xatoliklar paydo bo'lsa, undan to'g'ri talab qiling va ma'lumotni yaxshi kodlogyorlik xususiyatlaridan foydalanib va ishlash jarayonini tuzating.
6-masala Berilgan fayldagi matn ma'lumotini C# dasturida o'qib olib, har xil harflarning va belgilar sonini aniqlab chiqing va natijani konsolga chiqaring.
Dasturi:
using System; using System.IO; using System.Linq; class Program { static void Main() { Console.WriteLine("Faylni tanlang:"); string filePath = Console.ReadLine(); // Fayl tanlash yo'li klaviaturadan o'qish
if (File.Exists(filePath))
{
string[] lines = File.ReadAllLines(filePath); // Fayldagi barcha qatorlarni o'qish
// Matn ma'lumotini birlashtirish
string text = string.Join(Environment.NewLine, lines);
// Har xil harflarning va belgilar sonini hisoblash
int harflarSoni = text.Where(char.IsLetter).Distinct().Count();
int belgilarSoni = text.Distinct().Count();
// Natijani chiqarish
Console.WriteLine("Har xil harflar soni: " + harflarSoni);
Console.WriteLine("Belgilar soni: " + belgilarSoni);
}
else
{
Console.WriteLine("Berilgan fayl mavjud emas.");
}
Console.ReadKey();
}
}
}
Natija:
Faylni tanlang:
C:\Users\lenovo\Documents\Holiday.pptx
Har xil harflar soni: 736
Belgilar soni: 1087
7-Mavzu: Sinf va obyektlarni hosil qilish va get, set bloklarini aniqlash
C# da sinf va ob'ektlarni hosil qilish, get va set bloklarini aniqlash ish faoliyatida juda keng ishlatiladigan jarayon bo'lib, sinf va ob'ektlar dasturlashdagi o'ziga xos qavatlar hisoblanadi.
Sinf va ob'ektlar dasturlashdagi asosiy nosozliklaridan biri bo'lib, Sinf ko'pincha o'zida sinfga tegishli bir nechta ob'ektlarni yaratish uchun xususiyatlar yig'indisidir. Sinf, bitta mezon-bo'lim mamlakati sifatida tavsiflanadi; yani, sinf ichida yordam (member method) va xususiyat (member variable)larning yig'indisi mavjud.
C# da ob'ektlarni hosil qilish uchun sinf ichidagi yordamlar ishlatiladi. Bu yordamlar ob'ektlarning aniqlangan turiga mos keladigan sinf ichidagi yordamlar hisoblanadi. Ob'ektlarni hosil qilish mumkin bo'lgan qadam-quyidagi ko'rinishda amalga oshiriladi:
1. Sinf ichidagi konstruktor yordamidan foydalanib, yangi obyekt yaratish.
2. Ob'ekt ichiga birinchi qiymatlarni yozish.
Sinf ichidagi xususiyatlar va yordamlar yordamida amaliyot kiritish va o'qish uchun quyidagi asosiy bloklar ishlatiladi:
1. Get: Bu blok, xususiyatlardan qiymat olish uchun yordam hisoblanadi.
2. Set: Bu blok, xususiyatga qiymat o'rnating.
3. Blok: Blok, ushbu xususiyatning ichidagi yordamlardan foydalanishga imkon beradi.
C# dasturlash tilida, sinflar ob'ektlarni hosil qilish uchun yetarlicha kuchli blok hisoblanadi. Get va Set bloklari esa sinf ichidagi xususiyatlarga o'zgarish kiritishga yordam beradi
C# uchun, sinf va ob'ektlarni hosil qilish, get va set bloklarini aniqlash o'rganish juda maqsadli bo'ladi, chunki bu bloklarni ishlatish orqali, dasturchilarni yaxshi yozishning asosiy usuli bo'lsin, sinflar va ob'ektlarni yaratish, xususiyat va yordam qo'shishning eng yaxshi yo`li bo'lsa osonlik va barqarorlikdir.
7-masala
Shaxs sinfi tuzing va uning foydalanuvchining ismini va yoshini saqlaydigan get va set bloklarini aniqlang. Foydalanuvchi sinf qilinganidan so'ng, ob'ekt yaratib, uning maydonlariga qiymatlar berib, yana ob'ektni konsolga chiqaring.
Dasturi:
Person person = new Person(); // Shaxs ob'ektini yaratish
Console.WriteLine("Foydalanuvchi ma'lumotlarini kiriting:");
Console.Write("Ism: ");
string ism = Console.ReadLine(); // Ismni o'qish
person.Name = ism; // Ism qiymatini o'rnatish
Console.Write("Yosh: ");
int yosh = int.Parse(Console.ReadLine()); // Yoshni o'qish
person.Age = yosh; // Yosh qiymatini o'rnatish
Console.WriteLine();
Console.WriteLine("Foydalanuvchi ma'lumotlari:");
Console.WriteLine("Ism: " + person.Name);
Console.WriteLine("Yosh: " + person.Age);
Console.ReadKey();
}
}
class Person
{
private string ism;
private int yosh;
public string Name
{
get { return ism; } // Ismni olish
set { ism = value; } // Ismni o'rnatish
}
public int Age
{
get { return yosh; } // Yoshni olish
set { yosh = value; } // Yoshni o'rnatish
}
}
}
Natija:
Foydalanuvchi ma`lumotlarini kiriting:
Ism: Hilola
Yosh: 18
Foydalanuvchi ma`lumotlari:
Ism: Hilola
Yosh: 18
8-Mavzu: Berilganlardan foydalanish statik metodlar bilan ishlash
C# da berilganlardan foydalanish, statik metodlar bilan ishlashga qarshi kurashadigan dasturchilar uchun eng muhim qismdir. Bu yordam to'plamini ishlatish orqali, berilganlarni initsiallashtirish, identifikatsiya qilish, aniqlovchi va ko'p boshqa amallar amalga oshiriladi.
Statik metodlar, sinf biznes tizimi to'plamida ishlatiladigan sinflarning barcha ob'ektlari uchun nomsiz va nomli usullarga egadir. Statik metodlar, sinf ichidagi yordamlardan aniqlanadigan har bir ma'lumotlar yig'indisi uchun barcha ob'ektlar uchun bitta nusxa saqlashni namoyon uchun ishlatiladi. Shuningdek, Statik metodlar sinf ichidagi xususiyatlarni chaqirish uchun foydalaniladigan ko'p qo'llanmalarini yangi sinflarga qo'shishning eng yaxshi yo`li bo'lsa, xususiyatlardan nolga degratatsiya qilishni, shuningdek, boshqa muhim muammoni hal etishni osonlashtiradi.
C# da statik metod qo'llanmalari uchun System.Math sinfi, System.Array sinfiga nisbatan qulayliklarni taqdim etadi, chunki ushbu sinflar ko'plab qo'llab-quvvatlarning bog'lanilgan o'rnatilishini o'z ichiga olish uchun has, yordam ve xususiyatlar mavjud.
C# da statik metodlarni jihatdan, foydalanishning avval quyidagi qadamlar amalga oshiriladi:
1. Statik metodining ismini yozish.
2. Methodalarga argumentlarni qo'shing.
3. Argumentlar siniflarning to'plamlarida yoki yangi sinflar yaratish yordamida aniqlanishi mumkin.
4. Statik metoddan mos keluvchi qiymatni qaytarish.
Statik metodlar, C# dasturlash tilida xuddi ko'p sinflarning konstruktorlari va yosh bo'lib, keng qo'llaniladi. Statik metodlar birinchi marta talab qilinsa, ular bir bor ishga tushiriladi va Siz sinfni yaratishdan bir qat'orda avval yuklab olindiqdagi sabitliklar va boshqa ma'lumotlarni identifikatsiya qilishingiz kerak bo'ladi.
Statik metodlarni C# dasturlash tilida foydalanish shaffof va samarali dasturlash yoralari yordamida yuzaga keladi.
8-masala
Berilganlar oqimidagi sonlarni qo'shganingizda natija 10 dan katta bo'lsa “ natija 10 dan katta “ aks holda “ natija 10 dan kichik ” yozing. Ushbu vazifani static metod yordamida bajarib berishingiz kerak.
Dasturi:
class Program
{
static void Main(string[] args)
{
int[] numbers = { 5, 3, 8, 2, 4 }; // Berilganlar oqimi
int sum = CalculateSum(numbers); // Summani hisoblash
string result = sum > 10 ? "natija 10 dan katta" : "natija 10 dan kichik";
Console.WriteLine(result);
Console.ReadKey();
}
static int CalculateSum(int[] numbers)
{
int sum = 0;
foreach (int number in numbers)
{
sum += number;
}
return sum;
}
}
}
Natija:
Natija 10 dan kata
9-Mavzu: Voris sinflarni yaratish va foydalanish
C# da Voris sinflar, sinflar ichki o'zgarishni o'zgartirish yoki ishlab chiqish uchun eng yaxshi yo'l bo'lib keladilar. Bu, bir usuldur, shunda...
Voris sinfi, boshqa sinfdan farq qiladigan qismlarini turli sinflardan olishga imkon beradi. Vorislar sinflari, birinchilardan turli xususiyatlar va yordamlar bilan boshqa sinflardan meros bo'lish imkoniyatini tashkil qiladi.
C# dasturlash tilida, sinfdan voris sinf yaratish quyidagi ko'rinishda amalga oshiriladi:
class vorisSinfi : asosiySinfi
{
}
Bu yerda, vorisSinfi sinfi asosiySinfi sinfga vorisdir. AsosiySinfi sinfi boshqa sinf ichidagi xususiyat va yordamlarni aniqlashda ishlatiladi.
Voris sinfi yaratib borish jarayonida Microsoft Visual Studio IDE yordamida amalga oshiriladi. IDE yordamida voris sinfi yaratilgandan so'ng, birinchilardan turli xususiyat va yordamlar yarating yoki boshqa sinfdan ko'chirib oling.
Voris sinfi, sinf ichidagi xususiyatlar va yordamlar farqini qiladigan qismini ayiradi. Vorislar sinfiga meros bo'lgan sinflar, boshqa sinflardan xususiyatlari, yordamlari aniqlab olishadi. Voris sinflar ehtiyojlarimizni boshqarishni osonlashtiradi va microsoft.NET Framework uchun aynan shunday tuzilishni yaratadi.
C# da Voris sinflarni yaratish va foydalanish, dasturchilar uchun juda muhim bo'lib, shuning uchun Voris sinflarning sintaksiskisi bilan tushunish va ularni qanday yaratish kerakligi juda muhimdir. Bu shunda, sinflarni amaliyotda keng qo'llanishga qaratilgan dastga olib kelish orqali, faqat dala nishon vositalari bilan sinf ichidagi xususiyat va yordamlarni boshqarish va chiqishga samarali yordam berishga imkon beradi.
9-masala
Natural sonlarning ikkita to‘plamini yaratish, chop qilish amallarinin o‘z ichiga olgan TUPLAM_AB sinfi yaratilsin. To‘plam ustida amallarni – to‘plamga yangi element qo‘shish va o‘chirish, tuplamlar keshishmasini, birlashmasini, hamda ayirmasini bajaradigan funksiya-a‘zolari bo‘lgan TUPLAM_AMALLARI sinfi TUPLAM sinfi vorisi qilib aniqlansin.
Dasturi:
class TUPLAM_AB
{
private List toplamA;
private List toplamB; public TUPLAM_AB()
{
toplamA = new List();
toplamB = new List();
}
public void AddToToplamA(int element)
{
toplamA.Add(element);
}
public void RemoveFromToplamA(int element)
{
toplamA.Remove(element);
}
public void AddToToplamB(int element)
{
toplamB.Add(element);
}
public void RemoveFromToplamB(int element)
{
toplamB.Remove(element);
}
public void PrintToplamA()
{
Console.WriteLine("Toplam A: " + string.Join(", ", toplamA));
}
public void PrintToplamB()
{
Console.WriteLine("Toplam B: " + string.Join(", ", toplamB));
}
public void Union()
{
var union = toplamA.Union(toplamB);
Console.WriteLine("Birlashma: " + string.Join(", ", union)); }
public void Intersection()
{
var intersection = toplamA.Intersect(toplamB);
Console.WriteLine("Keshishma: " + string.Join(", ", intersection));
}
public void Difference()
{
var difference = toplamA.Except(toplamB);
Console.WriteLine("Ayirma: " + string.Join(", ", difference));
}
}
class TUPLAM_AMALLARI : TUPLAM_AB
{
public void AddToToplam(int toplam, int element)
{
if (toplam == 1)
{
AddToToplamA(element);
}
else if (toplam == 2)
{
AddToToplamB(element);
}
else
{
Console.WriteLine("Noto'g'ri to'plam raqami.");
}
}
public void RemoveFromToplam(int toplam, int element)
{
if (toplam == 1)
{
RemoveFromToplamA(element);
}
else if (toplam == 2)
{
RemoveFromToplamB(element);
}
else
{
Console.WriteLine("Noto'g'ri to'plam raqami.");
}
}
public void PrintToplam(int toplam)
{
if (toplam == 1)
{
PrintToplamA();
}
else if (toplam == 2)
{
PrintToplamB();
}
else
{
Console.WriteLine("Noto'g'ri to'plam raqami.");
}
}
}
class Program
{
static void Main()
{
TUPLAM_AMALLARI tuplamAmallari = new TUPLAM_AMALLARI();
Console.WriteLine("Toplam A uchun elementlar sonini kiriting:");
int elementCountA = int.Parse(Console.ReadLine());
for (int i = 0; i < elementCountA; i++)
{
Console.WriteLine("Toplam A uchun " + (i+1) + " elementni kiriting:");
int elementA = int.Parse(Console.ReadLine());
tuplamAmallari.AddToToplam(1, elementA);
}
Console.WriteLine("Toplam B uchun elementlar sonini kiriting:");
int elementCountB = int.Parse(Console.ReadLine());
for (int i = 0; i < elementCountB; i++)
{
Console.WriteLine("Toplam B uchun " + (i+1) + " elementni kiriting:");
int elementB = int.Parse(Console.ReadLine());
tuplamAmallari.AddToToplam(2, elementB);
}
tuplamAmallari.PrintToplam(1);
tuplamAmallari.PrintToplam(2);
tuplamAmallari.Union();
tuplamAmallari.Intersection();
tuplamAmallari.Difference();
// to'plam A'dan element olib tashlash
tuplamAmallari.RemoveFromToplam(1, 3);
tuplamAmallari.PrintToplam(1);
tuplamAmallari.Union();
tuplamAmallari.Intersection();
tuplamAmallari.Difference();
// to'plam B'ga element qo'shish
tuplamAmallari.AddToToplam(2, 7);
tuplamAmallari.AddToToplam(2, 6);
tuplamAmallari.PrintToplam(2);
tuplamAmallari.Union();
tuplamAmallari.Intersection();
tuplamAmallari.Difference();
Console.ReadLine();
Console.ReadKey();
}
}
}
Natija:
To`plam A uchun elementlar sonini kiriting:
3
To`plam A uchun 1 elementni kiriting:
4
To`plam A uchun 2 elementni kiriting:
5
To`plam A uchun 3 elementni kiriting:
1
To`plam B uchun elementlar sonini kiriting:
3
To`plam B uchun 1 elementni kiriting:
5
To`plam B uchun 2 elementni kiriting:
7
To`plam B uchun 3 elementni kiriting:
6
To`plam A: 4, 5, 1
To`plam B: 5, 7, 6
Birlashma: 4, 5, 1, 7, 6
Kesishma: 5
Ayirma: 4, 1
To`plam A: 4, 5, 1
Birlashma: 4, 5, 1, 7, 6
Kesishma: 5
Ayirma: 4, 1
To`plam B: 5, 7, 6, 7, 6
Birlashma: 4, 5, 1, 7, 6
Kesishma: 5
Ayirma: 4, 1
10-Mavzu: Ichki sinflardan foydalanish
Ichki sinflardan foydalanishning birlamchi maqsadi, obyekt-orientirovlangan dasturlashda kodni yaxshi tashkil etish, kodni qayta ishlashni kamaytirish, kodni qayta ishlashni tizimlash va funksionallikni boshqarishni osonlashtirishdir. Ichki sinflar, bir sinf ichida boshqa sinflarni yaratish va ulardan obyektlar yaratish imkonini beradi. Ichki sinflardan foydalanish, kodni tashqi sinflarga nisbatan yaxshi tashkil etish va modulyarlikni oshirishga yordam beradi. Bunda sinflarning yoritish va alohida funksiyalarga ega bo'lishi, kodni qayta ishlashni osonlashtiradi va to'liq funksionallikni bitta sinf ichida ifodalaydi.
1. Ichki sinflar C# dasturlash tilidagi ob'ektor tuzish va dasturchilikda asosiy qo'llaniladigan muhim qavmlardan biridir.
2. Ichki sinflar, boshqa klasslarning ichida istifoda uchun o'zgaruvchini saqlash uchun yordam beradi.
3. C# da ichki sinflar yaratish uchun, bir klassning (avval yaratilgan yoki yangi yaratilayotgan) ichida boshqa klassni yaratishingiz kerak.
4. Ichki sinflar, kod tashqi klasslardan yashirin bo'lib, kodning ko'proq manbalar qo'llanmasi va kodning ishonchli bo'lishi uchun foydalaniladi.
5. Ichki sinflarni foydalanish amaliyoti, bitta klass yaratish protsessiga o'xshashdir, ammo klas nomi faqat o'zaro qarash kuchli sinfdan foydalanishda ko'rinadi.
6. Ichki sinflar, bir nechta narsalar bilan ishlash uchun zarur bo'lgan ko'plab qulayliklarga ega bo'lib, keyinchalik ishni soddalashtirish uchun qulayliklar yaratish uchun keng va asosiy bir foyda bilan beradi.
7. Ichki sinflarning shakllari jihatidan ko'p xil usullari mavjud, ammo shu ko'plik, ularning asosiy ixtiyoriy xususiyatlarga ega bo'lishi va ularning xususiyatlari va funktsiyalaridan bahramand bo'lishi uchun barcha sinflarning amaliga mos keladi.
10-masala O'quvchilar bor. Har birining imtihonlariga doir ballar to'plami ham bor. Ichki sinf yordamida ularning statistik ko'nikmalarini hisoblang. Statistika darajasidagi o'quvchilar soni va yillik balansi chiqarilishi kerak.
Dasturi:
List students = new List();
Console.WriteLine("O'quvchilar va ballarini kiriting:");
Console.WriteLine("(Dasturni yakunlash uchun 'exit' deb yozing)");
while (true)
{
Console.Write("O'quvchi ismi: ");
string name = Console.ReadLine();
if (name == "exit")
break;
Console.Write("Ball: ");
int score;
if (!int.TryParse(Console.ReadLine(), out score))
{
Console.WriteLine("Noto'g'ri format. Iltimos, sonni kiriting.");
continue;
}
students.Add(new Student(name, score));
}
int totalStudents = students.Count;
int totalScore = 0;
foreach (Student student in students)
{
totalScore += student.Score; }
float averageScore = (float)totalScore / totalStudents;
Console.WriteLine("O'quvchilar soni: " + totalStudents);
Console.WriteLine("Yillik balansi: " + averageScore);
Console.ReadKey();
}
}
class Student
{
public string Name { get; set; }
public int Score { get; set; }
public Student(string name, int score)
{
Name = name;
Score = score;
}
}
} Natija:
O`quvchilar va ballarini kiriting:
(Dasturni yakunlash uchun “exit” deb yozing )
O`quvchi ismi: Soliha
Ball: 80
O`quvchi ismi: Hilola
Ball: 75
O`quvchi ismi: Aziza
Ball: 85
O`quvchi ismi: exit
O`quvchilar soni: 3
Yillik balansi: 80
Xulosa
Dasturlash, tibbiyot sohasidagi malakaviy amaliyotlarni amalga oshirishda yaxshi yordam beradi. Dasturlash tibbiyotning boshqa sohalari bilan bir qatorda yuqori o'rinda bo'lib, tibbiyot sohasida amalga oshirilgan ko'rsatkichlar ustidan to'plangan ma'lumotlar statistik tahlil qilish uchun dasturlanadi. Bu tahlillar tibbiyot sohasida adiblar juda mashhur bo'lib, ularga malakaviy amaliyotni rivojlantirish va yanada yaxshilashga yordam beradi. Dasturlashda tashkil etilgan ma'lumotlar tibbiyot sohasida kasallikning diagnosini, davolash usullarini, talab etilgan kasallik kasallikka tegishli o'zgarishlarni, yaxshi natijalarning ko'payishini va o'z ichiga oladi. Dasturlash texnologiyalari yordamida malakaviy amaliyotlar bilan bog'liq barcha ko'rsatkichlarni to'plab, tibbiyot sohasida yaxshi natijaga erishishda yordam beradi.
Dasturlash, telemeditsina sohasida ham juda katta yordam beradi. Telemeditsina tibbiyot sohasidagi aloqalarni sifatli ko'rsatishga imkon beradi va malakaviy amaliyotlar davomida malakaviy xatoliklarni tashxis qilish, davolash va boshqa masalalarga oid ma'lumotlarni uzatish uchun yordam beradi.Bundan tashqari, dasturlash talab etilgan ma'lumotlarni avtomatik tarzda jalb qilishni ham yordam beradi, shuningdek, ma'lumotlarning to'plashini va statistik tahlilini muvofiqlashtirishni ham yordam beradi. Bular ham malakaviy amaliyotni yaxshi natijaga erishish uchun juda muhimdir.
Dostları ilə paylaş: |