Matice z textového souboru ? – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Matice z textového souboru ? – Java – Fórum – Programujte.comMatice z textového souboru ? – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Robin930
Duch
4. 1. 2014   #1
-
0
-

Obracím se opět s prosbou, jakžtakž se mi povedlo dát dohromady program, který najde sedlové body v matici. Pracuji s maticemi 3x3. Matice si zadáváte sami. Ovšem dalším krokem je, aby matici sem si nezadával sám, ale aby ji program načetl z textového souboru a s ní pracoval. Za mák na to nemohu přijít. Práci se soubory znám vím jak na to, už sem dělal program, kde program načte text  z textového souboru ten upravý a vytvoří nový výstupní soubor například. Ale v případě matic sem bezmocný nic mi nefunguje. Prosím našla by se dobrá duše co by poradila popřípadě mi to v javě ukázala jak ? Do pondělí musím odevzdat. Přikládám zdroják co mám ted ...

package sedlovýbod;
import java.util.Scanner;
public class Sedlovýbod {

    public static void main(String[] args) {
        int max,min,i,j,k,l;
        Scanner in=new Scanner(System.in);
        int a[][]=new int[3][3];
        System.out.print("Zadejte matici\n");
        for(i=0;i<3;i++)
        {
            for(j=0;j<3;j++)
              {
                  System.out.print("Zadej řádek "+(i+1)+" Sloupec "+(j+1)+" = ");
                  a[i][j]=in.nextInt();
              }
        }
        for(i=0;i<3;i++)
        {
            for(j=0;j<3;j++)
            {
                max=min=a[i][j];
                   for(k=0;k<3;k++)
                    {
                    if(max<a[k][j])
                    {
                    min=a[k][j];
                    }
                   }
                   for(l=0;l<3;l++)
                   {
                    if(min>a[i][l])
                    {
                    max=a[i][l];
                    }
                   }
                if(max==min)
                {
                System.out.print("Sedlový bod je "+max+" v ("+(i+1)+" , "+(j+1)+")");
                }
            }  
        }       
    System.out.println();    
  }
}

Nahlásit jako SPAM
IP: 93.99.187.–
Reklama
Reklama
JoDiK
~ Anonymní uživatel
981 příspěvků
4. 1. 2014   #2
-
0
-

http://skola.isd.cz/java/14a_vstupy_a_vystupy.pdf

viz stringtokenizer

Nahlásit jako SPAM
IP: 88.100.43.–
Robin930
Duch
4. 1. 2014   #3
-
0
-

Díky, ale už sem  toho četl spousta a furt na  to nemůžu přijít. Zkoušel sem stringtokenizer, ale  nevim jak to udělat vždy to nějak podělam.....Nevím si fakt rady

Nahlásit jako SPAM
IP: 93.99.187.–
sleepy
~ Anonymní uživatel
422 příspěvků
7. 1. 2014   #4
-
0
-

Regulare vyrazi ti pomozu. Alebo delit to podla toho cim su cisla v riadku oddelene ... . Tobre predpokladajme ze mas subor a v nom su cisla ulozene v nejakom floating point formate.  

Pattern doubleFormat = Pattern.compile("[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?");

private double[][] a;

public void readMatrix(File matrixFile) throw IOException {
	BufferedReader reader = new BufferedReader(new FileReader(matrixFile));
	String line = null;
	// len pomocny list na to aby som podla neho vedel vygenerovat pole
	List<List<Double>> matList = new LinkedList<>();
	while((line = reader.readLine()) !=null) {
		Matcher m = doubleFormat.matcher(line);
		List<Double> row = new LinkedList<Double>();
		matList.add(row);
		while(m.find()) {
			row.add(Double.valueOf(m.goup());
		}
	}
        reader.close();
	a = new double[matList.size()][matList.get(0).size()];
	for(int i = 0, m = matList.size(); i < m; i++) {
		for(int j = 0, n = matList.get(0).size(); j < n; j++) {
			a[i][j] = matList.get(i).get(j);
		}
	}
	
}

Mozno s tam drobne chyby, ale to si uz opravis.

Nahlásit jako SPAM
IP: 147.175.177.–
sleepy
~ Anonymní uživatel
422 příspěvků
11. 1. 2014   #5
-
0
-

#4 sleepy
Ale fuj co som to napisal. Treba pouzit iterrator a len i++ 

int i =0, j=0;
for(List<Double> row : matList){
	for(Double c : row) {
		a[i][j] = c;
		j++;
	}
	i++;
}
Nahlásit jako SPAM
IP: 147.175.177.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 16 hostů

Podobná vlákna

Procházení textového souboru — založil dragon124

Šifrování textového souboru — založil skodik.o

Mapa z textového souboru? — založil hráč

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý