<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Islamali Akhmadjanov</title>
    <description>The latest articles on Forem by Islamali Akhmadjanov (@islamali_coder).</description>
    <link>https://forem.com/islamali_coder</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F893811%2Fd324fcf0-3d07-4f7b-883b-b5c4c5add199.jpg</url>
      <title>Forem: Islamali Akhmadjanov</title>
      <link>https://forem.com/islamali_coder</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/islamali_coder"/>
    <language>en</language>
    <item>
      <title>C# - Dynamic Types</title>
      <dc:creator>Islamali Akhmadjanov</dc:creator>
      <pubDate>Wed, 02 Oct 2024 05:24:15 +0000</pubDate>
      <link>https://forem.com/islamali_coder/c-dynamic-types-51lb</link>
      <guid>https://forem.com/islamali_coder/c-dynamic-types-51lb</guid>
      <description>&lt;p&gt;C# tilida dynamic turidagi o'zgaruvchilar kompilatsiya vaqtida emas, balki bajarilish vaqtida tiplashni aniqlashga imkon beradi. Bu shuni anglatadiki, siz dynamic o'zgaruvchiga har qanday ma'lumot turini tayinlashingiz va uning ustida amallar bajarishingiz mumkin, lekin C# uni tekshirishni vaqti kelganda, ya'ni dastur ishlayotgan paytda bajaradi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dynamic Type`dan foydalanishning asosiy sabablari:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Moslashuvchanlik:&lt;/strong&gt; Bir xil o'zgaruvchiga turli xil turlarni saqlashingiz mumkin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Statik tekshiruvni o'tkazib yuborish:&lt;/strong&gt; C# kompilyatori ushbu o'zgaruvchining haqiqiy turini bilmaydi va amallarni bajarilish vaqtida tekshiradi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;COM interop:&lt;/strong&gt; &lt;code&gt;dynamic&lt;/code&gt; COM ob'ektlar bilan ishlashda foydali bo'lishi mumkin, chunki ular statik tiplashdan foydalanmaydi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Misol:&lt;/p&gt;

&lt;p&gt;`&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;

class Program
{
    static void Main()
    {
        dynamic o'zgaruvchi = 5; // integer qiymat
        Console.WriteLine("Qiymat: " + o'zgaruvchi);

        o'zgaruvchi = "Salom"; // string qiymat
        Console.WriteLine("Qiymat: " + o'zgaruvchi);

        o'zgaruvchi = DateTime.Now; // DateTime turi
        Console.WriteLine("Hozirgi sana: " + o'zgaruvchi);

        // Hatto dinamik turdagi o'zgaruvchiga ham funksiya chaqirish mumkin
        o'zgaruvchi = new Program();
        o'zgaruvchi.QaytishSalom("Ahmad");
    }

    public void QaytishSalom(string ism)
    {
        Console.WriteLine("Salom, " + ism);
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
`&lt;br&gt;
&lt;strong&gt;Tushuntirish:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;dynamic o'zgaruvchi = 5;&lt;/code&gt; - Bu holda &lt;code&gt;o'zgaruvchi&lt;/code&gt; dastlab butun son (int) turida bo'ladi.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;o'zgaruvchi = "Salom";&lt;/code&gt; - Keyin &lt;code&gt;o'zgaruvchi&lt;/code&gt; string (matn) turiga o'zgaradi.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;o'zgaruvchi = DateTime.Now;&lt;/code&gt; - Endi &lt;code&gt;o'zgaruvchi&lt;/code&gt; sana va vaqtni ifodalovchi DateTime turida bo'ladi.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;o'zgaruvchi.QaytishSalom("Ahmad");&lt;/code&gt; - &lt;code&gt;o'zgaruvchi&lt;/code&gt; ob'ekt bo'lgach, u QaytishSalom funksiyasini chaqiradi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Dynamic turlarning kamchiligi shundaki, kompilyator xatolarni topa olmaydi, shuning uchun bajarilish vaqtida xatoliklar paydo bo'lishi mumkin. Shuning uchun dinamik turlarni ishlatishda ehtiyot bo'lish lozim.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maslahat:&lt;/strong&gt; Har doim aniq ma'lumot turidan foydalanish xavfsizroq, lekin kerakli moslashuvchanlik uchun dynamic turlardan foydalanish kerak bo'lsa, ularni ehtiyotkorlik bilan qo'llang.&lt;/p&gt;

&lt;p&gt;C# tilida &lt;code&gt;dynamic&lt;/code&gt; turini ishlatish dasturchiga katta moslashuvchanlik beradi, lekin bu turdan foydalanishda bajarilish vaqtida yuzaga keladigan xatolar ehtimolini hisobga olish kerak. Endi &lt;code&gt;dynamic&lt;/code&gt; haqida ko'proq ma'lumot va qo'shimcha misollar keltirib o'taman.&lt;/p&gt;
&lt;h2&gt;
  
  
  1. Dynamic va boshqa turlarning o'zaro munosabati
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;dynamic&lt;/code&gt; o'zgaruvchi har qanday turdagi ma'lumotlarni saqlashi mumkin. Ushbu turda saqlangan qiymatni keyinroq boshqa statik turlarga o'zgartirish mumkin.&lt;/p&gt;

&lt;p&gt;`&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;

class Program
{
    static void Main()
    {
        dynamic o'zgaruvchi = 10;  // Integer tur
        int son = o'zgaruvchi;     // Bu joyda to'g'ridan-to'g'ri int turiga aylantiriladi
        Console.WriteLine("Son: " + son);

        o'zgaruvchi = "Bu matn";   // Endi string turiga aylanadi
        string matn = o'zgaruvchi; // String turiga aylantiriladi
        Console.WriteLine("Matn: " + matn);
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
`&lt;/p&gt;
&lt;h2&gt;
  
  
  2. Dynamic turlarda xatoliklar
&lt;/h2&gt;

&lt;p&gt;Agar &lt;code&gt;dynamic&lt;/code&gt; o'zgaruvchisiga noto'g'ri amal bajarilsa, xatolik bajarilish vaqtida sodir bo'ladi.&lt;/p&gt;

&lt;p&gt;`&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;

class Program
{
    static void Main()
    {
        dynamic o'zgaruvchi = 100;
        // Matn sifatida ishlov berishga urinish natijasida xatolik
        try
        {
            Console.WriteLine(o'zgaruvchi.Length); // int turida Length xususiyati mavjud emas
        }
        catch (Microsoft.CSharp.RuntimeBinder.RuntimeBinderException ex)
        {
            Console.WriteLine("Xato: " + ex.Message);
        }
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
`&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tushuntirish:&lt;/strong&gt; Bu yerda &lt;code&gt;o'zgaruvchi&lt;/code&gt; integer qiymatga ega, lekin &lt;code&gt;Length&lt;/code&gt; xususiyati faqat stringlarda mavjud, shuning uchun xatolik yuz beradi.&lt;/p&gt;
&lt;h2&gt;
  
  
  3. Metod va dynamic turlari
&lt;/h2&gt;

&lt;p&gt;Dynamic turidan foydalanish bilan metod chaqirish osonlashadi, ayniqsa bir xil nomli metodlarni har xil turdagi parametrlar bilan ishlatish kerak bo'lsa.&lt;/p&gt;

&lt;p&gt;`&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;

class Program
{
    static void Main()
    {
        dynamic o'zgaruvchi = 5;
        dynamic natija = Hisobla(o'zgaruvchi);
        Console.WriteLine("Natija (int): " + natija);

        o'zgaruvchi = 5.5;
        natija = Hisobla(o'zgaruvchi);
        Console.WriteLine("Natija (double): " + natija);
    }

    static dynamic Hisobla(dynamic son)
    {
        return son * 2;
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
&lt;code&gt;&lt;br&gt;
Tushuntirish: Ushbu misolda&lt;/code&gt;Hisobla&lt;code&gt;metodi har qanday turdagi argument bilan ishlay oladi va argumentga asoslangan holda javob beradi. Kompilyator&lt;/code&gt;Hisobla` metodiga aniq tur berishdan ko'ra, runtime (bajarilish vaqtida) davomida ishlaydi.&lt;/p&gt;
&lt;h2&gt;
  
  
  4. COM obyektlar bilan ishlash
&lt;/h2&gt;

&lt;p&gt;C# &lt;code&gt;dynamic&lt;/code&gt; COM obyektlar bilan ishlashda juda foydali. Masalan, Microsoft Office ilovalari bilan ishlashda.&lt;/p&gt;

&lt;p&gt;`&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;
using Excel = Microsoft.Office.Interop.Excel;

class Program
{
    static void Main()
    {
        Excel.Application excelApp = new Excel.Application();
        excelApp.Visible = true;

        dynamic workbooks = excelApp.Workbooks;
        dynamic workbook = workbooks.Add();
        dynamic worksheet = workbook.Sheets[1];
        worksheet.Cells[1, 1].Value = "Hello, Excel!";
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
&lt;code&gt;&lt;br&gt;
Tushuntirish: Bu yerda&lt;/code&gt;dynamic` turidan foydalanish Excel bilan ishlashni osonlashtiradi, chunki Excelning COM interfeysi C# statik tiplari bilan bog'lanmagan.&lt;/p&gt;
&lt;h2&gt;
  
  
  5. Dynamic va Reflection bilan ishlash
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;dynamic&lt;/code&gt; turini ishlatib Reflection orqali metodlar va xususiyatlarga murojaat qilish oson bo'ladi.&lt;/p&gt;

&lt;p&gt;`&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;

class Program
{
    static void Main()
    {
        dynamic type = Type.GetType("System.String");
        dynamic metod = type.GetMethod("Contains", new Type[] { typeof(string) });

        bool mavjud = metod.Invoke("Salom dunyo", new object[] { "dunyo" });
        Console.WriteLine("Satr mavjudmi: " + mavjud);
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
&lt;code&gt;&lt;br&gt;
**Tushuntirish:** Bu misolda Reflection va&lt;/code&gt;dynamic&lt;code&gt;bilan birgalikda ishlatiladi.&lt;/code&gt;dynamic&lt;code&gt;yordamida&lt;/code&gt;Invoke` chaqiriladi va runtime davomida metod ishlatiladi.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dynamic turlardan foydalanishning afzalliklari:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Moslashuvchanlik: Har xil turdagi qiymatlarni saqlash va ularga ishlov berish.&lt;/li&gt;
&lt;li&gt;Statik tiplashdan voz kechish: Agar ma'lumotning aniq turi oldindan noma'lum bo'lsa yoki kompyuterning runtime tekshiruvi kerak bo'lsa.&lt;/li&gt;
&lt;li&gt;COM obyektlar va Reflection bilan integratsiya: Obyektlarga statik tiplashsiz murojaat qilishni osonlashtiradi.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Kamchiliklari:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Xatolarga moyillik:&lt;/strong&gt; Statik tiplashdan foydalanmaslik bajarilish vaqtida xatoliklarning paydo bo'lish ehtimolini oshiradi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bajarilish samaradorligi pastroq bo'lishi mumkin:&lt;/strong&gt; Dynamic turlar bilan ishlash runtime davomida ko'proq vaqt talab qilishi mumkin.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>csharp</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>coding</category>
    </item>
    <item>
      <title>C# - Anonymous Type</title>
      <dc:creator>Islamali Akhmadjanov</dc:creator>
      <pubDate>Wed, 02 Oct 2024 05:05:37 +0000</pubDate>
      <link>https://forem.com/islamali_coder/c-anonymous-type-307j</link>
      <guid>https://forem.com/islamali_coder/c-anonymous-type-307j</guid>
      <description>&lt;p&gt;C# dasturlash tilida &lt;strong&gt;Anonymous Type&lt;/strong&gt; (Nomlanmagan tur) — bu shunday ma'lumot turi bo‘lib, uni yaratishda ma'lumotning aniq nomini berish shart emas. Bu tur juda sodda obyektlarni tezkor yaratishda qo‘l keladi, masalan, bir nechta qiymatlar bilan ishlaganda. Anonymous turdan foydalanilganda, Visual Studio kompilatori avtomatik ravishda turini aniqlaydi va obyektni yaratadi.&lt;/p&gt;

&lt;p&gt;Anonymous turdan foydalanishning asosiy afzalligi — agar obyekt faqat vaqtinchalik ma'lumotlarni saqlash uchun kerak bo‘lsa va uni turini aniqlash ortiqcha bo‘lsa, shunda foydali bo‘ladi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Anonymous Type yaratish&lt;/strong&gt;&lt;br&gt;
Anonymous Type ni yaratish uchun &lt;code&gt;new&lt;/code&gt; operatoridan foydalaniladi va qiymat berish jarayonida tur avtomatik aniqlanadi. Quyidagi misolga e’tibor bering:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var student = new { Name = "Ali", Age = 21 };
Console.WriteLine($"Ismi: {student.Name}, Yoshi: {student.Age}");

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu yerda &lt;code&gt;student&lt;/code&gt; obyektining turi anonymous bo‘lib, u &lt;code&gt;Name&lt;/code&gt; va &lt;code&gt;Age&lt;/code&gt; nomli xususiyatlarga ega. &lt;code&gt;var&lt;/code&gt; kalit so‘zi yordamida ma'lumot turi avtomatik aniqlanadi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Muhim jihatlari:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Anonymous Type immutable (o‘zgarmas) hisoblanadi&lt;/strong&gt;, ya'ni uni yaratgandan keyin uning xususiyatlarini o‘zgartirib bo‘lmaydi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Misol:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var car = new { Model = "BMW", Year = 2022 };
// car.Model = "Audi";  // Bu yerda xato bo'ladi, chunki anonymous type o'zgartirib bo'lmaydi.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Anonymous Type faqat lokal darajada qo‘llaniladi&lt;/strong&gt;, ya'ni u faqat bitta metod yoki blok ichida ishlatiladi. Uni metoddan tashqariga chiqarib bo‘lmaydi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Qo‘shimcha misol:&lt;/strong&gt;&lt;br&gt;
Quyidagi misolda turli xil qiymatlar bilan bir nechta anonymous tur yaratiladi:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var product = new { Name = "Laptop", Price = 1500.50 };
var customer = new { FirstName = "Javlon", LastName = "Sobirov", Age = 30 };

Console.WriteLine($"Mahsulot: {product.Name}, Narxi: ${product.Price}");
Console.WriteLine($"Mijoz: {customer.FirstName} {customer.LastName}, Yoshi: {customer.Age}");

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Natijada, ikki xil anonymous obyekt yaratildi: &lt;code&gt;product&lt;/code&gt; va &lt;code&gt;customer&lt;/code&gt;. Har biri o‘ziga xos xususiyatlarga ega.&lt;/p&gt;

&lt;h2&gt;
  
  
  Anonymous Type va LINQ
&lt;/h2&gt;

&lt;p&gt;Anonymous turlar asosan LINQ bilan juda ko‘p ishlatiladi, chunki LINQda tezkor ravishda ma'lumotlarni filtrlash yoki guruhlash jarayonida ma'lumotlarni qayta ishlashda tur aniqlash talab etilmaydi.&lt;/p&gt;

&lt;p&gt;Misol:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var students = new[]
{
    new { Name = "Ali", Age = 21 },
    new { Name = "Zafar", Age = 19 },
    new { Name = "Nodir", Age = 22 }
};

var youngStudents = from student in students
                    where student.Age &amp;lt; 22
                    select new { student.Name, student.Age };

foreach (var student in youngStudents)
{
    Console.WriteLine($"Ismi: {student.Name}, Yoshi: {student.Age}");
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu misolda, &lt;code&gt;youngStudents&lt;/code&gt; anonymous turdagi kolleksiya bo‘lib, unda faqat yoshi 22 dan kichik bo‘lgan talabalar tanlab olinadi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Xulosa:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anonymous Type — shaxsiy obyektlar yaratishda oson va qulay.&lt;/li&gt;
&lt;li&gt;U o‘zgaruvchan emas, ya'ni obyekt xususiyatlarini o‘zgartirib bo‘lmaydi.&lt;/li&gt;
&lt;li&gt;Faoliyat ko‘rsatuvchi hududda (scope) ishlatiladi va tashqariga chiqmaydi.&lt;/li&gt;
&lt;li&gt;Asosan, LINQ kabi joylarda foydalanish uchun juda qulay.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Anonymous Type ning foydasi:
&lt;/h2&gt;

&lt;p&gt;Anonymous Type asosan ma'lum bir vaziyatlarda ishlatiladi:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ma'lumotlarni vaqtincha saqlash kerak bo‘lganda.&lt;/li&gt;
&lt;li&gt;Mavjud tiplarni yaratishga hojat bo‘lmagan holatlarda.&lt;/li&gt;
&lt;li&gt;LINQ yoki querylarda tezkor, bir martalik ishlov berish uchun.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Anonymous Type bilan massivlar
&lt;/h2&gt;

&lt;p&gt;Anonymous Type lar massivlarda ishlatilishi ham mumkin. Masalan, bir nechta obyektlarni vaqtincha saqlash uchun massiv yaratamiz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var books = new[]
{
    new { Title = "C# Fundamentals", Author = "John Doe", Pages = 450 },
    new { Title = "Mastering LINQ", Author = "Jane Doe", Pages = 320 },
    new { Title = "ASP.NET Core", Author = "Mark Smith", Pages = 290 }
};

foreach (var book in books)
{
    Console.WriteLine($"Kitob: {book.Title}, Muallifi: {book.Author}, Sahifalar soni: {book.Pages}");
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu yerda anonymous tipdagi obyektlar &lt;code&gt;books&lt;/code&gt; nomli massivda saqlanmoqda. Har bir kitob haqida ma'lumot massiv orqali chop qilinmoqda.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Anonymous Type ning cheklovlari
&lt;/h2&gt;

&lt;p&gt;Anonymous Type o‘zining qulayliklari bilan birga ba'zi cheklovlarga ham ega. Ushbu turlar faqat o‘qish (read-only) bo‘lgan xususiyatlarni saqlaydi, ya'ni bir marta yaratilganidan keyin obyektning xususiyatlarini o‘zgartirib bo‘lmaydi.&lt;/p&gt;

&lt;p&gt;Misol:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var movie = new { Name = "Inception", Rating = 9.0 };
// movie.Rating = 8.5;  // Xato bo‘ladi: Anonymous tipdagi xususiyat o‘zgartirib bo‘lmaydi.
Console.WriteLine($"Film nomi: {movie.Name}, Reyting: {movie.Rating}");

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu yerda &lt;code&gt;Rating&lt;/code&gt; ni o‘zgartirishga urinish xatoga olib keladi, chunki anonymous tipdagi obyektlar o‘zgarmas (immutable) hisoblanadi.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Anonymous Type ichida Anonymous Type
&lt;/h2&gt;

&lt;p&gt;C# da anonymous tiplar boshqa anonymous tiplarni o‘z ichiga olishi mumkin. Bu murakkab ma'lumot strukturalarini yaratishda ishlatiladi.&lt;/p&gt;

&lt;p&gt;Misol:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var employee = new
{
    Name = "Ali",
    Position = new { Title = "Dasturchi", Level = 3 },
    Salary = 2500
};

Console.WriteLine($"Ism: {employee.Name}, Lavozim: {employee.Position.Title}, Daraja: {employee.Position.Level}, Oylik: ${employee.Salary}");

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu yerda &lt;code&gt;employee&lt;/code&gt; nomli anonymous tip o‘z ichida yana bir anonymous tip (&lt;code&gt;Position&lt;/code&gt;) ni saqlamoqda.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. LINQ bilan yanada keng foydalanish
&lt;/h2&gt;

&lt;p&gt;Anonymous turlar ko‘pincha LINQ (Language Integrated Query) operatsiyalarida keng foydalaniladi, chunki LINQ orqali ma'lumotlar bilan ishlashda anonymous turlar tezkor va oddiy yechim beradi.&lt;/p&gt;

&lt;p&gt;Masalan, katta kolleksiyadan faqat kerakli ma'lumotlarni ajratib olish:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var students = new[]
{
    new { Name = "Ali", Age = 21, Major = "Matematika" },
    new { Name = "Zafar", Age = 22, Major = "Fizika" },
    new { Name = "Nodir", Age = 19, Major = "Informatika" }
};

var filteredStudents = from student in students
                       where student.Age &amp;gt; 20
                       select new { student.Name, student.Major };

foreach (var student in filteredStudents)
{
    Console.WriteLine($"Ism: {student.Name}, Yo‘nalishi: {student.Major}");
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu misolda faqat yoshi 20 dan katta bo‘lgan talabalar ajratib olinadi va anonymous tip orqali faqat kerakli ma'lumotlar tanlanadi.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Anonymous Type ning foydalanuvchi definitsiyalari bilan taqqoslanishi
&lt;/h2&gt;

&lt;p&gt;Anonymous tiplar odatda vaqtincha ma'lumotlarni ishlatish uchun kerak bo‘lsa ham, ko‘p hollarda foydalanuvchi definitsiya qilgan klasslarga ehtiyoj seziladi. Anonymous tiplar cheklangan xususiyatlar va o‘zgaruvchanlikka ega bo‘lmaganligi sababli, murakkab strukturalar uchun oddiy klasslardan foydalanish yaxshiroqdir.&lt;/p&gt;

&lt;p&gt;Misol: Quyidagi holatda anonymous tip foydali bo‘lmasligi mumkin, chunki ma'lumotlar bilan keyinroq ishlash yoki ularni o‘zgartirish talab qilinishi mumkin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Car
{
    public string Model { get; set; }
    public int Year { get; set; }
    public double Price { get; set; }
}

var car = new Car { Model = "Tesla", Year = 2023, Price = 50000 };
car.Price = 48000;  // Bu yerda o'zgartirish mumkin
Console.WriteLine($"Model: {car.Model}, Yil: {car.Year}, Narx: {car.Price}");

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu holatda &lt;code&gt;Car&lt;/code&gt; klassi anonymous tipga qaraganda ko‘proq imkoniyatlarga ega, chunki obyektning qiymatlarini keyinchalik o‘zgartirish mumkin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Xulosa:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anonymous Type juda qulay vosita bo‘lib, kichik va vaqtinchalik obyektlarni yaratishda ishlatiladi.&lt;/li&gt;
&lt;li&gt;Anonymous Type immutable hisoblanadi, ya'ni bir marta yaratib bo‘lgandan keyin uning qiymatlarini o‘zgartirib bo‘lmaydi.&lt;/li&gt;
&lt;li&gt;Asosan, LINQ operatsiyalari va querylar bilan ishlaganda qo‘l keladi.&lt;/li&gt;
&lt;li&gt;Anonymous turlar murakkab va katta strukturalar uchun emas, faqat vaqtinchalik ma'lumotlarni saqlash uchun mo‘ljallangan.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>csharp</category>
      <category>learning</category>
      <category>tutorial</category>
      <category>coding</category>
    </item>
    <item>
      <title>C# - StringBuilder</title>
      <dc:creator>Islamali Akhmadjanov</dc:creator>
      <pubDate>Mon, 30 Sep 2024 12:37:22 +0000</pubDate>
      <link>https://forem.com/islamali_coder/c-stringbuilder-1f9a</link>
      <guid>https://forem.com/islamali_coder/c-stringbuilder-1f9a</guid>
      <description>&lt;p&gt;C# tilida StringBuilder sinfi katta miqdordagi matnlarni samarali tarzda boshqarish uchun ishlatiladi. Oddiy string tipidan farqli o'laroq, StringBuilder matnni o'zgartirganda yangi obyekt yaratmaydi, balki mavjud obyekt ustida o'zgarishlar qiladi. Bu, ayniqsa, ko'p marta matn bilan ishlash jarayonida samaradorlikni oshiradi.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;StringBuilder&lt;/code&gt; sinfining asosiy xususiyatlari:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Tezlik va samaradorlik: Ko'p o'zgaruvchan matnlar ustida ishlashda &lt;code&gt;string&lt;/code&gt; dan ko'ra samaraliroq, chunki &lt;code&gt;string&lt;/code&gt; har safar o'zgarganda yangi obyekt yaratadi.&lt;/li&gt;
&lt;li&gt;Dinamik o'lcham: &lt;code&gt;StringBuilder&lt;/code&gt; o'zgaruvchan uzunlikdagi matnni boshqaradi, ya'ni matn uzunligi o'zgarishi bilan joy ajratadi.&lt;/li&gt;
&lt;li&gt;Matn qo'shish va o'chirish: Turli xil usullar yordamida matn qo'shish, o'chirish yoki almashtirish imkoniyatini beradi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Asosiy metodlar:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Append()&lt;/code&gt;: Matn oxiriga yangi qiymat qo‘shadi.&lt;br&gt;
&lt;code&gt;Insert()&lt;/code&gt;: Belgilangan indeksga matn qo'shadi.&lt;br&gt;
&lt;code&gt;Remove()&lt;/code&gt;: Belgilangan indeksdan boshlab belgilarni olib tashlaydi.&lt;br&gt;
&lt;code&gt;Replace()&lt;/code&gt;: Belgilangan matnni boshqa matn bilan almashtiradi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Misollar&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Misol 1&lt;/strong&gt;: &lt;code&gt;Append()&lt;/code&gt; va &lt;code&gt;ToString()&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder tekst = new StringBuilder("Salom, ");
        tekst.Append("dunyo!");
        Console.WriteLine(tekst.ToString());
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Natija:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Salom, dunyo!&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Bu yerda &lt;code&gt;Append()&lt;/code&gt; metodi orqali "dunyo!" qismi matnning oxiriga qo'shildi. So'ng &lt;code&gt;ToString()&lt;/code&gt; metodi bilan yakuniy natija &lt;code&gt;string&lt;/code&gt; ga aylantirildi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Misol 2&lt;/strong&gt;: &lt;code&gt;Insert()&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder("Salom!");
        sb.Insert(5, ", Dunyo");
        Console.WriteLine(sb.ToString());
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Natija:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Salom, Dunyo!&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Bu misolda &lt;code&gt;Insert()&lt;/code&gt; metodi yordamida 5-indeksga "Dunyo" matni qo'shildi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Misol 3&lt;/strong&gt;: &lt;code&gt;Remove()&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder("Salom, Dunyo!");
        sb.Remove(6, 6);
        Console.WriteLine(sb.ToString());
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Natija:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Salom!&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Bu yerda &lt;code&gt;Remove()&lt;/code&gt; metodi 6-indeksdan boshlab 6 ta belgini o'chirdi, natijada "Dunyo" qismi olib tashlandi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Misol 4&lt;/strong&gt;: &lt;code&gt;Replace()&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder("Salom, Dunyo!");
        sb.Replace("Dunyo", "Olam");
        Console.WriteLine(sb.ToString());
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Natija:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Salom, Olam!&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Bu misolda &lt;code&gt;Replace()&lt;/code&gt; metodi orqali "Dunyo" so'zi "Olam" so'zi bilan almashtirildi.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;StringBuilder&lt;/code&gt; C# tilida matnni dinamik boshqarish uchun mo‘ljallangan sinf bo‘lib, matn bilan tez va samarali ishlash imkonini beradi. Endi yana ko'proq tafsilot va misollar bilan tushuntirib o'taman.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;StringBuilder&lt;/code&gt; ning asosiy ishlatilishi:&lt;br&gt;
C# tilida oddiy &lt;code&gt;string&lt;/code&gt; o'zgarmas (immutable) bo'lgani uchun, u bilan har qanday o'zgarish (matn qo'shish, olib tashlash yoki almashtirish) yangi obyekt yaratadi va bu katta hajmdagi matn bilan ishlaganda samaradorlikni pasaytirishi mumkin. &lt;code&gt;StringBuilder&lt;/code&gt; esa bu muammoni hal qiladi, chunki u o'zgartirilsa, yangi obyekt yaratmaydi, mavjud obyektni o'zgartiradi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Asosiy metodlar:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Append()&lt;/code&gt;: Matn oxiriga yangi qiymat qo‘shadi.&lt;br&gt;
&lt;code&gt;Insert()&lt;/code&gt;: Belgilangan indeksga matn qo'shadi.&lt;br&gt;
&lt;code&gt;Remove()&lt;/code&gt;: Belgilangan indeksdan boshlab belgilarni olib tashlaydi.&lt;br&gt;
&lt;code&gt;Replace()&lt;/code&gt;: Belgilangan matnni boshqa matn bilan almashtiradi.&lt;br&gt;
&lt;code&gt;Clear()&lt;/code&gt;: Butun matnni o‘chiradi.&lt;br&gt;
&lt;code&gt;Length&lt;/code&gt; va &lt;code&gt;Capacity&lt;/code&gt;: &lt;code&gt;StringBuilder&lt;/code&gt; ning uzunligi va sig‘imini boshqarish.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kengaytirilgan misollar&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Misol 1&lt;/strong&gt;: Ko‘p marta &lt;code&gt;Append()&lt;/code&gt; ishlatish&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("Bugun havo ");
        sb.Append("juda yaxshi. ");
        sb.Append("Biz ko'chat ekamiz.");
        Console.WriteLine(sb.ToString());
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Natija:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Bugun havo juda yaxshi. Biz ko'chat ekamiz.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Bu yerda &lt;code&gt;Append()&lt;/code&gt; metodi ko'p marta chaqirilib, matnni birlashtirishda samarali foydalanildi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Misol 2&lt;/strong&gt;: &lt;code&gt;Insert()&lt;/code&gt; bilan matn qo'shish&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder("Salom Olam!");
        sb.Insert(6, "yangi ");
        Console.WriteLine(sb.ToString());
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Natija:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Salom yangi Olam!&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Bu yerda 6-indeksga "yangi" so'zi qo'shildi. &lt;code&gt;Insert()&lt;/code&gt; usuli indeks bo'yicha matnni kiritadi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Misol 3:&lt;/strong&gt; &lt;code&gt;Remove()&lt;/code&gt; bilan belgilarni o'chirish&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder("Salom Olam!");
        sb.Remove(6, 5);
        Console.WriteLine(sb.ToString());
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Natija:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Salom!&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Bu yerda 6-indeksdan boshlab 5 ta belgi o'chirildi. Natijada "Olam!" so'zlari olib tashlandi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Misol 4:&lt;/strong&gt; &lt;code&gt;Replace()&lt;/code&gt; bilan almashtirish&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder("Yoz yaxshi fasl.");
        sb.Replace("Yoz", "Bahor");
        Console.WriteLine(sb.ToString());
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Natija:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Bahor yaxshi fasl.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Bu yerda &lt;code&gt;Replace()&lt;/code&gt; metodi "Yoz" so'zini "Bahor" so'zi bilan almashtirdi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Misol 5:&lt;/strong&gt; &lt;code&gt;Clear()&lt;/code&gt; bilan tozalash&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder("Bu matnni o'chiramiz.");
        sb.Clear();
        Console.WriteLine(sb.ToString());
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Natija:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;(matn bo'sh bo'ladi)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Bu yerda &lt;code&gt;Clear()&lt;/code&gt; butun matnni o'chiradi va &lt;code&gt;StringBuilder&lt;/code&gt; ni bo'sh holatga keltiradi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Misol 6:&lt;/strong&gt; &lt;code&gt;Capacity&lt;/code&gt; va &lt;code&gt;Length&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder("Salom!");
        Console.WriteLine("Uzunligi: " + sb.Length);   // Matn uzunligi
        Console.WriteLine("Sig'imi: " + sb.Capacity);  // Sig'imi (ajratilgan xotira)

        sb.Append(" Bu yangi matndir.");
        Console.WriteLine("Yangi uzunlik: " + sb.Length);
        Console.WriteLine("Yangi sig'im: " + sb.Capacity);
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Natija:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Uzunligi: 6  
Sig'imi: 16  
Yangi uzunlik: 23  
Yangi sig'im: 32  

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu yerda &lt;code&gt;Length&lt;/code&gt; matnning uzunligini bildiradi,&lt;code&gt;Capacity&lt;/code&gt; esa &lt;code&gt;StringBuilder&lt;/code&gt; ga ajratilgan xotirani ko'rsatadi. Matn uzayganda &lt;code&gt;Capacity&lt;/code&gt; avtomatik ravishda kengaytiriladi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Misol 7:&lt;/strong&gt; &lt;code&gt;AppendFormat()&lt;/code&gt; bilan formatlash&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendFormat("Bugungi sana: {0:D}", DateTime.Now);
        Console.WriteLine(sb.ToString());
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Natija:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Bugungi sana: 29 sentabr 2024 yil (Yil va sana kompyuter vaqtiga qarab o'zgaradi)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Bu yerda &lt;code&gt;AppendFormat()&lt;/code&gt; yordamida matn formatlash mumkin. &lt;code&gt;{0:D}&lt;/code&gt; format &lt;code&gt;string&lt;/code&gt; bo'lib, &lt;code&gt;DateTime&lt;/code&gt; obyekti uchun format qo'llanilgan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Xulosa&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;StringBuilder:&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tez ishlaydi va ko‘p marta o‘zgaruvchan matnlar bilan ishlashda samarali.&lt;/li&gt;
&lt;li&gt;Qo‘shimcha funksiyalar (Append(), Insert(), Remove(), Replace()) bilan matnni dinamik boshqarish imkonini beradi.&lt;/li&gt;
&lt;li&gt;Katta matn ustida ishlashda tavsiya etiladi, chunki u har safar yangi obyekt yaratmaydi, balki mavjud obyektni o‘zgartiradi.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>csharp</category>
      <category>tutorial</category>
      <category>learning</category>
      <category>coding</category>
    </item>
    <item>
      <title>Shart Operatorlari</title>
      <dc:creator>Islamali Akhmadjanov</dc:creator>
      <pubDate>Sun, 29 Sep 2024 08:13:44 +0000</pubDate>
      <link>https://forem.com/islamali_coder/shart-operatorlari-42aj</link>
      <guid>https://forem.com/islamali_coder/shart-operatorlari-42aj</guid>
      <description>&lt;p&gt;Shart operatorlari dasturda ma'lum bir shartni tekshirish va shu shartga qarab turli amallarni bajarish imkonini beradi. Dastur ko'pincha turli holatlarni tekshirishi kerak bo'ladi va ular asosida harakat qiladi. C++ va C# tillarida shart operatorlari muhim o'rin tutadi.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;if&lt;/code&gt; Operatori
&lt;code&gt;if&lt;/code&gt; operatori yordamida ma'lum bir shartni tekshirish va agar shart to'g'ri bo'lsa, qadamlar bajariladi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Sintaksis:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (shart) 
{
    // shart to'g'ri bo'lsa bajariladigan kod
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;C# da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (shart) 
{
    // shart to'g'ri bo'lsa bajariladigan kod
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Misol:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int son = 10;

if (son &amp;gt; 5) 
{
    cout &amp;lt;&amp;lt; "Son 5 dan katta!" &amp;lt;&amp;lt; endl;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;C# da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int son = 10;
if (son &amp;gt; 5) 
{
    Console.WriteLine("Son 5 dan katta!");
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Bu dasturda, agar son 5 dan katta bo'lsa, "Son 5 dan katta!" deb yozuv ekranga chiqariladi.&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;if-else&lt;/code&gt; Operatori
&lt;code&gt;if-else&lt;/code&gt; operatori orqali bir shart to'g'ri bo'lmasa, boshqa qadamlarni bajarish imkoniyati yaratiladi. Agar shart noto'g'ri bo'lsa, &lt;code&gt;else&lt;/code&gt; qismi bajariladi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Sintaksis:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (shart) 
{
    // shart to'g'ri bo'lsa bajariladigan kod
}
else 
{
    // shart noto'g'ri bo'lsa bajariladigan kod
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;C# da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (shart) 
{
    // shart to'g'ri bo'lsa bajariladigan kod
} 
else 
{
    // shart noto'g'ri bo'lsa bajariladigan kod
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Misol:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int son = 3;
if (son &amp;gt; 5) 
{
    cout &amp;lt;&amp;lt; "Son 5 dan katta!" &amp;lt;&amp;lt; endl;
} 
else 
{
    cout &amp;lt;&amp;lt; "Son 5 dan kichik yoki teng!" &amp;lt;&amp;lt; endl;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;C# da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int son = 3;
if (son &amp;gt; 5)
{
    Console.WriteLine("Son 5 dan katta!");
} 
else 
{
    Console.WriteLine("Son 5 dan kichik yoki teng!");
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Bu dasturda, agar son 5 dan katta bo'lsa, birinchi xabar, aks holda, ikkinchi xabar ekranga chiqariladi.&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;if-else&lt;/code&gt; &lt;code&gt;if-else&lt;/code&gt; Operatori
&lt;code&gt;if-else&lt;/code&gt; &lt;code&gt;if-else&lt;/code&gt; operatori bir nechta shartlarni tekshirishga imkon beradi. Agar birinchi shart noto'g'ri bo'lsa, keyingi shartlar tekshiriladi va tegishli qadamlar bajariladi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Sintaksis:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(shart1)
{
    // shart1 to'g'ri bo'lsa bajariladigan kod
} 
else if(shart2)
{
    // shart2 to'g'ri bo'lsa bajariladigan kod
}
else 
{
    // shartlar noto'g'ri bo'lsa bajariladigan kod
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;C# da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(shart1) 
{
    // shart1 to'g'ri bo'lsa bajariladigan kod
} 
else if(shart2) 
{
    // shart2 to'g'ri bo'lsa bajariladigan kod
} 
else 
{
    // shartlar noto'g'ri bo'lsa bajariladigan kod
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Misol:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int baho = 85;
if(baho &amp;gt;= 90) 
{
    cout &amp;lt;&amp;lt; "Sizning bahoingiz: A" &amp;lt;&amp;lt; endl;
} 
else if(baho &amp;gt;= 80)
{
    cout &amp;lt;&amp;lt; "Sizning bahoingiz: B" &amp;lt;&amp;lt; endl;
} 
else if(baho &amp;gt;= 70) 
{
    cout &amp;lt;&amp;lt; "Sizning bahoingiz: C" &amp;lt;&amp;lt; endl;
} 
else 
{
    cout &amp;lt;&amp;lt; "Siz o'qishdan o'tmadingiz." &amp;lt;&amp;lt; endl;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;C# da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int baho = 85;
if(baho &amp;gt;= 90) 
{
    Console.WriteLine("Sizning bahoingiz: A");
} 
else if(baho &amp;gt;= 80)
{
    Console.WriteLine("Sizning bahoingiz: B");
} 
else if(baho &amp;gt;= 70)
{
    Console.WriteLine("Sizning bahoingiz: C");
} 
else
{
    Console.WriteLine("Siz o'qishdan o'tmadingiz.");
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Bu misolda, kiritilgan bahoga qarab tegishli baho ekranga chiqariladi.&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;switch&lt;/code&gt;Operatori
&lt;code&gt;switch&lt;/code&gt; operatori bir nechta qiymatlarni tekshirish uchun mo'ljallangan. U odatda o'zgaruvchining qiymatini bir nechta imkoniyatlar bilan solishtirishda ishlatiladi. Har bir holat &lt;code&gt;case&lt;/code&gt; deb ataladi va oxirida break orqali to'xtatiladi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Sintaksis:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;switch(ifoda) 
{
    case qiymat1:
        // qiymat1 bo'lsa bajariladigan kod
        break;
    case qiymat2:
        // qiymat2 bo'lsa bajariladigan kod
        break;
    default:
        // hech qaysi qiymat mos kelmasa bajariladigan kod
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;C# da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;switch (ifoda) 
{
    case qiymat1:
        // qiymat1 bo'lsa bajariladigan kod
        break;
    case qiymat2:
        // qiymat2 bo'lsa bajariladigan kod
        break;
    default:
        // hech qaysi qiymat mos kelmasa bajariladigan kod
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Misol:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int kun = 3;
switch(kun) 
{
    case 1:
        cout &amp;lt;&amp;lt; "Dushanba" &amp;lt;&amp;lt; endl;
        break;
    case 2:
        cout &amp;lt;&amp;lt; "Seshanba" &amp;lt;&amp;lt; endl;
        break;
    case 3:
        cout &amp;lt;&amp;lt; "Chorshanba" &amp;lt;&amp;lt; endl;
        break;
    default:
        cout &amp;lt;&amp;lt; "Bunday kun yo'q" &amp;lt;&amp;lt; endl;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;C# da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int kun = 3;
switch(kun) 
{
    case 1:
        Console.WriteLine("Dushanba");
        break;
    case 2:
        Console.WriteLine("Seshanba");
        break;
    case 3:
        Console.WriteLine("Chorshanba");
        break;
    default:
        Console.WriteLine("Bunday kun yo'q");
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu dasturda &lt;code&gt;kun&lt;/code&gt; o'zgaruvchining qiymati 3 ga teng bo'lgani uchun "Chorshanba" ekranga chiqariladi.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Mantiqiy Operatorlar
Shartlarni birlashtirish yoki ular orasidagi aloqani ko'rib chiqish uchun mantiqiy operatorlar ishlatiladi:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;AND (&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;): Ikkala shart ham to'g'ri bo'lsa, shart bajariladi.&lt;/li&gt;
&lt;li&gt;OR (&lt;code&gt;||&lt;/code&gt;): Shartlardan birontasi to'g'ri bo'lsa, shart bajariladi.&lt;/li&gt;
&lt;li&gt;NOT (&lt;code&gt;!&lt;/code&gt;): Shartning teskarisini tekshirish.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Misollar:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int yosh = 20;

if(yosh &amp;gt; 18 &amp;amp;&amp;amp; yosh &amp;lt; 25) 
{
    cout &amp;lt;&amp;lt; "Yoshingiz 18 va 25 orasida." &amp;lt;&amp;lt; endl;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;C# da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int yosh = 20;

if(yosh &amp;gt; 18 &amp;amp;&amp;amp; yosh &amp;lt; 25) 
{
    Console.WriteLine("Yoshingiz 18 va 25 orasida.");
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>cpp</category>
      <category>csharp</category>
      <category>algorithms</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Input/Output Amallari</title>
      <dc:creator>Islamali Akhmadjanov</dc:creator>
      <pubDate>Sun, 29 Sep 2024 07:47:12 +0000</pubDate>
      <link>https://forem.com/islamali_coder/inputoutput-amallari-h9g</link>
      <guid>https://forem.com/islamali_coder/inputoutput-amallari-h9g</guid>
      <description>&lt;p&gt;Foydalanuvchi bilan muloqot qilish uchun dasturda kirish (input) va chiqish (output) amallaridan foydalanamiz. Bu yordamida foydalanuvchi dasturga ma'lumot kiritishi va natijani ko'rishi mumkin.&lt;/p&gt;

&lt;p&gt;C++ da:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Input: cin yordamida foydalanuvchidan ma'lumot olish.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Output: cout yordamida natijani ekranga chiqarish.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;

using namespace std;

int main() 
{
    int yosh;

    cout &amp;lt;&amp;lt; "Yoshingizni kiriting: ";
    cin &amp;gt;&amp;gt; yosh;

    cout &amp;lt;&amp;lt; "Sizning yoshingiz: " &amp;lt;&amp;lt; yosh &amp;lt;&amp;lt; endl;

    return 0;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Bu dastur foydalanuvchidan yoshini so'raydi va kiritilgan yoshni ekranga chiqaradi.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;C# da:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Input: Console.ReadLine() yordamida foydalanuvchidan ma'lumot olish.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Output: Console.WriteLine() yordamida natijani ekranga chiqarish.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;

class Program 
{
    static void Main() 
    {
        Console.Write("Yoshingizni kiriting: ");
        string yosh = Console.ReadLine();
        Console.WriteLine("Sizning yoshingiz: " + yosh);
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Bu C# dasturi ham foydalanuvchidan yoshini so'raydi va kiritilgan yoshni ekranga chiqaradi.&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;O'zgaruvchilarning Ahmiyati&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;O'zgaruvchilarni nomlash: O'zgaruvchilarni nomlashda mantiqiy va maqsadga muvofiq nom tanlash muhim. Masalan, a yoki b kabi nomlar o'rniga yosh yoki oylik kabi tushunarli nomlar tanlash kerak.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O'zgaruvchilardan foydalanish: Dastur davomida o'zgaruvchilarni qo'llash orqali hisoblashlarni amalga oshirish, ma'lumotni saqlash va qayta ishlash mumkin.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Matematik Amallar
O'zgaruvchilar yordamida turli matematik amallarni bajarish mumkin:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Qo'shish (+), ayirish (-), ko'paytirish (*), bo'lish (/), qoldiq olish (%).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Misollar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int a = 10;
int b = 5;
int yigindi = a + b; // 15
int farq = a - b;    // 5
int kopaytma = a * b; // 50
int bolinma = a / b;  // 2
int qoldiq = a % b;   // 0

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;C# da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int a = 10;
int b = 5;
int yigindi = a + b; // 15
int farq = a - b;    // 5
int kopaytma = a * b; // 50
int bolinma = a / b;  // 2
int qoldiq = a % b;   // 0

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>cpp</category>
      <category>csharp</category>
      <category>algorithms</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Dastlabki Algoritmik Tushunchalar</title>
      <dc:creator>Islamali Akhmadjanov</dc:creator>
      <pubDate>Thu, 19 Sep 2024 06:33:14 +0000</pubDate>
      <link>https://forem.com/islamali_coder/dastlabki-algoritmik-tushunchalar-4ake</link>
      <guid>https://forem.com/islamali_coder/dastlabki-algoritmik-tushunchalar-4ake</guid>
      <description>&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Qadamlar Ketma-ketligi&lt;/strong&gt;&lt;br&gt;
Algoritmda qadamlar ketma-ketligi muhim ahamiyatga ega. Qadamlarni to'g'ri tartibda bajarish kerak, aks holda algoritm noto'g'ri ishlaydi. Masalan, choy tayyorlash algoritmini ko'rib chiqaylik:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choynakka suv quyish.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Suvni qaynatish.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choy va shakar qo'shish.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Aralashtirish. Agar bu qadamlarni noto'g'ri tartibda bajarsak, natija umuman boshqacha bo'lishi mumkin. Dasturlashda ham xuddi shunday, har bir qadam o'z o'rnida va to'g'ri tartibda bajarilishi kerak.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;O'zgaruvchilar va Ularning Turlari&lt;/strong&gt;&lt;br&gt;
O'zgaruvchilar - bu kompyuter xotirasidagi ma'lumotlarni saqlash uchun ajratilgan joy. Ular orqali ma'lumotlarni dastur davomida saqlash va ulardan foydalanish mumkin.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;C++ va C# da o'zgaruvchilar:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O'zgaruvchi e'lon qilish: O'zgaruvchi yaratilganda unga nom va tur beriladi.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ma'lumot turlari: O'zgaruvchilar uchun tur tanlash juda muhim. Eng ko'p ishlatiladigan ma'lumot turlari quyidagilar:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;int: Butun sonlarni saqlash uchun (masalan, 5, -3, 100).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;double yoki float: Haqiqiy sonlarni saqlash uchun (masalan, 3.14, -0.001).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;char: Bitta belgi saqlash uchun (masalan, 'A', 'b').&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;string: Matn saqlash uchun (masalan, "Salom", "Dasturlash").&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;bool: Mantiqiy qiymatlarni saqlash uchun (true yoki false).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Misollar:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int yosh = 25;         // Butun son
double oylik = 1500.50; // Haqiqiy son
char belgi = 'A';      // Bitta belgi
string ism = "Ali";    // Matn
bool haqiqat = true;   // Mantiqiy qiymat

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;C# da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int yosh = 25;          // Butun son
double oylik = 1500.50; // Haqiqiy son
char belgi = 'A';       // Bitta belgi
string ism = "Ali";     // Matn
bool haqiqat = true;    // Mantiqiy qiymat

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Input/Output Amallari&lt;/strong&gt;
Foydalanuvchi bilan muloqot qilish uchun dasturda kirish (input) va chiqish (output) amallaridan foydalanamiz. Bu yordamida foydalanuvchi dasturga ma'lumot kiritishi va natijani ko'rishi mumkin.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;C++ da:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Input: cin yordamida foydalanuvchidan ma'lumot olish.&lt;/li&gt;
&lt;li&gt;Output: cout yordamida natijani ekranga chiqarish.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;

using namespace std;

int main() 
{
    int yosh;
    cout &amp;lt;&amp;lt; "Yoshingizni kiriting: ";
    cin &amp;gt;&amp;gt; yosh;
    cout &amp;lt;&amp;lt; "Sizning yoshingiz: " &amp;lt;&amp;lt; yosh &amp;lt;&amp;lt; endl;

    return 0;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Bu dastur foydalanuvchidan yoshini so'raydi va kiritilgan yoshni ekranga chiqaradi.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C# da:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Input: Console.ReadLine() yordamida foydalanuvchidan ma'lumot olish.&lt;/li&gt;
&lt;li&gt;Output: Console.WriteLine() yordamida natijani ekranga chiqarish.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;

class Program 
{
    static void Main() 
    {
        Console.Write("Yoshingizni kiriting: ");
        string yosh = Console.ReadLine();
        Console.WriteLine("Sizning yoshingiz: " + yosh);
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Bu C# dasturi ham foydalanuvchidan yoshini so'raydi va kiritilgan yoshni ekranga chiqaradi.&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;O'zgaruvchilarning Ahmiyati&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;O'zgaruvchilarni nomlash: O'zgaruvchilarni nomlashda mantiqiy va maqsadga muvofiq nom tanlash muhim. Masalan, a yoki b kabi nomlar o'rniga yosh yoki oylik kabi tushunarli nomlar tanlash kerak.&lt;/li&gt;
&lt;li&gt;O'zgaruvchilardan foydalanish: Dastur davomida o'zgaruvchilarni qo'llash orqali hisoblashlarni amalga oshirish, ma'lumotni saqlash va qayta ishlash mumkin.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Matematik Amallar&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;O'zgaruvchilar yordamida turli matematik amallarni bajarish mumkin:&lt;/li&gt;
&lt;li&gt;Qo'shish (+), ayirish (-), ko'paytirish (*), bo'lish (/), qoldiq olish (%)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Misollar:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int a = 10;
int b = 5;
int yigindi = a + b; // 15
int farq = a - b;    // 5
int kopaytma = a * b; // 50
int bolinma = a / b;  // 2
int qoldiq = a % b;   // 0

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;C# da:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int a = 10;
int b = 5;
int yigindi = a + b; // 15
int farq = a - b;    // 5
int kopaytma = a * b; // 50
int bolinma = a / b;  // 2
int qoldiq = a % b;   // 0

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>cpp</category>
      <category>csharp</category>
      <category>coding</category>
      <category>algorithms</category>
    </item>
    <item>
      <title>Algoritmga Kirish va Asosiy Tushunchalar</title>
      <dc:creator>Islamali Akhmadjanov</dc:creator>
      <pubDate>Thu, 19 Sep 2024 06:18:28 +0000</pubDate>
      <link>https://forem.com/islamali_coder/algoritmga-kirish-va-asosiy-tushunchalar-1f6l</link>
      <guid>https://forem.com/islamali_coder/algoritmga-kirish-va-asosiy-tushunchalar-1f6l</guid>
      <description>&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Algoritm Nima?&lt;/strong&gt;&lt;br&gt;
Algoritm - bu muammoni yechish uchun bajarilishi kerak bo'lgan aniq qadamlar to'plami. Oddiy qilib aytganda, algoritm bu maqsadga erishish uchun ketma-ket bajariladigan ko'rsatmalardir. Masalan, nonvoyxonadan non sotib olish uchun quyidagi qadamlarni bajarish mumkin:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Uy eshigini ochish.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nonvoyxonaga borish.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navbatga turish.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nonni sotib olish.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Uyga qaytish.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Har bir qadam muayyan ishni bajarishga yordam beradi va natijada kerakli maqsadga erishiladi.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Algoritmlarning Hayotimizdagi Roli&lt;/strong&gt;
Biz kundalik hayotda ham turli algoritmlardan foydalanamiz, masalan:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Uyqudan turishdan boshlab maktabga borish jarayoni.&lt;/li&gt;
&lt;li&gt;Ovqat pishirish uchun retseptga rioya qilish.&lt;/li&gt;
&lt;li&gt;Ma'lumot qidirish uchun internetdan foydalanish. Ushbu jarayonlarning barchasi aniq qadamlar ketma-ketligidan iborat.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Algoritmlashning Muhimligi&lt;/strong&gt;
Algoritmlash muammolarni samarali echishda muhim rol o'ynaydi. Dasturlashda biz katta va murakkab muammolarni kichik, boshqarilishi oson bo'lgan qismchalarga bo'lib yechish uchun algoritmlardan foydalanamiz. Samarali algoritm:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Tez ishlaydi.&lt;/li&gt;
&lt;li&gt;Kam resurslar sarflaydi (xotira va protsessor vaqti).&lt;/li&gt;
&lt;li&gt;Ishonchli va oson o'zgartiriladigan bo'ladi.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Algoritmning Asosiy Qismlari&lt;/strong&gt;
Algoritmlar bir necha asosiy qismlardan tashkil topadi:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Bosqichlar: Algoritmdagi har bir qadam. Har bir qadam aniq va tushunarli bo'lishi kerak.&lt;/li&gt;
&lt;li&gt;Shartlar: Ba'zi hollarda muayyan qadamlarni bajarishdan oldin shartni tekshirish kerak bo'ladi. Masalan, non olishdan oldin nonvoyxona ochiqmi yoki yo'qligini tekshirish.&lt;/li&gt;
&lt;li&gt;Sikllar: Ba'zi amallarni bir necha marta takrorlash kerak bo'lganda sikllardan foydalaniladi. Masalan, matematik hisob-kitoblarni qayta-qayta bajarish.&lt;/li&gt;
&lt;li&gt;Maqsad: Algoritmning oxirgi maqsadi yoki natijasi. Bu har doim aniq bo'lishi kerak.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Algoritmlarning Tasvirlanishi&lt;/strong&gt;
Algoritmlarni tasvirlashning bir nechta usullari mavjud:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Psevdo Kod: Oddiy tilda yozilgan kodga o'xshash ko'rsatmalar. Bu dasturlash tilida kod yozishdan oldin algoritmni tasvirlash uchun ishlatiladi.&lt;/li&gt;
&lt;li&gt;Blok-Sxemalar: Algoritmning har bir qadamini grafik shaklda ifodalash. Blok-sxemalar orqali algoritmning qadamlarini oson tushunish mumkin.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Misol - Oddiy Algoritm&lt;/strong&gt;
Foydalanuvchidan ikki sonni kiritib, ularning yig'indisini chiqaruvchi oddiy algoritmni ko'rib chiqamiz:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Algoritm Qadamlar:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Foydalanuvchidan birinchi sonni kiritishni so'rash.&lt;/li&gt;
&lt;li&gt;Foydalanuchidan ikkinchi sonni kiritishni so'rash.&lt;/li&gt;
&lt;li&gt;Ikkala sonni qo'shish.&lt;/li&gt;
&lt;li&gt;Natijani ekranga chiqarish.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;

using namespace std;

int main()
{
  int son1, son2;

  cout &amp;lt;&amp;lt; "Enter the first number: ";
  cin &amp;gt;&amp;gt; son1;

  cout &amp;lt;&amp;lt; "Enter the second number: ";
  cin &amp;gt;&amp;gt; son2;

  int result = son1 + son2;
  cout &amp;lt;&amp;lt; "The result of two number: " &amp;lt;&amp;lt; result &amp;lt;&amp;lt; endl;

   return 0;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;

class Program
{
    static void Main()
    {
        // Foydalanuvchidan birinchi sonni kiritishni so'rash
        Console.Write("Birinchi sonni kiriting: ");
        int son1 = int.Parse(Console.ReadLine());

        // Foydalanuvchidan ikkinchi sonni kiritishni so'rash
        Console.Write("Ikkinchi sonni kiriting: ");
        int son2 = int.Parse(Console.ReadLine());

        // Ikkala sonni qo'shish
        int yigindi = son1 + son2;

        // Natijani ekranga chiqarish
        Console.WriteLine("Sonlar yig'indisi: " + yigindi);
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Bu algoritmning oddiy misoli bo'lib, undan qanday qilib qadamlarni ketma-ket bajarib, muammoni echish mumkinligini ko'rishimiz mumkin.&lt;/code&gt;&lt;/p&gt;

</description>
      <category>coding</category>
      <category>algorithms</category>
      <category>cpp</category>
      <category>csharp</category>
    </item>
    <item>
      <title>Compyuter memory</title>
      <dc:creator>Islamali Akhmadjanov</dc:creator>
      <pubDate>Mon, 05 Aug 2024 19:04:16 +0000</pubDate>
      <link>https://forem.com/islamali_coder/compyuter-memory-5e9g</link>
      <guid>https://forem.com/islamali_coder/compyuter-memory-5e9g</guid>
      <description>&lt;p&gt;Assalamu aleykum hurmatli dasturchilar bugun sizlar bilan kompyuter xotirasi haqida gaplashamiz. Kompyuter xotirasi kompyuterning ishlashida muhim rol o'ynaydi. Xotira kompyuterga ma'lumotlarni saqlash, qayta ishlash va olish imkonini beradi. Keling, xotiraga nisbatan ba'zi asosiy tushunchalarni ko'rib chiqamiz.&lt;/p&gt;

&lt;h2&gt;
  
  
  1.Xotiraning Turlari
&lt;/h2&gt;

&lt;p&gt;Kompyuter xotirasi ikki asosy turga bo'linadi:&lt;/p&gt;

&lt;p&gt;a) Asosiy Xotira(RAM)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;RAM(Random Access Memory) - Bu tezkor, vaqtinchalik xotira turidir. RAM kompyuterning ishlash jarayonida vaqtinchalik ma'lumotlarni saqlaydi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Misol: Siz biror dastur ochganingizda yoki faylni tahrirlaganingizda, bu ma'lumotlar RAMda saqlanadi. Kompyuter o'chirganda, RAMdagi barcha ma'lumotlar yo'qoladi.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;b) Doimiy Xotira(ROM va Saqlash Qurilmalari)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;ROM(Read-Only-Memory) - Bu o'qish uchun mo'ljallangan doimiy xotira. ROMda kompyuterning ishga tushirish uchun kerakli asosiy dasturlar (BIOS) saqlanadi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Saqlash Qurilmalari - Bular uzoq muddatli saqlash uchun ishlatiladi, masalan, qattiq disk(HDD), SSD(Solid State Drive), yoki USB flesh-disklar. Bu joylarda ma'lumotlar kompyuter o'chirilganida ham saqlanib qoladi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Misol: Siz fayllarni, rasimlarni yoki dasturlarni saqlaysiz. Bu ma'lumotlar SSD yoki HDDda saqlanadi va kompyuterni qayta yoqganingizda saqlanib qoladi.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2.Xotira Hajmi va Tezligi
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Hajmi - Xotiraning hajmi uning qancha ma'lumotni saqlay olish qobiliyatini ko'rsatadi. RAM uchun, masalan, 8 GB yoki 16 GB bo'lishi mumkin. Saqlash qurilmalari uchun, 500 GB yoki 1 TB kabi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Misol: Agar sizda 8 GB RAM bo'lsa, bu sizga bir vaqtning o'zida bir nechta dasturlarni ishlatishga imkon beradi. Agar sizda kamroq RAM bo'lsa, kompyuter ko'p dasturlarni ochganingizda sekinlashish mumkin.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tezligi - xotiraning tezligi ma'lumotlarni qayta ishlash tezligini belgilaydi. RAM tezligi, masalan, 2400 MHz yoki 3200 MHz bo'lishi mumkin, bu RAMning ishlash tezligini belgilaydi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Misol: Tezkor RAM kompyuterning dasturlari va tizimining tezroq ishlashiga yordam beradi. Tez-tez o'zgartiriladigan ma'lumotlar tez-tez RAMda saqlanadi, shuning uchun yuqori tezlikdagi RAM ko'proq samarali ishlaydi.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Kesh Xotira
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Kesh(Cache) Xotira - Bu juda tezkor xotira bo'lib, CPU(markazi protsessor) tomonidan tez-tez foydalaniladigan ma'lumotlarni saqlaydi. Kesh xotira asosan uch qatlamdan iborat bo'ladi: L1, L2 va L3.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Misol: Agar siz tez-tez foydalanadigan dastur yoki fayl bo'lsa, u dastur CPU tomonidan tezroq ishlanishi uchun kesh xotiraga saqlanadi.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Xotira Yordamhci Vositalar
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Virtual Xotira - Bu RAMning cheklangan hajmi bo'lsa, saqlash qurilmasidan foydalanishga imkon beradi. Kompyuter virtual xotira yaratadi va ma'lumotlarni vaqtincha saqlash uchun qattiq diskdan foydalanadi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Misol: Agar siz katta dastur yoki faylni ochmoqchi bo'lsangiz va RAMning yetarli joyi bo'lmasa, kompyuter qattiq diskdagi bo'sh joyni virtual RAM sifatida ishlatadi. Bu, odatda, sekinroq bo'ladi, chunki qattiq disk RAMga nisbatan ancha sekin.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Xulosa
&lt;/h2&gt;

&lt;p&gt;Kompyuter xotirasi ma'lumotlarni saqlash va qayta ishlash uchun zarur bo'lgan asosiy komponentdir. RAM tezkor, vaqtinchalik xotira sifatida ishlatiladi, xotira esa uzoq muddatli saqlash uchun mo'ljallanfan. Tezlik va hajm xotiraning samaradorligini belgilaydi, va kesh xotira CPUning ishlash tezligini oshiradi. Virtual xotira esa RAM yetarli bo'lmagan holatlarda qo'shimcha yordam beradi.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>basic</category>
      <category>learning</category>
    </item>
    <item>
      <title>C# haqida</title>
      <dc:creator>Islamali Akhmadjanov</dc:creator>
      <pubDate>Sat, 03 Aug 2024 14:40:55 +0000</pubDate>
      <link>https://forem.com/islamali_coder/c-haqida-36mm</link>
      <guid>https://forem.com/islamali_coder/c-haqida-36mm</guid>
      <description>&lt;p&gt;C# (oʻqilishi “si sharp”) Microsoft tomonidan ishlab chiqilgan va .NET platformasining bir qismi boʻlgan kuchli va moslashuvchan dasturlash tilidir. Quyida uning afzalliklari va asosiy xususiyatlari haqida batafsil tushuntirish beraman.&lt;/p&gt;

&lt;p&gt;C# haqida&lt;br&gt;
Asosiy Xususiyatlar:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Objektga yoʻnaltirilgan dasturlash (OOP): C# toʻliq OOP tilidir, bu esa sinflar, ob’ektlar, merosxo'rlik, inkapsulyatsiya, va polimorfizm kabi xususiyatlarni o'z ichiga oladi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Statik turlangan: C# statik turlangan til bo'lib, bu tilda barcha o'zgaruvchilarni ma'lum bir turga ega qilish kerakligini bildiradi. Bu kod yozishda ko'proq barqarorlik va kamroq xatolikni ta'minlaydi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Javobgar ma'lumot xavfsizligi: C# tizimli va xavfsiz ma'lumotlarni boshqarish xususiyatlari bilan ajralib turadi, bu esa ko'plab dasturlash xatolarini oldini olishga yordam beradi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integratsiya qobiliyati: C# tili Windows platformasi bilan chuqur integratsiyalashgan bo'lib, Visual Studio kabi rivojlangan integratsiyalashgan rivojlantirish muhitlari (IDE) yordamida ishlatiladi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ko'p platformali rivojlantirish: C# yordamida Windows, macOS, Linux va mobil platformalarda (Xamarin orqali) dasturlarni yaratish mumkin.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Afzalliklari:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Kuchli muhit: Visual Studio va boshqa .NET muhitlari C# dasturchilariga boy va samarali muhitni taqdim etadi, bu esa rivojlantirish jarayonini sezilarli darajada tezlashtiradi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Yuqori samaradorlik: .NET Core va .NET 5+ bilan birgalikda C# juda samarali ishlaydi va yuqori mahsuldorlikni ta'minlaydi.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Moslashuvchanlik va keng qamrov: C# ning kengaytirilgan standart kutubxonalari va vositalari bilan har qanday turdagi dasturlarni yozish mumkin, masalan, veb-dasturlar, mobil ilovalar, o'yinlar (Unity yordamida) va bulutli yechimlar.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jamoa yordami: C# ning keng jamoatchiligi va resurslari mavjud bo'lib, yordam va qo'llab-quvvatlash oson topiladi. Bundan tashqari, Microsoft tomonidan muntazam ravishda yangilanishlar va qo'shimchalar chiqariladi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kengaytirilgan tarmoqli dasturlash imkoniyatlari: C# asinxron va parallel dasturlash uchun kuchli vositalar va kutubxonalarni taklif etadi, bu esa ko'p vazifali dasturlarni yozishni osonlashtiradi. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;C# dan foydalanish misollari:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Korporativ dasturlar: Ko'plab katta korporativ ilovalar C# da yozilgan, chunki bu til kuchli, barqaror va xavfsizdir.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O'yin dasturlash: Unity o'yin dvigateli C# dan foydalanadi va juda mashhur o'yinlar C# yordamida yozilgan.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Veb dasturlash: ASP.NET va ASP.NET Core bilan birgalikda C# ning kuchli veb dasturlash imkoniyatlari mavjud.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using System;

namespace HelloWorldApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello Islamali Ustoz");
        }
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ushbu kod oddiy C# dasturini ko'rsatadi, bu dastur faqat konsolda "Hello Islamali Ustoz" xabarini chiqaradi. Bu dastur sizga C# da qanday qilib dastur yozishni boshlash haqida asosiy tushunchani beradi.&lt;/p&gt;

&lt;p&gt;Xulosa:&lt;br&gt;
C# - bu kuchli, xavfsiz va moslashuvchan dasturlash tili bo'lib, har qanday turdagi dasturlarni yozish uchun keng imkoniyatlar beradi. Bu tilni o'rganish va ishlatish juda oson bo'lib, katta jamoatchilik va resurslar mavjudligi sababli qo'llab-quvvatlanadi.&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>coding</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>C# da Arefmetik operators</title>
      <dc:creator>Islamali Akhmadjanov</dc:creator>
      <pubDate>Wed, 31 Jul 2024 19:49:43 +0000</pubDate>
      <link>https://forem.com/islamali_coder/c-da-arefmetik-operators-1eha</link>
      <guid>https://forem.com/islamali_coder/c-da-arefmetik-operators-1eha</guid>
      <description>&lt;p&gt;Assalamu aleykum hurmatli dasturchilar, bugun sizlar bilan C# dasturlash tilida Arefmetik operatsiyalar haqida to'liq gaplashamiz.&lt;/p&gt;

&lt;p&gt;C# tilida arifmetik amallar bir operand (unary), ikki operand (binary), va uch operand (ternary) ustida bajariladi. Keling, barchasini ko'rib chiqamiz.&lt;/p&gt;

&lt;p&gt;Binary Operations (Ikki operandli amallar)&lt;br&gt;
&lt;code&gt;+&lt;/code&gt; - Ikki sonni qo'shish&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int x = 10;
int z = x + 12; // 22

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;-&lt;/code&gt; - Ikki sonni ayirish&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int x = 10;
int z = x - 6; // 4

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;*&lt;/code&gt; - Ikki sonni ko'paytirish&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int x = 10;
int z = x * 5; // 50

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;/&lt;/code&gt; - Ikki sonni bo'lish&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int x = 10;
int z = x / 5; // 2

double a = 10;
double b = a / 3; // 3.3333333333333335

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Agar ikkala operand butun son bo'lsa, natija ham butun son bo'ladi va u yaxlitlanadi.&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;double x = 10 / 4; // 2

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Ushbu muammodan chiqish uchun operandlarni double yoki float sifatida aniqlash kerak:&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;double x = 10.0 / 4.0; // 2.5

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;%&lt;/code&gt; - Ikki sonning bo'lishdan qolgan qoldig'ini olish.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;double x = 10.0 % 4.0; // 2

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Unary Operations (Bir operandli amallar)&lt;br&gt;
&lt;code&gt;++&lt;/code&gt; - Inkrement (o'sish)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Prefiks ⇒ ++x&lt;/code&gt; - avval x qiymati 1 ga oshiriladi, keyin natija qaytariladi.&lt;br&gt;
&lt;code&gt;Postfiks ⇒ x++&lt;/code&gt; - avval x qiymati qaytariladi, keyin 1 ga oshiriladi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int x = 5;
int y = ++x;
Console.WriteLine($"{x} - {y}"); // x = 6, y = 6

int n = 5;
int m = n++;
Console.WriteLine($"{n} - {m}"); // n = 6, m = 5

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;--&lt;/code&gt; - Dekrement (kamayish)&lt;/p&gt;

&lt;p&gt;Dekrement ham prefiks &lt;code&gt;--x&lt;/code&gt; va postfiks &lt;code&gt;x--&lt;/code&gt; shakllarida mavjud.&lt;/p&gt;

&lt;p&gt;Amallarni bajarish tartibi&lt;br&gt;
&lt;code&gt;Inkrement (++)&lt;/code&gt;, &lt;code&gt;dekrement (--)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Ko'paytirish &lt;code&gt;(*)&lt;/code&gt;, bo'lish &lt;code&gt;(/)&lt;/code&gt;, qoldiq olish &lt;code&gt;(%)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Qo'shish &lt;code&gt;(+)&lt;/code&gt;, ayirish &lt;code&gt;(-)&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int a = 3;
int b = 5;
int c = 40;
int d = c-- - b * a;

Console.WriteLine($"a={a}; b={b}; c={c}; d={d}"); // a = 3; b = 5; c = 39; d = 25

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>csharp</category>
      <category>beginners</category>
      <category>coding</category>
      <category>programming</category>
    </item>
    <item>
      <title>C# da Data tiplar haqida</title>
      <dc:creator>Islamali Akhmadjanov</dc:creator>
      <pubDate>Wed, 31 Jul 2024 19:35:48 +0000</pubDate>
      <link>https://forem.com/islamali_coder/c-da-data-tiplar-haqida-3fcb</link>
      <guid>https://forem.com/islamali_coder/c-da-data-tiplar-haqida-3fcb</guid>
      <description>&lt;p&gt;Assalamu aleykum hurmatli dasturchilar, C# tilida ma'lumot turlari (data types) haqida tushuncha beraman. Quyidagi misollar yordamida har bir turdagi o'zgaruvchilarni qanday ishlatishni ko'rsataman.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;bool&lt;/code&gt;
&lt;code&gt;bool&lt;/code&gt; — bu ma'lumot turi true yoki false qiymatlarini saqlaydi.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bool isStudent = true;
bool isTeacher = false;

Console.WriteLine(isStudent);  // Natija: True
Console.WriteLine(isTeacher);  // Natija: False

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;byte&lt;/code&gt;
&lt;code&gt;byte&lt;/code&gt; — bu 1 baytli butun son bo'lib, qiymati 0 dan 255 gacha bo'lishi mumkin.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;byte age = 25;  // 0 dan 255 gacha
Console.WriteLine(age);  // Natija: 25

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;sbyte&lt;/code&gt;
&lt;code&gt;sbyte&lt;/code&gt; — bu 1 baytli butun son bo'lib, qiymati -128 dan 127 gacha bo'lishi mumkin.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sbyte temperature = -5;  // -128 dan 127 gacha
Console.WriteLine(temperature);  // Natija: -5

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;short&lt;/code&gt;
&lt;code&gt;short&lt;/code&gt; — bu 2 baytli butun son bo'lib, qiymati -32,768 dan 32,767 gacha bo'lishi mumkin.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;short year = 2024;
Console.WriteLine(year);  // Natija: 2024

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;ushort&lt;/code&gt;
&lt;code&gt;ushort&lt;/code&gt; — bu 2 baytli butun son bo'lib, qiymati 0 dan 65,535 gacha bo'lishi mumkin.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ushort maxScore = 65000;
Console.WriteLine(maxScore);  // Natija: 65000

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;6.&lt;code&gt;int&lt;/code&gt;&lt;br&gt;
&lt;code&gt;int&lt;/code&gt; — bu 4 baytli butun son bo'lib, qiymati -2,147,483,648 dan 2,147,483,647 gacha bo'lishi mumkin.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int population = 1000000;
Console.WriteLine(population);  // Natija: 1000000

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;uint&lt;/code&gt;
&lt;code&gt;uint&lt;/code&gt; — bu 4 baytli butun son bo'lib, qiymati 0 dan 4,294,967,295 gacha bo'lishi mumkin.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;uint distance = 3000000000;
Console.WriteLine(distance);  // Natija: 3000000000

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;long&lt;/code&gt;
&lt;code&gt;long&lt;/code&gt; — bu 8 baytli butun son bo'lib, qiymati -9,223,372,036,854,775,808 dan 9,223,372,036,854,775,807 gacha bo'lishi mumkin.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;long worldPopulation = 7800000000;
Console.WriteLine(worldPopulation);  // Natija: 7800000000

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;ulong&lt;/code&gt;
&lt;code&gt;ulong&lt;/code&gt; — bu 8 baytli butun son bo'lib, qiymati 0 dan 18,446,744,073,709,551,615 gacha bo'lishi mumkin.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ulong starsInGalaxy = 1000000000000000000;
Console.WriteLine(starsInGalaxy);  // Natija: 1000000000000000000

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;float&lt;/code&gt;
&lt;code&gt;float&lt;/code&gt; — bu 4 baytli suzuvchi nuqtali son bo'lib, qiymati -3.4 * 10^38 dan 3.4 * 10^38 gacha bo'lishi mumkin.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;float temperature = 36.6f;
Console.WriteLine(temperature);  // Natija: 36.6

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;double&lt;/code&gt;
&lt;code&gt;double&lt;/code&gt; — bu 8 baytli suzuvchi nuqtali son bo'lib, qiymati ±5.0 * 10^-324 dan ±1.7 * 10^308 gacha bo'lishi mumkin.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;double pi = 3.14159265358979;
Console.WriteLine(pi);  // Natija: 3.14159265358979

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;decimal&lt;/code&gt;
&lt;code&gt;decimal&lt;/code&gt; — bu 16 baytli o'nli nuqtali son bo'lib, qiymati ±1.0 * 10^-28 dan ±7.9228 * 10^28 gacha bo'lishi mumkin. U 28 ta raqamni aniqlik bilan saqlay oladi.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;decimal price = 199.99m;
Console.WriteLine(price);  // Natija: 199.99

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;char&lt;/code&gt;
&lt;code&gt;char&lt;/code&gt; — bu 2 baytli bir belgini saqlaydi (Unicode kodlashda).
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;char letter = 'A';
Console.WriteLine(letter);  // Natija: A

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;string&lt;/code&gt;
&lt;code&gt;string&lt;/code&gt; — bu Unicode belgilardan iborat matnni saqlaydi.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string greeting = "Salom, dunyo!";
Console.WriteLine(greeting);  // Natija: Salom, dunyo!

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;object&lt;/code&gt;
&lt;code&gt;object&lt;/code&gt; — bu har qanday ma'lumot turini saqlay oladigan umumiy ma'lumot turidir.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;object obj1 = 42;
object obj2 = "Hello";
object obj3 = 3.14;

Console.WriteLine(obj1);  // Natija: 42
Console.WriteLine(obj2);  // Natija: Hello
Console.WriteLine(obj3);  // Natija: 3.14

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;var&lt;/code&gt;
&lt;code&gt;var&lt;/code&gt; — bu ma'lumot turi emas, balki C# sintaksisida turlarni aniqlashni soddalashtiradigan kalit so'zdir. var bilan deklaratsiya qilingan o'zgaruvchining turi kompilyator tomonidan aniqlanadi.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var number = 10;         // int turida
var name = "John";       // string turida
var price = 19.99;       // double turida

Console.WriteLine(number);  // Natija: 10
Console.WriteLine(name);    // Natija: John
Console.WriteLine(price);   // Natija: 19.99

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ushbu misollar yordamida siz har bir ma'lumot turining qanday ishlashini va qanday qiymatlar saqlashini ko'rishingiz mumkin. Har bir tur o'zining maxsus o'lchami va qiymat oralig'iga ega, bu esa dasturchilarga aniqroq va samaraliroq kod yozishga yordam beradi.&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>coding</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>ASCII Table nima</title>
      <dc:creator>Islamali Akhmadjanov</dc:creator>
      <pubDate>Wed, 31 Jul 2024 19:14:37 +0000</pubDate>
      <link>https://forem.com/islamali_coder/ascii-table-nima-289e</link>
      <guid>https://forem.com/islamali_coder/ascii-table-nima-289e</guid>
      <description>&lt;p&gt;Assalamu aleykum hurmatli dasturchilar, bugun sizlar bilan ASCII tabli haqida gaplashamiz.&lt;br&gt;
ASCII Nima?&lt;br&gt;
ASCII — bu harflar, raqamlar va boshqa belgilarni raqamli kodlar yordamida ifodalash uchun yaratilgan standart kodlash tizimi. Har bir belgi ma'lum bir raqamli qiymat bilan belgilanadi. ASCII jadvali 128 ta belgi uchun kodlarni o'z ichiga oladi (0 dan 127 gacha).&lt;/p&gt;

&lt;p&gt;ASCII Jadvali tuzilishi&lt;br&gt;
ASCII jadvali ikki qismga bo'linadi:&lt;/p&gt;

&lt;p&gt;Boshqaruv belgilari (0-31): Bu belgilarga klaviaturadagi maxsus tugmalar, masalan, Enter, Backspace, va boshqalar kiradi.&lt;br&gt;
Bosiladigan belgilar (32-127): Bu belgilarga matnli belgilar kiradi, masalan, harflar, raqamlar va maxsus belgilar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Decimal   Character
-------   ---------
0         NUL
1         SOH
2         STX
3         ETX
4         EOT
5         ENQ
6         ACK
7         BEL
8         BS
9         TAB
10        LF
11        VT
12        FF
13        CR
14        SO
15        SI
16        DLE
17        DC1
18        DC2
19        DC3
20        DC4
21        NAK
22        SYN
23        ETB
24        CAN
25        EM
26        SUB
27        ESC
28        FS
29        GS
30        RS
31        US
32        Space
33        !
34        "
35        #
36        $
37        %
38        &amp;amp;
39        '
40        (
41        )
42        *
43        +
44        ,
45        -
46        .
47        /
48        0
49        1
50        2
51        3
52        4
53        5
54        6
55        7
56        8
57        9
58        :
59        ;
60        &amp;lt;
61        =
62        &amp;gt;
63        ?
64        @
65        A
66        B
67        C
68        D
69        E
70        F
71        G
72        H
73        I
74        J
75        K
76        L
77        M
78        N
79        O
80        P
81        Q
82        R
83        S
84        T
85        U
86        V
87        W
88        X
89        Y
90        Z
91        [92        \93        ]
94        ^
95        _
96        `
97        a
98        b
99        c
100       d
101       e
102       f
103       g
104       h
105       i
106       j
107       k
108       l
109       m
110       n
111       o
112       p
113       q
114       r
115       s
116       t
117       u
118       v
119       w
120       x
121       y
122       z
123       {
124       |
125       }
126       ~
127       DEL

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ASCII Kodlarni Foydalanish&lt;br&gt;
Keling, C# dasturida ASCII kodlarni qanday foydalanishni ko'rib chiqamiz. Masalan, A harfi 65 raqamiga teng va a harfi 97 raqamiga teng.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
class Program
{
    static void Main()
    {
        char capitalA = 'A'; // ASCII 65
        char smallA = 'a';   // ASCII 97

        int asciiCapitalA = (int)capitalA;
        int asciiSmallA = (int)smallA;

        Console.WriteLine("A harfining ASCII kodi: " + asciiCapitalA); // 65
        Console.WriteLine("a harfining ASCII kodi: " + asciiSmallA);   // 97

        // ASCII koddan belgi olish
        char letterFromAscii65 = (char)65;
        char letterFromAscii97 = (char)97;

        Console.WriteLine("ASCII 65 dan belgi: " + letterFromAscii65); // A
        Console.WriteLine("ASCII 97 dan belgi: " + letterFromAscii97); // a
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Yuqoridagi kodda biz A va a harflarining ASCII kodlarini ko'rib chiqdik va ASCII kodlardan belgilarni oldik.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Kichik Harflardan Katta Harflarga o'zgartirish&lt;br&gt;
Kichik harfni katta harfga o'zgartirish uchun biz ASCII kodlarini bilishimiz kerak. Kichik harflar (a dan z gacha) va katta harflar (A dan Z gacha) orasida 32 ta farq bor. Bu farqni foydalanib, kichik harfni katta harfga o'zgartirish mumkin.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
class Program
{
    static void Main()
    {
        char smallLetter = 'a';
        char capitalLetter = (char)(smallLetter - 32);

        Console.WriteLine("Kichik harf: " + smallLetter);  // Kichik harf: a
        Console.WriteLine("Katta harf: " + capitalLetter); // Katta harf: A
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Yuqoridagi misolda, smallLetter harfi a bo'lib, ASCII kodida 97 ga teng. Uni katta harfga o'zgartirish uchun 32 ni ayiramiz va natijani char turiga aylantiramiz.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Katta Harflardan Kichik Harflarga o'zgartirish&lt;br&gt;
Katta harfni kichik harfga o'zgartirish uchun 32 ni qo'shamiz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
class Program
{
    static void Main()
    {
        char capitalLetter = 'A';
        char smallLetter = (char)(capitalLetter + 32);

        Console.WriteLine("Katta harf: " + capitalLetter); // Katta harf: A
        Console.WriteLine("Kichik harf: " + smallLetter);  // Kichik harf: a
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Yuqoridagi misolda, capitalLetter harfi A bo'lib, ASCII kodida 65 ga teng. Uni kichik harfga o'zgartirish uchun 32 ni qo'shamiz va natijani char turiga aylantiramiz.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;C# da o'rnatilgan usuldan foydalanish&lt;br&gt;
C# da, .ToUpper() va .ToLower() metodlari orqali harflarni katta va kichik harflarga o'zgartirish mumkin.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
class Program
{
    static void Main()
    {
        string lowerCase = "hello";
        string upperCase = lowerCase.ToUpper();

        Console.WriteLine("Kichik harflar: " + lowerCase);  // Kichik harflar: hello
        Console.WriteLine("Katta harflar: " + upperCase);   // Katta harflar: HELLO

        upperCase = "WORLD";
        lowerCase = upperCase.ToLower();

        Console.WriteLine("Katta harflar: " + upperCase);   // Katta harflar: WORLD
        Console.WriteLine("Kichik harflar: " + lowerCase);  // Kichik harflar: world
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;`Yuqoridagi kod misolida, .ToUpper() metodini lowerCase satriga chaqirib, barcha kichik harflarni katta harflarga aylantirdik. .ToLower() metodi esa upperCase satridagi barcha katta harflarni kichik harflarga aylantirdi.&lt;/p&gt;

&lt;p&gt;Bu usullar yordamida harflarni oson va samarali tarzda o'zgartirish mumkin.`&lt;/p&gt;

&lt;p&gt;ASCII Jadvali Tushunchasi&lt;br&gt;
ASCII jadvali orqali kompyuterlar va dasturlar matnli belgilarni raqamli kodlarga aylantirib, ularni saqlash, yuborish va qayta ishlash imkoniyatiga ega bo'ladi. Masalan, siz yozgan matnni kompyuter ichida saqlash uchun har bir harfning ASCII kodi saqlanadi. Shu orqali matnli ma'lumotlarni qayta tiklash mumkin.&lt;/p&gt;

&lt;p&gt;ASCII jadvali kompyuterlar uchun matnli belgilarni raqamli kodlarga aylantirishning asosiy usulidir. Har bir belgi o'ziga xos raqamli kodga ega bo'lib, bu kodlar yordamida belgilar saqlanadi va qayta ishlanadi. ASCII jadvalini tushunish kompyuter va dasturlashning asosiy tushunchalaridan biridir.&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>programming</category>
      <category>beginners</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
