wczytywanie liczb z klawiatory - jak??

0

ja dopiero poznaje srodowiski net beans i sama jave!!

mam na jutro napisać program obliczajacy
pierwiastki równania kwadratowego
gre za duzo za malo

mecze sie z tym ponad tydzien i bez efektów
z petlami chyba sobie poradze ale niewiem jak wczytywac liczby do programu:/

napiszcie prosze co i jak- ale zalezy mi na jak najprostszym-najbardziej prymitywnym sposobie

0

jesli chodzi o programy 'konsolowe' to:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String costam;
costam=br.readLine();

i masz juz Stringa, później np.:

double a = Double.parseDouble(costam);

i już masz double'a

natomiast jesli chcesz mieć program 'okienkowy' to robisz sobie w swoim okienku JtextField'y
i z nich wczytujesz liczby ( oczywiście też po drodze je konwertując je np. na double )

pzdr.

0

na razie chodzi mi o konsole;)

a mógłbyś podac przykładowy prosty programik do ktorego wczytasz text i tyle;)

0

double a = Double.parseDouble(costam);

CO MA BYC W MIEJSCU COS TAM??

0
//w wersji konsolowej
br.readLine()
//w wersji GUI
JTextField tf=new JTextField();
....
tf.getText()
0

dzieki za propozycje, tylko ja sie dopiero ucze ale one niewiele mi mówią:/
możecie bardziej opisać co i jak??

0
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;

public class Main {
	public double a, b, c, x1, x2;

	public Main() {

		wczytajDane();
		oblicz();
	}

	private double obliczDelte() {
		return Math.pow(b, 2) - 4 * a * c;

	}

	public void oblicz() {
		double delta = obliczDelte();
		if (delta < 0) {
			System.out
					.println("Zadanie nie posiada rozwiazan w zbiorze liczb rzeczywistych");
		}
		if (delta == 0) {
			x1 = (-b / (2 * a));
			System.out
					.println("Zadanie posiada 1 rozwiaznie rzeczywiste w punkcie: "
							+ x1);
		}
		if (delta > 0) {
			x1 = (-b - Math.sqrt(delta)) / (2 * a);
			x2 = (-b + Math.sqrt(delta)) / (2 * a);
			x1 = dokladnosc(x1);
			x2 = dokladnosc(x2);
			System.out
					.println("Zadanie posiada 2 rozwiaznie rzeczywiste w punktach: "
							+ x1 + " oraz " + x2);
		}

	}

	private void wczytajDane() {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String costam;
		try {
			try {
				System.out.println("podaj wspolczynnik a: ");
				costam = br.readLine();
				a = Double.parseDouble(costam);
				System.out.println("podaj wspolczynnik b: ");
				costam = br.readLine();
				b = Double.parseDouble(costam);
				System.out.println("podaj wspolczynnik c: ");
				costam = br.readLine();
				c = Double.parseDouble(costam);
			} catch (NumberFormatException x) {
				System.err.println("podales niepoprawna wartosc...");
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public Double dokladnosc(double liczba) {
		Double x2 = new Double(liczba);
		BigDecimal roundfinalPrice = new BigDecimal(x2.doubleValue()).setScale(
				2, BigDecimal.ROUND_HALF_UP);
		Double doublePrice = new Double(roundfinalPrice.doubleValue());
		return doublePrice;
	}

	public static void main(String[] args) {
		Main m1 = new Main();

	}

}

pzdr.

0

dzieki bardzo za pomoc:)
wreszcie cos ruszylo z miejsca:)

mam jeszcze takie pytanie:

chciałbym podawać te wartości teraz w okienku dialogowym ktore bedzie sie pojawiac
chyba tzeba to zrobic z jOptionPane- tylko mi jakos niewychodzi:(

0
double x = 0;
try {
	String input = JOptionPane.showInputDialog("Podaj wartość:");
	x = Double.parseDouble( input );
}catch(NullPointerException e) {
	//nacisnięto cancel
}catch(NumberFormatException e) {
	//wprowadzono błędny format liczby
}

Używanie JOptionPane w programie konsolowym nie ma według mnie sensu.

0

jacobus2k- jak kompiluje kod który wpisaleś to wyrzuca mi bląd:
symbol : variable JOptionPane
location: class javaapplication9.Main
String input = JOptionPane.showInputDialog("Podaj wartość:");
1 error
BUILD FAILED (total time: 15 seconds)

0

A dałeś:

import javax.swing.JOptionPane;

?

0

tak zaimportowalem tylko z bledem:/
kompiluje ale okienko dialogowy niewyskakuje:(

czy są w javie może funkcje min i max??

0

Spróbuj zminimalizować NetBeans'a w momencie gdy powinno wyskoczyć okienko.

A co do max/min probonuje zajrzeć do API:
https://java.sun.com/j2se/1.4.2/docs/api/java/lang/Math.html

0

Mój problem natomiast jest następującej treści: mam do napisania na zaliczenie program, który ma wyliczyć koszty podróży oraz ilość tankowań przy ustalonych warunkach (określona cena paliwa, określone złużycie paliwa na 100km oraz określona pojemność baku paliwa). Użytkownik ma wprowadzać tylko długość podróży w km. No i tu zaczyna się problem - jestem grafikiem i programowania nigdy nie trawiłem (i trawić chyba nie będę). Proszę więc o pomoc bo siedzę już nad tym trzeci dzień bez żadnych skutków. Wprowadzone dane (długość drogi) nijak odnoszą się w obliczeniach (które defacto ją na razie prowizoryczne by lepiej zauważyć czy obliczenia zachodzą czy też nie). Jest to program na zaliczenia na najniższą ocenę, bo chcę tylko to zaliczyć - bez żadnych fajerwerków.

W klasie Main jest:

import java.io.*;
import java.util.*;

public class Main {
    public Main() {
    }
    public static void main(String[] args) throws IOException {
       try {
         BufferedReader strumienWejsciowy = new BufferedReader (new InputStreamReader (System.in));
         System.out.println("Wprowadź planowaną długość podróży (w km)");
         double s = Double.parseDouble(strumienWejsciowy.readLine());
       }
       catch (Exception e) {
         System.out.println("Blad wprowadzania danych.");
         return;
       }
       Auto p = new Auto();
       prezentuj(p);
    }
     private static void prezentuj (Auto p){
        System.out.println("Średni koszt podróży wynosi " + p.koszt() + "zł.\n" +
                           "Auto zatankować należy " + p.tankowanie() + " raz(y).");    
    }
}

W klasie Auto:

public class Auto {
    private double zbiornikp = 50.0;
    private double zluzyciep = 9.6;
    double s;
    public Auto() {
    }
    public Auto(double zbiornikp, double zluzyciep, double s){
        this.zbiornikp=zbiornikp;
        this.zluzyciep=zluzyciep;    
        this.s=s;
    }
    public double koszt(){
        return s+zluzyciep;     // wzory prowizoryczne;)
    }
    public double tankowanie(){
        return 2*(zluzyciep+zluzyciep);        // wzory prowizoryczne;)
    }
}

Proszę o pomoc i ewentualną optymalizacje.

0
import java.io.*;
import java.util.*;

public class Main {
	private BufferedReader strumienWejsciowy;
	private double zbiornikp = 0;
	private double zluzyciep = 0;
	private double s =0;

	public Main() {

		try {
			strumienWejsciowy = new BufferedReader (new InputStreamReader (System.in));

			System.out.println("Wprowadź zbiornikp");
			zbiornikp = Double.parseDouble(strumienWejsciowy.readLine());

			System.out.println("Wprowadź zluzyciep");
			zluzyciep = Double.parseDouble(strumienWejsciowy.readLine());

			System.out.println("Wprowadź planowaną długość podróży (w km)");
			s = Double.parseDouble(strumienWejsciowy.readLine());
			strumienWejsciowy.close();
		}catch (Exception e) {
			System.out.println("Blad wprowadzania danych.");
			System.exit(-1);
		}
		Auto p = new Auto(zbiornikp, zluzyciep, s);
		prezentuj(p);
	}

	public static void main(String[] args) throws IOException {
		new Main();
	}

	private void prezentuj (Auto p){
		System.out.println("Średni koszt podróży wynosi " + p.koszt() + "zł.\n" +
                           "Auto zatankować należy " + p.tankowanie() + " raz(y).");
	}
}


class Auto {
	private double zbiornikp = 50.0;
	private double zluzyciep = 9.6;
	private double s = 0;

	public Auto() {}
	public Auto(double zbiornikp, double zluzyciep, double s) {
		this.zbiornikp=zbiornikp;
		this.zluzyciep=zluzyciep;
		this.s=s;
	}

	public double koszt(){
		return s+zluzyciep;     // wzory prowizoryczne;)
	}
	public double tankowanie(){
		return 2*(zluzyciep+zluzyciep);        // wzory prowizoryczne;)
	}
}
0

Wielkie dzięki jacobus2k! [green] Jesteś WIELKI [!!!]

0

Mam jeszcze problem tego typu. Chciałbym (do programu napisanego dwa posty wyżej), by liczby były zaokrąglanie - do dwóch miejsc po przecinku w przypadku double koszt (np: 12,34) oraz do liczb całych (bez przecinków) w przypadku double tankowanie (np: 12). Liczby te mają być zaokrąglane w górę. Wiem, że za to są odpowiedzialne 'Math' i 'ceil' ale w ogóle nie wiem jak tego użyć. Proszę o pomoc

0

Ludzie przestańcie odrabiać zadania za leniwych uczniów i studentów !!!

Niech się czegoś nauczą, a potem przychodzą z pytaniami.
Zaraz się ktoś odezwie - nie muszą wiedzieć wszystkiego.

A od lekarza też nie wymagasz, żeby wiedział wszystko o swojej specjalności ??

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