Alıştırma - Matematik işlemleri gerçekleştirme

Tamamlandı

Toplamanın temellerini ve daha da önemlisi sayısal ve dize veri türleri arasındaki örtük tür dönüştürmeyi anladığınıza göre, şimdi sayısal verilerle ilgili diğer bazı yaygın matematiksel işlemlere göz atalım.

Temel matematik işlemleri gerçekleştirme

Tamsayılarla toplama, çıkarma, çarpma ve bölme gerçekleştirmek için kod yazma

  1. .NET Düzenleyicisi'ndeki tüm kodu seçin ve silmek için Delete veya Backspace tuşuna basın.

  2. .NET Düzenleyicisi'ne aşağıdaki kodu girin:

    int sum = 7 + 5;
    int difference = 7 - 5;
    int product = 7 * 5;
    int quotient = 7 / 5;
    
    Console.WriteLine("Sum: " + sum);
    Console.WriteLine("Difference: " + difference);
    Console.WriteLine("Product: " + product);
    Console.WriteLine("Quotient: " + quotient);
    
  3. Kodu çalıştırın. Aşağıdaki çıkışı görmeniz gerekir:

    Sum: 12
    Difference: 2
    Product: 35
    Quotient: 1
    

Gördüğünüz gibi:

  • + toplama işlecidir
  • - çıkarma işlecidir
  • * çarpma işlecidir
  • / bölme işlecidir

Ancak, bölme örneğinin sonuçta elde edilen bölümü beklediğiniz gibi olmayabilir. Ondalıktan sonraki değerler, olarak inttanımlandığından değerinden quotient kesilir ve int ondalıktan sonraki değerleri içeremez.

Sabit ondalık verileri kullanarak bölme gerçekleştirmek için kod ekleme

Bölmenin düzgün çalıştığını görmek için gibi decimalondalık ayırıcıdan sonra kesirli basamakları destekleyen bir veri türü kullanmanız gerekir.

  1. Önceki adımlardan kodu silin ve .NET Düzenleyicisi'ne aşağıdaki kodu girin:

    decimal decimalQuotient = 7.0m / 5;
    Console.WriteLine($"Decimal quotient: {decimalQuotient}");
    
    
  2. Kodu çalıştırın. Aşağıdaki çıkışı görmeniz gerekir:

    Decimal quotient: 1.4
    

Bunun çalışması için, bölüm (atama işlecinin solu) türünde decimalolmalı ve bölünen sayılardan en az biri de türünde decimal olmalıdır (her iki sayı da bir decimal tür olabilir).

Aynı şekilde düzgün çalışan diğer iki örnek aşağıda verilmiştir:

decimal decimalQuotient = 7 / 5.0m;
decimal decimalQuotient = 7.0m / 5.0m;

Bununla birlikte aşağıdaki kod satırları çalışmayacaktır (veya hatalı sonuçlar verir):

int decimalQuotient = 7 / 5.0m;
int decimalQuotient = 7.0m / 5;
int decimalQuotient = 7.0m / 5.0m;
decimal decimalQuotient = 7 / 5;

Tamsayı bölme sonuçlarını atamaya kod ekleme

Sabit değerlerle çalışmıyorsanız ne yapabilirsiniz? Diğer bir değişle, int türünde iki değişkenle bölme işlemi yapıyorsanız ama sonucun kesilmesini istemiyorsanız? Bu durumda int olan veri türünü decimal türüne dönüştürmeniz gerekir. Tür dönüştürme, derleyicinin geçici olarak bir değeri farklı bir veri türüymüş gibi işlemesini sağlayan bir veri dönüştürme türüdür.

int türünü decimal türüne dönüştürmek için değerin önüne tür dönüştürme işleci eklersiniz. Değerin önüne parantezler ile çevrili veri türünün adını kullanarak bunu yayınlarsınız. Bu durumda ve değişkenlerinden firstsecondönce öğesini eklersiniz(decimal).

  1. Önceki adımlardan kodu silin ve .NET Düzenleyicisi'ne aşağıdaki kodu girin:

    int first = 7;
    int second = 5;
    decimal quotient = (decimal)first / (decimal)second;
    Console.WriteLine(quotient);
    
  2. Kodu çalıştırın. Aşağıdaki çıkışı görmeniz gerekir:

    1.4
    

Not

Parantez işleci için üç kullanım gördünüz: yöntem çağırma, işlemlerin sırası ve atama.

Tamsayı bölmeden sonra kalanları belirlemek için kod yazma

modulus işleci % bölmenin int geri kalanını size bildirir. Aslında bu size bir sayının başka bir sayıya bölünüp bölünemediğini gösterir. Bu, yüzlerce veya binlerce veri kaydı üzerinden döngü yapan uzun işlemler sırasında son kullanıcıya işlenen her 100 veri kaydından sonra geri bildirim sağlamak istediğinizde kullanışlı olabilir.

  1. Önceki adımlardan kodu silin ve .NET Düzenleyicisi'ne aşağıdaki kodu girin:

    Console.WriteLine($"Modulus of 200 / 5 : {200 % 5}");
    Console.WriteLine($"Modulus of 7 / 5 : {7 % 5}");
    
    
  2. Kodu çalıştırın. Aşağıdaki çıkışı görmeniz gerekir:

    Modulus of 200 / 5 : 0
    Modulus of 7 / 5 : 2
    

Modülüsün 0 olması, bölünen değerin bölen değere tam bölünebildiği anlamına gelir.

İşlem sırası

Önceki alıştırmada öğrendiğiniz gibi, sembolleri işlem işleçlerinin sırası olarak kullanabilirsiniz(). Öte yandan işlem sırasını belirlemenin tek yolu bu değildir.

Matematikte PEMDAS, öğrencilerin işlem sırasını hatırlamalarına yardımcı olan bir kısaltmadır. Bu sıra şöyledir:

  1. Parentheses/Parantez (parantezin içindeki işlemin önceliği vardır)
  2. Exponents/Üstler
  3. Multiplication/Çarpma ve Division/Bölme (soldan sağa)
  4. Addition/Toplama ve Substraction/Çıkarma (soldan sağa)

C# üstler dışında PEMDAS ile aynı sırayı takip eder. C# dilinde üs işleci olmasa da yöntemini kullanabilirsiniz System.Math.Pow . "C# kullanarak .NET Sınıf Kitaplığı'ndan yöntemleri çağırma" modülünde bu yöntem ve diğerleri tanıtılacaktır.

C# öğesinin işlem sırasını alıştırmak için kod yazma

  1. Önceki adımlardan kodu silin ve .NET Düzenleyicisi'ne aşağıdaki kodu girin:

    int value1 = 3 + 4 * 5;
    int value2 = (3 + 4) * 5;
    Console.WriteLine(value1);
    Console.WriteLine(value2);
    

    Burada, aynı işlemleri farklı bir sırada gerçekleştirirken farkı görürsünüz.

  2. Kodu çalıştırın. Aşağıdaki çıkışı görmeniz gerekir:

    23
    35
    

Özet

C# dilindeki matematiksel işlemler hakkında şu ana kadar öğrendiklerini aşağıda bulabilirsiniz:

  • Temel matematik işlemlerini yapmak için +, -, * ve / gibi işleçleri kullanın.
  • İki int değerini böldüğünüzde ondalık ayırıcıdan sonra gelen değerlerin kesilir. Ondalık ayırıcıdan sonraki değerleri korumak için böleni veya bölmeyi (veya her ikisini) int ilk gibi decimal kayan noktalı bir sayıya dönüştürmeniz gerekir, sonra kesmeyi önlemek için bölüm aynı kayan nokta türünde olmalıdır.
  • Değeri geçici olarak başka bir veri türündeymiş gibi işlemek için tür dönüştürme işlemi gerçekleştirin.
  • Bölme işleminin kalanını yakalamak için % işlecini kullanın.
  • İşlemlerin sırası PEMDAS kurallarına uyar.