Beiträge von bitterlemoncola
-
-
Hallo, ich habe mir einen kleinen Rechner in Java gebastelt, welcher das Ergebnis einer Rechnung mit dem Datentyp double ausgibt. Das Problem ist, wenn die Rechnung eine Ganzzahl ergibt(z.B.: 1.5 + 1.5) kommt im Ergebnis ein ".0", was jedoch sehr unschön ist und ich nicht möchte.
Nun meine Frage: Gibt es eine Möglichkeit(z.B.: eine Methode) die dieses hässliche ".0" bei ganzzahligen Ergebnissen wegschneidet? -
Hallo,
ich habe die Aufgabe in Java eine Funktion zu erstellen, welche einen String in einem String-Array findet und die Stelle anzeigt.
Mein Problem ist, dass das nur funktioniert, wenn ich mit einem "break" arbeite.
Da mein Lehrer immer sagt, dass "breaks" eine unschöne Lösung sind, versuchte ich die Bedingung in einer Zählschleife so zu formulieren, dass es ohne ein "break" funktioniert. Das funktioniert aber leider nicht.Ich bekomme beim Öffnen der Datei die Fehlermeldung:
"index out of bounds exception"Hier der Konstruktor:
Codepublic Aufgabe(){ String[][] textListe = { {"Diese", "Aufgabe", "ist", "wirklich", "sehr", "kompliziert"}, {"Aber", "für", "mich", "kein", "Problem"} }; String text = "Aufgabe"; System.out.println(index(textListe, text)); }
Das ist die funktionierende Funktion(mit break):Code
Alles anzeigenString index (String[][] feld, String suchText){ int a, b, h1, h2; String ausgabe = ""; for(a = 0; a<=feld.length-1; a++){ for(b = 0; b<=feld[a].length-1; b++){ if(feld[a][b].equals(suchText)){ h1 = 1+a; h2 = 1+b; ausgabe = "Wort "+h2+" in Satz "+h1; break; } } } return ausgabe; }
Und das ist meine "Problemfunktion"(ohne break):Code
Alles anzeigenString index (String[][] feld, String suchText){ String ausgabe = ""; int a, h1, h2; int b = 0; for(a = 0; a<=feld.length-1 || suchText.equals(feld[a][b]); a++){ for(b = 0; suchText.equals(feld[a][b]) || b<=feld[a].length-1; b++){ h1 = 1+a; h2 = 1+b; ausgabe = "Wort "+h2+" in Satz "+h1; } } return ausgabe; }
Ich hoffe ihr könnt mir erklären bzw. einen Hinweis geben, warum die letztere Funktion nicht so funktioniert wie sie soll, d.h. warum sie nicht das selbe zurückgibt, wie die funktionierende.
Danke im vorraus! -
vielen dank fuer den link, jetzt hab ichs hinbekommen
-
hallo ich möchte ein programm schreiben, welches ein Wort aus einem vorgegebenen String-Array aussucht und ausgibt.
bisher habe ich nur das:
Java
Alles anzeigenimport java.io.*; public class Wort { public Wort(){ System.out.print("\nEin Zufallswort\n_____________\n\n"); verarbeite(); } void verarbeite(){ String[] dasWort = {"eisenbahn", "tastatur", "weltkarte", "sanierung", "Lautsprecher", "mahlzeit", "gutschrift", "motorrad", "strassenbahn", "balken", "aal", "wurst", "hemd"}; System.out.print(/*das Zufallswort*/); } public String einlesenText(String meldung){ String benutzerEingabe = ""; System.out.print(meldung+" "); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try { benutzerEingabe = in.readLine(); } catch(Exception e){System.out.println(e);} return benutzerEingabe; } public static void main(String args[]){ Wort f = new Wort(); } }
das ist zugegeben nur wenig, aber ich komm nich weiter.
hoffe ihr könnt mir weiterhelfen und wenn ihr noch ne info braucht einfach fragen, danke! -
danke sashs du hast es sehr einleuchtend erklaert, nur warum gibts dann ueberhaupt die möglichkeit nur ein & zu schreiben, so dass dann in jedem Fall beide Bedingungen ueberprueft werden?
-
Danke fuer die Antworten!
Das mit dem "&" lass ich mir am besten noch mal von meinem Lehrer etwas genauer erklaeren.
...Will jetzt auch mit c++ anfangen, allerdings privat durch tutorials&etc. -
Danke erstmal!
Wenn ich die 0 eintippe bevor ich 5 andere zahlen eingetippt habe, soll diese auch angezeigt werden, also das ist schon richtig.
Mein Problem hast du trotzdem gelöst, danke.
Nur verstehe ich nicht warum ich in der Bedingung zwei "&&" verwenden muss. -
Hallo ich sollte fuer die Schule ein Javaprogramm schreiben, welches max.5 Zahlen einliest und dann die größte und kleinste eingegebene Zahl ausgibt, sowie zahlenfolge ausgibt. Sobald eine "0" eingegeben wird, soll das Programm ebenfalls stoppen.
Das funktioniert auch alles nur bei der Ausgabe steht am Anfang der eingegeben Zahlenfolge "null". Warum erscheint das da bzw. was bedeuted es?Hier ist der Quellcode:
Java
Alles anzeigenimport java.io.*; import java.lang.*; public class Zahlenstatistik{ int zahl, i, v1, v2, v3, v4, v5, dMin, dMax, var; String zahlT, varT, zReihe; public Zahlenstatistik(){ ausgebenText("\nZahlenstatistik: \n____________________\n\n"); verarbeite(); } void verarbeite(){ i=1; do{ zahlT=einlesenText("Zahl eingeben: "); zahl=text2int(zahlT); switch(i){ case 1: v1=zahl; break; case 2: v2=zahl; break; case 3: v3=zahl; break; case 4: v4=zahl; break; case 5: v5=zahl; break; default: ausgebenText("Nur 5 Eingaben moeglich!\n"); } i=i+1; } while(zahl!=0&i<=6); dMin=v1; dMax=v1; for(i=1; i<=5; i=i+1){ switch(i){ case 1: var=v1; break; case 2: var=v2; break; case 3: var=v3; break; case 4: var=v4; break; case 5: var=v5; break; default: } varT=int2text(var); zReihe=zReihe+varT+"\t"; if(var<dMin) dMin=var; if(var>dMax) dMax=var; } ausgebenText("\nHoechste Zahl:\t\t"+dMax+"\nNiedrigste Zahl:\t"+dMin+"\nZahlenreihe:\t\t"+zReihe+"\n\n\n"); } public void ausgebenText(String ausgabeText){ System.out.print(ausgabeText); } public String einlesenText(String meldung){ String benutzerEingabe = ""; System.out.print(meldung+" "); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try { benutzerEingabe = in.readLine(); } catch(Exception e){System.out.println(e);} return benutzerEingabe; } double text2double(String pText){ return Double.valueOf(pText).doubleValue(); } int text2int(String pText){ return Integer.valueOf(pText).intValue(); } String double2text(double pZahl){ return String.valueOf(pZahl); } String int2text(int pZahl){ return String.valueOf(pZahl); } public static void main(String args[]){ Zahlenstatistik f = new Zahlenstatistik(); } }
Danke im voraus!
-
danke jetz funktionierts:)
-
das ist mein vollständige code:
Java
Alles anzeigenimport java.awt.*; import java.awt.event.*; public class HIR extends Frame{ // Oberflächenkomponenten vereinbaren Button b_Verarbeitung; TextField t_Eingabe, t_Eingabe2, t_Ausgabe; Label l_1, l_2, l_3; // Variablen vereinbaren ... String derZustand, dasGewicht, dasRisikoT; double dasRisiko; public HIR(){ super("Eingabe - Verarbeitung - Ausgabe"); this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ dispose(); System.exit(0);} }); // Oberfläche erstellen ... setLayout(null); l_1 = new Label("Stress?"); l_1.setBounds(10,50,130,20); add(l_1); b_Verarbeitung = new Button("Verarbeitung"); b_Verarbeitung.setBounds(180,155,90,30); add(b_Verarbeitung); l_2 = new Label("Gewicht->normal?"); l_2.setBounds(10,90,150,20); add(l_2); l_3 = new Label("Risiko in %"); l_3.setBounds(10,130,90,20); add(l_3); t_Eingabe = new TextField(""); t_Eingabe.setBounds(160,50,150,20); add(t_Eingabe); t_Eingabe2 = new TextField(""); t_Eingabe2.setBounds(160,90,150,20); add(t_Eingabe2); t_Ausgabe = new TextField(""); t_Ausgabe.setBounds(160,130,150,20); add(t_Ausgabe); } void verarbeite(){ derZustand=holeEingabe(); dasGewicht=holeEingabe2(); if(derZustand=="stress") if(dasGewicht=="normal") dasRisiko=15; else dasRisiko=62; else if(dasGewicht=="normal") dasRisiko=5; else dasRisiko=18; dasRisikoT=double2text(dasRisiko); schreibeAusgabe(dasRisikoT); } public boolean action(Event e, Object o){ if (e.target == b_Verarbeitung) verarbeite(); return true; } public static void main(String args[]){ HIR eva = new HIR(); eva.setBounds(50,50,350,200); eva.show(); } String holeEingabe(){ return t_Eingabe.getText(); } String holeEingabe2(){ return t_Eingabe2.getText(); } void schreibeAusgabe(String pText){ t_Ausgabe.setText(pText); } double text2double(String pText){ return Double.valueOf(pText).doubleValue(); } String double2text(double pZahl){ return String.valueOf(pZahl); }
und das ist der vorgegebene code:
Java
Alles anzeigenimport java.awt.*; import java.awt.event.*; public class EVA extends Frame{ // Oberflächenkomponenten vereinbaren Button b_Verarbeitung; TextField t_Eingabe, t_Ausgabe; Label l_1, l_3; // Variablen vereinbaren ... String dieEingabeT, dieAusgabeT; double dieEingabe, dieAusgabe; public EVA(){ super("Eingabe - Verarbeitung - Ausgabe"); this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ dispose(); System.exit(0);} }); // Oberfläche erstellen ... setLayout(null); l_1 = new Label("Eingabe:"); l_1.setBounds(10,40,130,20); add(l_1); b_Verarbeitung = new Button("Verarbeitung"); b_Verarbeitung.setBounds(180,85,100,30); add(b_Verarbeitung); l_3 = new Label("Ausgabe:"); l_3.setBounds(10,130,90,20); add(l_3); t_Eingabe = new TextField(""); t_Eingabe.setBounds(160,50,150,20); add(t_Eingabe); t_Ausgabe = new TextField(""); t_Ausgabe.setBounds(160,130,150,20); add(t_Ausgabe); } void verarbeite(){ dieEingabeT=holeEingabe(); dieEingabe=text2double(dieEingabeT); dieAusgabe=dieEingabe; dieAusgabeT=double2text(dieAusgabe); schreibeAusgabe(dieAusgabeT); } public boolean action(Event e, Object o){ if (e.target == b_Verarbeitung) verarbeite(); return true; } public static void main(String args[]){ EVA eva = new EVA(); eva.setBounds(50,50,450,200); eva.show(); } String holeEingabe(){ return t_Eingabe.getText(); } void schreibeAusgabe(String pText){ t_Ausgabe.setText(pText); } double text2double(String pText){ return Double.valueOf(pText).doubleValue(); } String double2text(double pZahl){ return String.valueOf(pZahl); } }
die aufgabenstellung hab ich schon angegeben!
PROBLEM: wenn ich das Programm ausführe, die Textfelder ausfülle und auf den Button "Verarbeitung" drücke, erscheint in jedem Fall 18%(siehe Tabelle).
Meine Frage ist wo mein Fehler ist, denn ich kann ihn definitiv nicht finden. -
Dieses Java-Programm soll 3 Textfelder haben und einen Button. In das erste Textfeld gibt man nun entweder "stress" ein oder i-etwas anderes. In das zweite Textfeld gibt man entweder "normal" oder i-etwas anderes. Drückt man nun auf den Button soll in Textfeld 3 angezeigt werden, wie hoch das Herzinfaktrisiko ist.
Der gepostete Code stammt von mir!
Soll ich den vorgegebenen Code auch posten?
Was meinst du mit "Code-Tags"? (bin blutiger Anfänger im Programmieren)Danke für die Hilfe!!!
-
also die aufgabe besteht aus einer tabelle die folgendes meint:
Stress kein Stress
übergewicht 62% 18%
normalgewicht 15% 5%
dabei gehts um das herzinfaktrisiko.
jetzt soll ich eine codevorlage so umschreiben, dass man diese informationen erhält.der code lautet(abgekürzt):
derZustand=holeEingabe();
dasGewicht=holeEingabe2();
if(derZustand=="stress")
if(dasGewicht=="normal")
dasRisiko=15;
else
dasRisiko=62;
else
if(dasGewicht=="normal")
dasRisiko=5;
else
dasRisiko=18;
dasRisikoT=double2text(dasRisiko);
schreibeAusgabe(dasRisikoT);holeEingabe(), double2text(...) und schreibeAusgabe(...) sind vorgegebene Unterprogramme.
Das Problem ist ,dass mir bei der auswertung immer 18% angezeigt wird.Ich kann gegebenenfalls auch den ganzen code bzw. den ganzen vorgegeben code posten.