Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Czytanie z pliku


Rekomendowane odpowiedzi

Opublikowano

Hej, wiecie może jak przerobić ten kod na taki, aby licznik i mianownik były czytane z pliku bez pomocy Scannera?? 


package zadanie1;

public class Ulamek {

	private int licznik;
	private int mianownik;
	
	public Ulamek() {
		
		this.licznik = 1;
		this.mianownik = 2;
	}
	
	public Ulamek(int a, int b)throws ArithmeticException {
		
		
		this.licznik = a;
		this.mianownik = b;
		if(b == 0)throw new ArithmeticException("Mianownik nie może być zerem");
		
	}
	
	public Ulamek(Ulamek ulamek) {
		
		this.licznik = ulamek.licznik;
		this.mianownik = ulamek.mianownik;
	}
	
	public void wypisz() {
		
		System.out.println(licznik+"/"+mianownik);
		
	}
	
	public Ulamek odwroc() {
		
		return new Ulamek(mianownik, licznik);
	}
	
	public void czyWlasciwy() {
		
		int zmienna = Math.abs(licznik/mianownik);
		
		if(zmienna<1)System.out.println("Ułamek właściwy");
			
		if(zmienna>1)System.out.println("Ułamek niewłaściwy");
		}
	
	public int NWD(int a, int  {

		while(a!= 
			if (a>
				a = a-b;
			else b=b-a;
			
			return a;
		
		
	}
	
	public Ulamek skrocUlamek() {
		int nwd = NWD(licznik, mianownik);
		return new Ulamek(licznik/nwd, mianownik/nwd);
	}
	
	public Ulamek dodajUlamki(Ulamek ulamek) {
			
		return new Ulamek(this.licznik*ulamek.mianownik+ulamek.licznik*this.mianownik, this.mianownik*ulamek.mianownik);
	}
	
	public Ulamek odejmijUlamki(Ulamek ulamek) {
		
		return new Ulamek(this.licznik*ulamek.mianownik-ulamek.licznik*this.mianownik, this.mianownik*ulamek.mianownik);
	}
	
	public Ulamek mnozUlamki(Ulamek ulamek) {
		
		return new Ulamek(this.licznik*ulamek.licznik, this.mianownik*ulamek.mianownik);
	}
	
	public Ulamek dzielUlamki(Ulamek ulamek) {

		return new Ulamek(this.licznik*ulamek.mianownik, this.mianownik*ulamek.licznik);
	}
	
	public boolean czyRowne(Ulamek ulamek) {
		
		return(licznik == ulamek.licznik && mianownik == ulamek.mianownik);
	}
	
	public static void main(String[] args) {
		
	 Ulamek ul[] = new Ulamek[5];
	 
	for (int i = 0; i<5; i++) {
		
		ul[i].wypisz();
		System.out.println("Ułamek odwrócony: "+ul[i].odwroc());
		ul[i].czyWlasciwy();
		System.out.println("Ułamek po skróceniu: "+ul[i].skrocUlamek());
		System.out.println("Ułamki po dodaniu: "+ul[i].dodajUlamki(ul[2]));
		System.out.println("Ułamki po dodaniu: "+ul[i].odejmijUlamki(ul[2]));
		System.out.println("Ułamki po pomnożeniu: "+ul[i].mnozUlamki(ul[2]));
		System.out.println("Ułamki po dzieleniu "+ul[i].dzielUlamki(ul[2]));
		System.out.println("Czy równe ułamki? "+ul[i].czyRowne(ul[2]));
	} 
	}
}

tlofbnowe2.jpg

Opublikowano

użyj np  FileReader i BufferedReader

Coś takiego powinno ci styknąć:

        try (final BufferedReader br = new BufferedReader(new FileReader(new File("dane.txt")))        {            // i tutaj możesz juz wygodnie odczytywać linijki z pliku br.readLine(), zwraca null jak dojdzie do końca        } catch (final FileNotFoundException e)        {            // brak pliku        } catch (final IOException e)        {            // jakiś inny błąd            e.printStackTrace();        }

1438614356923701010629.png

 

Opublikowano

Tylko właśnie nie wiem, w którym miejscu to dodać...

tam gdzie chcesz, to po prsotu umożliwia odczytanie ci pliku... więc ja nie wiem gdzie i kiedy chcesz to odczytywać, to twoja sprawa

1438614356923701010629.png

 

Opublikowano
	public static void main(String[] args) {
		
	 Ulamek ul[] = new Ulamek[5];
	 
	 for (int i=0; i <5; i++) {
	 
     try (final BufferedReader br = new BufferedReader(new FileReader(new File("dane.txt")))
     {
    	 Ulamek ul[i] = new Ulamek(br.readLine(),br.readLine());

     } catch (final FileNotFoundException e)
     {
         System.out.println("Brak pliku");
         
     } catch (final IOException e)
     {
         System.out.println("Błąd");
         e.printStackTrace();
     }
	 
}

Coś w tym stylu? Ja właśnie nie wiem jak zrobić, aby to działało, by program po kolei z pliku odczytywał licznik i mianownik, linijka po linijce z pliku. 

tlofbnowe2.jpg

Opublikowano

BufferedReadera powinieneś tworzyć przed pętlą. I pamiętaj, aby go zamknąć (close). Masz tam try - sam zamyka.

 

Poza tym - Nie tak zmienia się wartości w tablicy.

708121422388637873334.png

Opublikowano

A GotoFinal i ja odpowiedzieliśmy Ci na to pytanie.

To:

Poza tym - Nie tak zmienia się wartości w tablicy.

Dotyczy tylko tego fragmentu:

Ulamek ul[i] = new Ulamek(br.readLine(),br.readLine());

708121422388637873334.png

Opublikowano

 

A GotoFinal i ja odpowiedzieliśmy Ci na to pytanie.

To:

Dotyczy tylko tego fragmentu:

Ulamek ul[i] = new Ulamek(br.readLine(),br.readLine());

No to tyle udało mi się zauważyć, czyli jak się zmienia wartości?

tlofbnowe2.jpg

Opublikowano

­

 

BufferedReadera powinieneś tworzyć przed pętlą. I pamiętaj, aby go zamknąć (close).

 

Poza tym - Nie tak zmienia się wartości w tablicy.

try resources automatycznie dodaje zamykanie.

 

noobie.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

LOLOLOLOLOL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

o8HfXuR.png

CAPSLOCK TEAM - LEPIEJ WIDOCZNI WIDOCZNIE LEPSI

Cała prawda o LittleBlack

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...