Matematické Fórum


1. 8. 2026 (L) Fórum bude brzy uzavřeno 😿

Nejste přihlášen(a). Přihlásit

#1 11. 04. 2010 17:45 — Editoval Mika18 (11. 04. 2010 17:45)

Mika18
Zelenáč
Příspěvky: 12
Reputace:   
 

Java, prosím o pomoc

Zdravím, třeba vám to přijde jednoduché ale s tímto si nevím rady mohl by ty programy prosím někdo napsat, ve škole nám učitel nic nevysvětlí, a pak po nás chce skoro zázraky. Z napsanýho programu většinou už něco pochopim. předem díky moc

1) načíst textový soubor a zjistit(vypsat do konzole) slova začínalící a končící stejným znakem


2) načíst, zpracovat a uložit textový soubor:
vstup (vstup.txt), (pouze čísla pod sebou):
52
30
823
156

výstup (výstup.txt),(formátování výstupu by mělo být prostě správně jako když se sčítá pod sebou):
   52
   30
  823
  156
----
1061

Offline

 

#2 11. 04. 2010 18:36

septolet
Příspěvky: 334
Reputace:   
 

Re: Java, prosím o pomoc

A co už máš hotové? Zkus něco vytvořit (třeba jen slovní návrh, kousek kódu, prostě něco), pak to sem poslat a můžeme to nějak prodiskutovat. To by bylo asi nejlepší.

Offline

 

#3 11. 04. 2010 18:48

Mika18
Zelenáč
Příspěvky: 12
Reputace:   
 

Re: Java, prosím o pomoc

↑ septolet: já s tim skoro nehnu, ten s textem zvládnu našíst a vypsat si ty slova, vim že bych měla asi soubor načítat po pismenkách, pruběžně si někam ukladat a ověřit to ale já ten kod prostě nenapíšu a to za 2) mam ve stavu kdy to sice sčita ale mám pro mě zdánlivě neřešitelnej problém s tim naformátovanim

1) mam:

Code:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;


public class Main {

    
    public static void main(String[] args) {

    try {
      BufferedReader r = new BufferedReader(new FileReader("soubor.txt"));
      String s;
     while ((s = r.readLine()) != null)
        System.out.println(s);
   
    

      r.close();
    } catch (FileNotFoundException ex) {
      System.out.println("Soubor nenalezen");
    } catch (IOException ex) {
      System.out.println("I/O chyba");


    }



  }
}

a ve 2)

Code:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 *
 * @author User
 */
public class druhyukol {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int d = 0;
        int c = 0;
        try {
            BufferedReader r = new BufferedReader(new FileReader("vstup.txt"));
            String s;
            while ((s = r.readLine()) != null) {
                int k = Integer.parseInt(s);

                if (k / 100 == 0) {
                    System.out.println(String.format(" %d", k));
                } else {
                    System.out.println(String.format("%d", k));
                }
                d = k + c;
                c = d;

                try {
                    FileWriter f = new FileWriter("vystup.txt");
                    f.write(String.valueOf(k));
                    f.close();
                } catch (IOException ex) {
                    System.out.println("I/O chyba");
                }
            }
            System.out.println("-----");
            System.out.println(d);
            r.close();
        } catch (FileNotFoundException ex) {
            System.out.println("Soubor nenalezen");
        } catch (IOException ex) {
            System.out.println("I/O chyba");
        }

    }
}

Offline

 

#4 11. 04. 2010 19:18 — Editoval septolet (11. 04. 2010 19:19)

septolet
Příspěvky: 334
Reputace:   
 

Re: Java, prosím o pomoc

Soubor by skutečně bylo vhodnější číst po písmenkách, minimálně je to nejjednodušší řešení. To lze v Jave udělat přes třídu FileReader. Konstruktoru této třídy předáš instanci třídy File. Takže takový malý příklad otevření souboru a vytvoření instance třídy FileReader by mohl vypadat takto:

Code:

File f1 = new File("a.txt");
if(!f1.exists())
{ 
    // pokud soubor neexistuje, tak by to chtělo nějak ošetřit, třeba ukončit program
}
FileReader r = new FileReader(f1);

No a nyní už jen stačí číst jednotlivé znaky pomocí funkce read(), což je funkce třídy FileReader, takže v našem konkrétním případě ji voláme jako r.read(). Funkce vrací přečtený znak ze souboru nebo -1 v případě, že jsme dosáhli konce souboru. No takže zkus tedy v cyklu číst zadaný soubor po jednotlivých znacích dokud nedosáhneš jeho konce a vždy u nového slova si zapamatuj jeho první písmenko, to poté porovnej s posledním písmenkem daného slova.

Snažím se záměrně nepsat kód, ale jen slovní vysvětlení, protože si myslím, že by bylo dobré, abys danou problematiku pochopila sama a když nakonec sama napíšeš kód, tak to, alespoň dle mého názoru, pochopíš lépe (minimálně v začátcích) než když si jen přečteš hotový kód.

K té druhé úloze. Nejprve by bylo dobré si zjistit nejdelší číslo v souboru a podle toho pak odsazovat všechna kratší čísla.

Offline

 

#5 11. 04. 2010 19:30

Mika18
Zelenáč
Příspěvky: 12
Reputace:   
 

Re: Java, prosím o pomoc

↑ septolet:dík já se o to pokusim, snad se mi něco povede

Offline

 

#6 12. 04. 2010 20:01

Mika18
Zelenáč
Příspěvky: 12
Reputace:   
 

Re: Java, prosím o pomoc

↑ septolet:já to prostě asi nechápu jestli ten soubor existuje mám přece ošetřený těma vyjímkama: try... catch, píšu to v NetBeansu furt to piše chyby, mám pocit že je to čim dál horši, neexistují třeba někde na netu nějaký vzorový programy u kterejch by bylo vypsáno co která část kodu dělá nebo něco podobnýho?

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson