wczytywanie danych z klaw

0

klasa rozwiazujaca problem znajdowania n-tego elementu ciagu liczb trojkatnych
numer szukanego elementu wprowadzany z klawiatury

problem jest w tym ze wynik zawsze wychodzi 0.
co jest nie tak?;/

import java.io.*;
import java.util.*;
 
public class zadsi {
    
    public static void main(String[] args) {
    LiczbyTroj o1 = new LiczbyTroj();
    	o1.odczyt();
    	o1.oblicz();
 	o1.wypisz();
      		
 			
    }
}
    class LiczbyTroj{
    	private int n;
    	private int wynik;
    
    	
    	LiczbyTroj(){               
 			n=0;
 			wynik=0;
    		}
    	LiczbyTroj(int a){
    		n=a;
    		wynik=0;
    	}
    	int odczyt(){
    		String s = " ";
    		int x=0;
    		InputStreamReader strumien = new InputStreamReader(System.in);
    		BufferedReader we = new BufferedReader (strumien);
    		System.out.print("podaj numer elementu: ");
    		try{
    		s = we.readLine();
    		x=Integer.parseInt(s);
    		
    		}
    		catch(NumberFormatException e){
    			System.out.println("nie wprowadzono liczby");
    			System.exit(1);
    		}
    		
    		
    		catch(IOException e){
    			System.out.print("blad!");
    			System.exit(1);
    		}
    		return x;
    		
    		}
    	int oblicz(){
    		if(n==1)
    			wynik = 1;
    		else{
    			for(int i=1;i<=n;i++){
    				wynik=wynik+n;
    			}
    		
    		}
    		
    	return wynik;
    	}	
    		void wypisz(){
    			System.out.println(wynik);
    		}
    	
    }	
    
0

Wynik zawsze jest zero bo nie inicjalizujesz pola n w klasie, metodę odczyt zmień na:

void odczyt(){
	InputStreamReader strumien = new InputStreamReader(System.in);
	BufferedReader we = new BufferedReader (strumien);
	System.out.print("podaj numer elementu: ");
	
	try {
		n = Integer.parseInt(we.readLine());
	} catch(NumberFormatException e){
		System.out.println("nie wprowadzono liczby");
		System.exit(1);
	} catch(IOException e){
		System.out.print("blad!");
		System.exit(1);
	}
}
}
0

a moglby ktos mi napisac jak powinna wygladac metoda zapisu "wyniku" do pliku?
bo nie moge tego ogarnac a dopiero zaczyna jave...;/
i troche to opisac?;p

0
pawelx89 napisał(a)

a moglby ktos mi napisac jak powinna wygladac metoda zapisu "wyniku" do pliku?
bo nie moge tego ogarnac a dopiero zaczyna jave...;/
i troche to opisac?;p

Słyszałeś o takiej stronie jak google ;-P
http://www.exampledepot.com/egs/java.io/WriteToFile.html

0

ok, dziala;P dzieki za pomoc.

ale moze mi ktos wytlumaczyc dlaczego jezeli zapisuje do pliku wynik(cyfry), a otwieram plik w notatniku to zamiast wyniku sa jakies inne znaki?

0

Argh, wystarczy spojrzeć do API. Funkcja write(int) nie zapisuje liczby, ale odpowiadający jej znak. Żeby zapisać liczbę, należy najpierw przekształcić ją na łańcuch.</url>

0

Jeśli chodzi o wczytywanie danych z klawiatury to co zrobić jeżeli na wejściu dostajemy nie określą liczbę danych.
Chodzi mi o zadanie takiego typu http://pl.spoj.pl/problems/KC009/

0

Najprościej klasą
http://java.sun.com/javase/6/docs/api/java/util/Scanner.html
metody nextInt() i hasNextInt()

1 użytkowników online, w tym zalogowanych: 0, gości: 1