Alıştırma - Matematik işlemleri gerçekleştirme
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
.NET Düzenleyicisi'ndeki tüm kodu seçin ve silmek için Delete veya Backspace tuşuna basın.
.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);
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 int
tanı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 decimal
ondalık ayırıcıdan sonra kesirli basamakları destekleyen bir veri türü kullanmanız gerekir.
Ö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}");
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 decimal
olmalı 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 first
second
önce öğesini eklersiniz(decimal)
.
Ö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);
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.
Ö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}");
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:
- Parentheses/Parantez (parantezin içindeki işlemin önceliği vardır)
- Exponents/Üstler
- Multiplication/Çarpma ve Division/Bölme (soldan sağa)
- 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
Ö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.
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 gibidecimal
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.