Öğretici: C'de tamsayı ve kayan nokta sayıları kullanma#

Bu öğreticide size C# dilindeki sayısal türler öğretildi. Küçük miktarlarda kod yazar, sonra bu kodu derleyip çalıştırırsınız. Öğretici, C# dilinde sayıları ve matematik işlemlerini inceleyen derslerin bir dizisini içerir. Bu dersler size C# dilinin temellerini öğretir.

Tavsiye

Programlamada yeni misiniz? Her bölümü sırayla inceleyin. Başka bir dilden mi geliyorsunuz? Zaten tamsayı ile kayan nokta ayrımlarını biliyor olabilirsiniz; temel bilgileri atlayabilir ve duyarlık ve sınır ve ondalık türü bölümlerine odaklanabilirsiniz.

Bu eğitimde, siz:

  • C# geliştirme ortamıyla GitHub Codespace başlatın.
  • Tamsayı matematiği keşfetme.
  • İşlem sırasını öğrenin.
  • Tamsayı sınırlarını ve hassasiyeti öğrenin.
  • Kayan nokta türlerini öğrenin.
  • Ondalık türünü öğrenin.

Önkoşullar

Aşağıdaki seçeneklerden birine sahip olmanız gerekir:

Tamsayı matematiği keşfetme

Öğretici ortamıyla bir GitHub Codespace başlatmak için , öğretici kod alanı deposuna bir tarayıcı penceresi açın. Yeşil Kod düğmesini ve Codespaces sekmesini seçin. Ardından bu ortamı kullanarak yeni bir Codespace oluşturmak için işareti seçin + . Merhaba dünya öğreticisini tamamladıysanız, yeni bir tane oluşturmak yerine bu kod alanının açılmasını sağlayabilirsiniz.

  1. Codespace'ınız yüklendiğinde, öğreticiler klasöründe numbers.cs adlı yeni bir dosya oluşturun.

  2. Yeni dosyanızı açın.

  3. Aşağıdaki kodu numbers.cs yazın veya kopyalayın:

    int a = 18;
    int b = 6;
    int c = a + b;
    Console.WriteLine(c);
    
  4. Tümleşik terminale aşağıdaki komutları yazarak bu kodu çalıştırın:

    cd ./tutorials
    dotnet numbers.cs
    

    Tamsayılar içeren temel matematik işlemlerinden birini gördünüz. Türü int bir tamsayı, sıfır, pozitif veya negatif tamsayıyı temsil eder. Ekleme için + simgesini kullanırsınız. Tamsayılar için diğer yaygın matematik işlemleri şunlardır:

    • Çıkarma için -
    • Çarpma için *
    • Bölme için /
  5. Bu farklı işlemleri keşfederek başlayın. Değerini yazan csatırın arkasına bu satırları ekleyin:

    // subtraction
    c = a - b;
    Console.WriteLine(c);
    
    // multiplication
    c = a * b;
    Console.WriteLine(c);
    
    // division
    c = a / b;
    Console.WriteLine(c);
    
  6. Terminal penceresine yazarak dotnet numbers.cs bu kodu çalıştırın.

İsterseniz aynı satıra birden çok matematik işlemi yazarak da denemeler yapabilirsiniz. Örneğin, deneyin c = a + b - 12 * 17; . Değişkenleri ve sabit sayıları karıştırmaya izin verilir.

Tavsiye

C# dilini (veya herhangi bir programlama dilini) keşfederken kod yazarken hatalar yapabilirsiniz. Derleyici bu hataları bulur ve size bildirir. Çıktı hata iletileri içerdiğinde, örnek koda ve pencerenizdeki koda yakından bakarak nelerin düzeltileceğini görün. Copilot'dan farklılıkları bulmasını veya hataları tespit etmesini de isteyebilirsiniz. Bu alıştırma, C# kodunun yapısını öğrenmenize yardımcı olur.

İlk adımı tamamladınız. Sonraki bölüme başlamadan önce geçerli kodu ayrı bir yönteme taşıyın. Yöntem, birlikte gruplandırılmış ve bir ad verilen bir dizi deyimdir. Yönteminin adını ve ardından ()öğesini yazarak yöntemini çağırırsınız. Kodunuzu yöntemler halinde düzenlemek, yeni bir örnekle çalışmaya başlamanızı kolaylaştırır.

Tavsiye

Daha fazla bilgi edinin: C# Ile İlgili Temel Bilgiler bölümünde yöntemler ve program yapısı hakkında bilgi edinin.

bitirdiğinizde kodunuz şu şekilde görünmelidir:

WorkWithIntegers();

void WorkWithIntegers()
{
    int a = 18;
    int b = 6;
    int c = a + b;
    Console.WriteLine(c);


    // subtraction
    c = a - b;
    Console.WriteLine(c);

    // multiplication
    c = a * b;
    Console.WriteLine(c);

    // division
    c = a / b;
    Console.WriteLine(c);
}

İşlem sırasını keşfetme

  1. çağrısına açıklama ekleyin WorkingWithIntegers(). Bu değişiklik, siz bu bölümde çalışırken çıkışı daha az karmaşık hale getirir:

    //WorkWithIntegers();
    

    C // # dilinde bir açıklama başlatır. Açıklamalar, kaynak kodunuzda tutmak istediğiniz ancak kod olarak yürütmek istemediğiniz herhangi bir metindir. Derleyici açıklamalardan yürütülebilir kod oluşturmaz. WorkWithIntegers() Bir yöntem olduğundan, yalnızca bir satır açıklama satırı yapmanız gerekir.

  2. C# dili, matematikte öğrendiğiniz kurallarla tutarlı kurallarla farklı matematik işlemlerinin önceliğini tanımlar. Çarpma ve bölme, toplama ve çıkarma işlemlerine göre önceliklidir. çağrısından sonra aşağıdaki kodu ekleyerek ve terminal penceresine WorkWithIntegers()yazarak dotnet numbers.cs bu önceliği keşfedin:

    int a = 5;
    int b = 4;
    int c = 2;
    int d = a + b * c;
    Console.WriteLine(d);
    

    Çıkış, çarpmanın toplamadan önce gerçekleştirildiğini gösterir.

  3. İlk olarak gerçekleştirilmesini istediğiniz işlemin veya işlemlerin çevresine parantez ekleyerek farklı bir işlem sırasını zorlayabilirsiniz. Aşağıdaki satırları ekleyin ve uygulamayı yeniden çalıştırın:

    d = (a + b) * c;
    Console.WriteLine(d);
    
  4. Birçok farklı işlemi birleştirerek daha fazlasını keşfedin. Aşağıdaki satırlara benzer bir şey ekleyin. Terminal penceresinde yeniden deneyin dotnet numbers .

    d = (a + b) - 6 * c + (12 * 4) / 3 + 12;
    Console.WriteLine(d);
    

    Tamsayılar için ilginç bir davranış fark edebilirsiniz. Tamsayı bölme, sonucun ondalık veya kesirli bir bölüm içermesini bekleseniz bile her zaman bir tamsayı sonucu üretir.

  5. Bu davranışı görmediyseniz aşağıdaki kodu deneyin:

    int e = 7;
    int f = 4;
    int g = 3;
    int h = (e + f) / g;
    Console.WriteLine(h);
    
  6. Sonuçları görmek için terminal penceresine yeniden yazın dotnet numbers.cs .

Devam etmeden önce, bu bölümde yazdığınız tüm kodu alın ve yeni bir yönteme yerleştirin. Yeni yöntemi çağır OrderPrecedence. Kodunuz şuna benzer olmalıdır:

// WorkWithIntegers();
OrderPrecedence();

void WorkWithIntegers()
{
    int a = 18;
    int b = 6;
    int c = a + b;
    Console.WriteLine(c);


    // subtraction
    c = a - b;
    Console.WriteLine(c);

    // multiplication
    c = a * b;
    Console.WriteLine(c);

    // division
    c = a / b;
    Console.WriteLine(c);
}

void OrderPrecedence()
{
    int a = 5;
    int b = 4;
    int c = 2;
    int d = a + b * c;
    Console.WriteLine(d);

    d = (a + b) * c;
    Console.WriteLine(d);

    d = (a + b) - 6 * c + (12 * 4) / 3 + 12;
    Console.WriteLine(d);

    int e = 7;
    int f = 4;
    int g = 3;
    int h = (e + f) / g;
    Console.WriteLine(h);
}

Tamsayı hassasiyetini ve sınırlarını keşfetme

Önceki örnekte, tamsayı bölme işleminin sonucu kesir kısmını kestiğini göstermektedir. Kalan işlecini (karakteri) kullanarak % alabilirsiniz.

  1. OrderPrecedence() yöntemini çağırdıktan sonra aşağıdaki kodu deneyin:

    int a = 7;
    int b = 4;
    int c = 3;
    int d = (a + b) / c;
    int e = (a + b) % c;
    Console.WriteLine($"quotient: {d}");
    Console.WriteLine($"remainder: {e}");
    
  2. C# tamsayı türü matematiksel tamsayılardan farklı bir şekildedir: int türü en düşük ve en yüksek sınırlara sahiptir. Bu sınırları görmek için aşağıdaki kodu deneyin:

    int max = int.MaxValue;
    int min = int.MinValue;
    Console.WriteLine($"The range of integers is {min} to {max}");
    
  3. Eğer bir hesaplama bu sınırları aşan bir değer üretirse, taşma veya aşma koşulu alırsınız. Yanıt sanki bir sınırdan diğerine uzanıyor. Bir örneği görmek için kodunuza şu iki satırı ekleyin:

    int what = max + 3;
    Console.WriteLine($"An example of overflow: {what}");
    

Yanıtın en düşük (negatif) tamsayıya çok yakın olduğuna dikkat edin. min + 2ile aynıdır. Toplama işlemi , tamsayılar için izin verilen değerleri taştı. Bir taşma mümkün olan en büyük tamsayı değerinden en küçüğe "kaydırdığından" yanıt büyük bir negatif sayıdır.

int Tür gereksinimlerinizi karşılamıyorsa, farklı sınırları ve duyarlığı olan diğer sayısal türleri kullanın. Şimdi bu sayı türlerini inceleyelim.

Çift veri türüyle çalışma

double sayısal türü çift duyarlıklı kayan nokta sayısını temsil eder. Bu terimler sizin için yeni olabilir. Kayan noktalı sayı, çok büyük veya küçük boyutlu olabilecek tam sayı olmayan sayıları temsil etmek için kullanışlıdır. Çift duyarlıklı, değeri depolamak için kullanılan ikili basamak sayısını açıklayan göreli bir terimdir. Çift duyarlıklı sayılar, tek duyarlıklı olanların iki katı ikili basamak sayısına sahiptir. Modern bilgisayarlarda, tek duyarlıklı sayılardan daha yaygın olarak çift duyarlıklı sayıları kullanırsınız. Tek duyarlıklı sayılar anahtar sözcüğü kullanılarak float bildirilir. Şimdi araştıralım.

  1. Aşağıdaki kodu ekleyin ve sonucu görün:

    double a = 5;
    double b = 4;
    double c = 2;
    double d = (a + b) / c;
    Console.WriteLine(d);
    

    Yanıtın bölme işleminin ondalık kısmını içerdiğine dikkat edin.

  2. Ondalıklı sayılarla biraz daha karmaşık bir ifade deneyin. Aşağıdaki değerleri kullanabilir veya diğer sayıları değiştirebilirsiniz:

    double a = 19;
    double b = 23;
    double c = 8;
    double d = (a + b) / c;
    Console.WriteLine(d);
    
  3. Çift değer aralığı tamsayı değerlerinden çok daha büyüktür. Şu ana kadar yazdıklarına eklediğiniz aşağıdaki kodu deneyin:

    double max = double.MaxValue;
    double min = double.MinValue;
    Console.WriteLine($"The range of double is {min} to {max}");
    

    Bu değerler bilimsel olarak yazdırılır. E öğesinin solundaki sayı, anlamlı sayıdır. Sağdaki sayı, 10'un üssü olan kuvvettir.

  4. Matematikteki ondalık sayılar gibi, C# dilindeki çiftlerde de yuvarlama hataları olabilir. Şu kodu deneyin:

    double third = 1.0 / 3.0;
    Console.WriteLine(third);
    

    0.3 3/10 olduğunu ve 1/3ile tam olarak aynı olmadığını biliyorsunuz. Benzer şekilde, 0.3333/100'dır. Bu değer 1/3daha yakındır, ancak yine de tam değildir. Kaç ondalık basamak eklerseniz ekleyin, yuvarlama hatası kalır.

Sınaması

türünü kullanarak double büyük sayılar, küçük sayılar, çarpma ve bölme içeren diğer hesaplamaları deneyin. Daha karmaşık hesaplamalar deneyin. Sınamayla biraz zaman geçirdikten sonra, yazdığınız kodu alın ve yeni bir yönteme yerleştirin. Bu yeni yöntemi adlandır.WorkWithDoubles

Ondalık türleriyle çalışma

C# dilinde temel sayısal türleri gördünüz: tamsayılar ve çiftler. Öğrenebileceğiniz bir tür daha vardır: decimal türü. decimal türü daha küçük bir aralığa sahiptir ancak double'den daha fazla duyarlığa sahiptir.

  1. Şimdi bir göz atalım:

    decimal min = decimal.MinValue;
    decimal max = decimal.MaxValue;
    Console.WriteLine($"The range of the decimal type is {min} to {max}");
    

    Aralığın double türünden küçük olduğuna dikkat edin.

  2. Aşağıdaki kodu deneyerek ondalık türüyle daha büyük duyarlığı görebilirsiniz:

    double a = 1.0;
    double b = 3.0;
    Console.WriteLine(a / b);
    
    decimal c = 1.0M;
    decimal d = 3.0M;
    Console.WriteLine(c / d);
    

    Ondalık türündeki matematikte ondalık ayırıcının sağındaki daha fazla basamak olduğuna dikkat edin.

    Sayılardaki M sonek, bir sabitin türünü kullanması decimal gerektiğini gösterir. Aksi takdirde, derleyici double türünü varsayar.

Uyarı

M harfi, double ve decimal anahtar sözcükleri arasındaki en görsel olarak belirgin harftir.

Sınaması

Farklı sayısal türleri bildiğinize göre, yarıçapı 2,50 santimetre olan bir dairenin alanını hesaplayan kod yazın. Bir dairenin alanının PI ile çarpılan yarıçap karesi olduğunu unutmayın. Bir ipucu: Math.PI bu değer için kullanabileceğiniz PI için bir sabit uygulama zamanı içerir. Math.PI, System.Math ad alanında bildirilen tüm sabitler gibi double bir değerdir. Bu nedenle, bu sınama için double değerleri yerine decimal kullanmalısınız.

19 ile 20 arasında bir yanıt almalısınız.

double radius = 2.50;
double area = Math.PI * radius * radius;
Console.WriteLine(area);

İstersen başka formüller de deneyebilirsiniz.

Kaynakları temizleme

GitHub, 30 günlük etkinlik dışı kalma süresinden sonra Codespace'inizi otomatik olarak siler. Bu serideki diğer öğreticileri keşfetmeyi planlıyorsanız, Codespace'inizi (kod çalışma alanı) hazır durumda bırakabilirsiniz. .NET SDK'sını indirmek için .NET sitesini ziyaret etmeye hazırsanız Codespace'ınızı silebilirsiniz. Codespace'ınızı silmek için bir tarayıcı penceresi açın ve Codespaces'inize gidin. Pencerede kod boşluklarınızın listesini görmeniz gerekir. Learn eğitim kod alanının girişindeki üç noktayı (...) seçin ve sil seçin.

Sonraki Adımlar

Bu serideki bir sonraki eğitime geçin:

İsterseniz C# Ile İlgili Temel Bilgiler bölümünden ilgili konuları da keşfedebilirsiniz: