java ve matris

ermess
18-03-2011, 00:45   |  #1  
OP Üye
Teşekkür Sayısı: 0
57 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

ismini kullanıcıdan komut satırından paremetre olacak şekilde alacagımız bir metin belgesi içerisinde tanımlanan,rakamlardan oluşan(0-9) matris üzerinde,satırlarındaki sayıların çarpımlarının toplamı ile sutunlarındaki sayıların çarpımınlarının toplamı birbirine eşit olan en az 2*2 boyutundaki tüm matrislerin başlangıç koordinatlari ve boyutlarını bulan koddu nasıl olur  yardımci olursaniz cook sevinirim? birşeyler düşündüm ama birleştiremedim
notlar
metin dosyasında tanımlanan matrisin boyutları A*A şeklinde tanımlanacak
eger kullanıcı programı çalştırırken parametre olarak geçerli bir metin dosyası vermez ise,metin dosyası içerisindeki tanımlanmış matris ilk satırındaki degerler ile uyuşmuyor ise bu durumda düzgün hta mesaji verip kullacidan hatasini düzeltmesiini isteyecektir

muh34
22-03-2011, 19:56   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

import java.util.Scanner;
import java.io.*;

public class matris
{
        public static void main(String args[])
        {
        Scanner scanner=new Scanner(System.in);
        System.out.println("Lutfen bir dosya adi giriniz:");
        String dosyaAdi=scanner.nextLine();
        int boy=0;
        int [][] tall = new int [3][3];
        int baslangicX=0,baslangicY=0;
        try 
        {
        scanner=new Scanner(new File(dosyaAdi+".txt"));
        try {
        boy=scanner.nextInt();
        boy=scanner.nextInt();
        }
        catch(Exception e) { System.out.println("Data Hatasi\n");}
        int i = 0,j=0;
        while(scanner.nextInt()==-1)
        {
        j++;
        if(j==3)
        {
        j=0;i++;
        }
        }
        baslangicX=i;baslangicY=j;
        while(scanner.hasNextInt())
        {
           tall[j++] = scanner.nextInt();
           if(j==3) {
           j=0;i++;
           }
        }
        }
        catch(Exception e) {}
        int i,j=0;
        int sutun[]={0,0,0};
        int satir[]={0,0,0};
        for(i=0;i<3;i++) 
        {
        satir[j]*=tall[j];
        sutun[j]*=tall[j];
        if(i==3) {
        i=0;j++;
        }
        }
        sutun[0]+=sutun[1]+sutun[2];
        satir[0]+=satir[1]+satir[2];
        if(satir[0]==sutun[0])
        {
        System.out.println(boy);
        System.out.print(baslangicX+" "+baslangicY);
        }
}
}
Algoritma da baslangic koordinatları istendigi icin,txt metin dosyası icerisinde ki bos karakterler,yukarıdaki koda gore -1 degeri ile simgelenmektedir.

Başarılar