Java Matrislerle Toplama Çıkarma

Herkese Merhaba! Birkaç gündür sayısal analiz hakkında yazı yazdım. Biraz ara vermemiz gerektiğini düşüyorum 🙂 Bugün Java üzerinde matrislerle toplama çıkarma işlemlerine bakacağız. Biliyorsunuz ki matrisler mühendisliğin temel konularından. Web sitelerinin sıralamasını etkileyen Alexa Rank veya google gibi büyük kuruluşların, fikirlerin temeli matrislere dayanıyor. Bu yazımda java kullanarak matrislerle toplama çıkarma konusuna bakıyor olsak da siz diğer dillere de uyarlayabilirsiniz. Tek değişecek şey syntaxları olacaktır. Döngü kurma kısmı veya analitik düşündüğümüz yerde hiçbir dilin birbirinden farkı yoktur. Daha fazla uzatmadan matrislerde toplama ve çıkarma işlemi nasıl yapılıyor inceleyelim.

Matrislerde Toplama Çıkarma

Matrislerde toplama ve çıkarma işlemi oldukça basit. Gerçekten anlaşılması çok kolay. Ama dikkat etmemiz gereken bir nokta var. Toplama veya çıkarma işlemi yapacağımız 2 matrisinde büyüklüğünün aynı olması gerekiyor. Örneğin birinci matrisimiz mXn ise toplama işlemine sokacağımız ikinci matrisin de aynı boyutlarda olması gerekiyor. Ardından yaptığımız tek işlem iki matrisin de aynı satır sütununu toplayıp yeni bir mXn boyutunda matrise yazmak. Şimdi gelin bunu bir java örneğinde yapıp konumuzu tamamlayalım.

Java ile Matrislerde Toplama Çıkarma

Öncelikle örneğimizin isterlerini yazalım.

Birim sayısını kullanıcının girdiği (Boyutunu) “a” ve “b” isimli 2 adet Kare Matris tanımlayınız. (Kare matris satır ve sütun sayısı birbirine eşit demek. ör: 4×4, 6×6..)

▶ Bu iki matrisin içerisini Random sınıfını kullanarak sadece rakamlarla doldurunuz.

• Rastgele rakamlarla oluşan “a” ve “b” matrislerini ekrana yazdırınız.

▶ İki matrisin toplamını “toplamDizisi” ve farkını “farkDizisi” isimli matrislerde tutunuz.

• Sonuç matrislerini ekrana bastırınız.

Şimdi sırasıyla gidecek olursak bizden oluşturmamızı istediği matrisleri 2 boyutlu dizileri kullanarak yapacağız. Bu dizilerin boyutları kare matris olduğu için birbirine eşit olacak. Ve boyutunu bize kullanıcı girecek. Şimdi kullanacağımız sınıflardan scanner ve random sınıfını çağıralım. Ve bizden istediği matrisleri tanımlayalım. Hadi buraya kadar olan kısmı kodlayalım.

Kodlama Bölümü;

public class Matristoplama {

    public static void main(String[] args) {
     System.out.println("Erhanbaran.com");
     Scanner input = new Scanner(System.in);
     System.out.println("Lütfen birim sayısını giriniz!");
     int sayi = input.nextInt();
     int a [][] = new int[sayi][sayi];
     int b [][] = new int[sayi][sayi];
     
     int toplamDizisi [][] = new int[sayi][sayi];
     int farkDizisi [][] = new int[sayi][sayi];
     
     
}

Şimdi bu dizilerimi istenildiği şekilde sadece rakamlar kullanarak dolduralım. For döngüsü kullanarak yapıcağımız bu atama işlemleri sırasında aynı zamanda yazdırma işlemi de yapabiliriz. Hadi gelin yapalım.

public class Matristoplama {

    public static void main(String[] args) {
     System.out.println("Erhanbaran.com");
     Random rnd = new Random();
     Scanner input = new Scanner(System.in);
     System.out.println("Lütfen birim sayısını giriniz!");
     int sayi = input.nextInt();
     int a [][] = new int[sayi][sayi];
     int b [][] = new int[sayi][sayi];
     
     int toplamDizisi [][] = new int[sayi][sayi];
     int farkDizisi [][] = new int[sayi][sayi];
     
     
     System.out.println("A dizisi..: ");
             
     for(int i =0;i<a.length;i++){
         for(int j = 0;j<a.length;j++){
             System.out.print((a[i][j]=rnd.nextInt(10))+" ");
         }System.out.println(" ");
     }
     
     System.out.println("--------------------------------");
     System.out.println("B dizisi..: ");
     for(int i =0;i<a.length;i++){
         for(int j = 0;j<a.length;j++){
             System.out.print((b[i][j]=rnd.nextInt(10))+" ");
         }System.out.println(" ");
     }
     
      
}

Gördüğünüz üzere iç içe 2 for kullanarak çok kolay bir şekilde dizilerimi doldurdum. Üstteki for satır için dönerken içindeki for satırlar için dönüyor. Zaten kare matris olduğu için bunun burada çok bir önemi yok. Fakat demek istediğim iç içe döngüler genelde bu şekilde 2 boyutlu dizilerde, matrislerde kullanılıyor. İterasyonda kullandığımız değişkenlerle matrisin o an ki değerlerine ulaştık. Şimdi gelin buraya kadar yaptıklarımızı çalıştırarak kontrol edelim.

Java matris sorusu çıktısı
Java Matrislerle Toplama Çıkarma örneği 1. çıktısı

Şu ana kadar yaptıklarımız gördüğünüz üzere doğru bir şekilde çalışıyor. Her çalıştırdığımda daha farklı değerler matrislere atanmış olacak. Şimdi son olarak toplama ve çıkarma işlemlerini yapalım. Ardından bu iki sonucu yazdıralım. Bu sefer toplama çıkarma işlemini yaparken yapmak yerine ayrı bir şekilde yapalım.


public class Matristoplama {

    public static void main(String[] args) {
     System.out.println("Erhanbaran.com");
     Random rnd = new Random();
     Scanner input = new Scanner(System.in);
     System.out.println("Lütfen birim sayısını giriniz!");
     int sayi = input.nextInt();
     int a [][] = new int[sayi][sayi];
     int b [][] = new int[sayi][sayi];

     int toplamDizisi [][] = new int[sayi][sayi];
     int farkDizisi [][] = new int[sayi][sayi];
     
     
     System.out.println("A dizisi..: ");
             
     for(int i =0;i<a.length;i++){
         for(int j = 0;j<a.length;j++){
             System.out.print((a[i][j]=rnd.nextInt(10))+" ");
         }System.out.println(" ");
     }
     
     System.out.println("--------------------------------");
     System.out.println("B dizisi..: ");
     for(int i =0;i<a.length;i++){
         for(int j = 0;j<a.length;j++){
             System.out.print((b[i][j]=rnd.nextInt(10))+" ");
         }System.out.println(" ");
     }
     System.out.println("--------------------------------");
     // ----Toplam İşlemi---- 
     for(int i =0;i<toplamDizisi.length;i++){
         for(int j = 0;j<toplamDizisi.length;j++){
             toplamDizisi[i][j]=a[i][j]+b[i][j];
         }
     } 
    //  ----Fark İşlemi----
     for(int i =0;i<toplamDizisi.length;i++){
         for(int j = 0;j<toplamDizisi.length;j++){
             farkDizisi[i][j]=a[i][j]-b[i][j];
         }
     }
        System.out.println("2 dizinin toplamının sonucu: ");
     for(int i =0;i<a.length;i++){
         for(int j = 0;j<a.length;j++){
             System.out.print((toplamDizisi[i][j])+" ");
         }System.out.println("");
     }
     
     System.out.println("--------------------------------");
        System.out.println("2 dizinin farkının sonucu: ");
      for(int i =0;i<a.length;i++){
         for(int j = 0;j<a.length;j++){
             System.out.print((farkDizisi[i][j])+" ");
         }System.out.println("");
     }
      
}

Artık kod kısmını tamamladık. Bu sefer boyutunu 5 girerek çıktıları kontrol edelim.

Java Matrislerle Toplama Çıkarma örneği çıktısı
Java Matrislerle Toplama Çıkarma örneği 2. çıktısı

Bu şekilde örneğimizin sonuna geldik. Uzaktan eğitim döneminde sınavlarda karşımıza çıkabilecek tarzda sorular çözmeye çalışıyorum. Soru önerileriniz olursa veya bu yazıda anlamadığınız bir şey olursa bana ulaşabilirsiniz. Bir sonraki yazıda görüşmek dileğiyle. Herkese sağlıklı günler dilerim ❁