Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

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