Durchschnitt ist nicht korrekt; Eingaben löschen

Status
Nicht offen für weitere Antworten.

Antoras

Top Contributor
Hallo,

ich hab gerade nochmal ein Problem, genauer zwei:

Ich will den Durchschnitt aller eingegebenen Zahlen in einer bestimmten Anzahl an Textfeldern ermitteln; Nullen werden dabei nicht berücksichtigt:
Code:
private void jButton1ActionPerformed(ActionEvent evt) {
		for (int i = 1; i < jTextField.length; i++) {
			temp = Integer.parseInt(jTextField[i].getText());				//Speichervariable
			summe = summe + temp;												//Summenberechnung
			if (temp == 0) {																//Häufigkeiten ermitteln
				h0++;
			} else if (temp == 1) {
				h1++;
			} else if (temp == 2) {
				h2++;
			} else if (temp == 3) {
				h3++;
			} else if (temp == 4) {
				h4++;
			} else if (temp == 5) {
				h5++;
			} else {
				h6++;
			}
		}		
	}
	
	private void jButton2ActionPerformed(ActionEvent evt) {
		temp2 = jTextField.length - h0;										//Speichervariable 2
		average = summe / temp2;												//Durchschnitt
		jTextField21.setText(String.valueOf(average));
		jTextField22.setText(String.valueOf(h0));
		jTextField23.setText(String.valueOf(h1));
		jTextField24.setText(String.valueOf(h2));
		jTextField25.setText(String.valueOf(h3));
		jTextField26.setText(String.valueOf(h4));
		jTextField27.setText(String.valueOf(h5));
		jTextField28.setText(String.valueOf(h6));
	}
Wenn ich z.b fünf zweien eingebe kommt als Durchschnitt 1 raus obwohl ja eigentlich wieder eine 2 rauskommen sollte.

Zweites Problem:
Wenn ich andere Zahlen eingebe werden diese zu den bereits bestehenden Ergebnissen hinzuaddiert. Gibt es hier eine Möglichkeit mit der man alle bereits eingelesenen Werte beim betätigen der Buttons wieder löschen kann?
 

Antoras

Top Contributor
Bitteschön:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class asdf extends JApplet {
	int summe, 				
		temp,					
		temp2,
		h0;		
	float average;
	
	private JTextField jTextField[] = new JTextField[10];
	private JTextField jTextField11;
	private JButton jButton1;
	
	public asdf() {
		GUI();
	}	
	
	private void GUI() {
		setLayout(new FlowLayout());
		for (int i = 0; i < jTextField.length; i++) {
			   jTextField[i] = new JTextField(6); 
			   add(jTextField[i]);
			   jTextField[i].setText("0");
		}
		{
			jButton1 = new JButton();
			add(jButton1);
			jButton1.setText("Einlesen");
			jButton1.setBounds(7, 144, 98, 22);
			jButton1.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					jButton1ActionPerformed(evt);
				}
			});
		}
		{
			jTextField11 = new JTextField(6);
			add(jTextField11);
		}
	}
	
	private void jButton1ActionPerformed(ActionEvent evt) {
		for (int i = 1; i < jTextField.length; i++) {
			temp = Integer.parseInt(jTextField[i].getText());				//Speichervariable
			summe = summe + temp;												//Summenberechnung
			if (temp == 0) {																//Häufigkeiten ermitteln
				h0++;
			}
		}			
		temp2 = jTextField.length - h0;											//Speichervariable 2
		average = summe / temp2;													//Durchschnitt
		jTextField11.setText(String.valueOf(average));						
	}
}
 

Frank_H

Mitglied
also lauffähig is n bissel was anderes....

dein proble war, dass du die variablen
1) nicht vorinitialisiert hattest
2) nicht zurücksetzt, wenn du einen erneuten durchlauf machst, somit steigt h0 und summe irgendwann in den himmel...

hier die buttonActon-methode nochmal...

Code:
   private void jButton1ActionPerformed(ActionEvent evt) {
	   temp = 0;
	   summe = 0;
	   h0 = 0;
      for (int i = 0; i < jTextField.length; i++) {
         temp = Integer.parseInt(jTextField[i].getText()); //Speichervariable
         if (temp > 0) {                                                //Häufigkeiten ermitteln
        	 summe += temp;                                    //Summenberechnung
             h0++;
         }
      }         
      average = summe / h0;     //Durchschnitt
      jTextField11.setText(String.valueOf(average));                  
   }
 

Antoras

Top Contributor
also lauffähig is n bissel was anderes....
Bei mir läuft das ohne Probleme und ohne Fehlermeldungen - abgesehen von den beiden genannten. Aber das war ja klar, dass die hier wieder vorhanden sind.

1) nicht vorinitialisiert hattest
Das ist unnötig. Die sind standardmäßig doch sowieso immer null, oder?

2) nicht zurücksetzt, wenn du einen erneuten durchlauf machst, somit steigt h0 und summe irgendwann in den himmel...
Ich weiß, dass ich es nicht zurücksetze. Deswegen hab ich ja gefragt. Ich weiß nämlich nicht wie ich das machen soll. Mit setText("") geht es irgendwie nicht...

hier die buttonActon-methode nochmal...
So wie du es gemacht hast ist es deutlich einfacher und es funktioniert. Danke! Ich muss es immer umständlich machen.

Trotzdem verstehe ich nicht was an meiner Methode falsch war. h0 wir immer hochgezählt wenn eine 0 eingegeben wird. Gleichzeitig werden die eingegebenen Zahlen miteinander addiert. Danach wird von der Anzahl der Textfelder h0 subtrahiert. Der Durchschnitt berechnet sich dann aus der Summe der Zahlen dividiert durch den Rest. Erkennt da jemand den Denkfehler?
 

Final_Striker

Top Contributor
das programm funktioniert doch jetzt, oder welche fehler sind jetzt noch drin???

du müsstest noch prüfen bevor du teilst ob h0 == 0 ist. teilen durch 0 ist nicht so gut. :noe:

edit:

außerdem ist es quatsch die avarage variable vom typ float zu machen. denn wenn du integer durch integer teilst bekommst du auch ein integer zurück. :wink:
 

Antoras

Top Contributor
du müsstest noch prüfen bevor du teilst ob h0 == 0 ist. teilen durch 0 ist nicht so gut. noe.gif
Stimmt, leuchtet mir ein. Hab ich eingebaut.
außerdem ist es quatsch die avarage variable vom typ float zu machen. denn wenn du integer durch integer teilst bekommst du auch ein integer zurück. icon_wink.gif
Hab ich nicht gewusst. Aber jetzt weiß ich es. Schon wieder was gelernt. Das hat sich dann auch erledigt.


Das Zurücksetzten der Textfelder hat mir Probleme bereitet, ich hab jetzt aber eine Lösung gefunden. Jetzt werden mit "setText("")" einfach die Textfelder gelöscht und mit "variable = 0" setz ich die betroffenen Variablen wieder auf den Anfangswert zurück. Geht zwar bestimmt professioneller, aber das erfüllt ja seinen Zweck:

Code:
private void jButton1ActionPerformed(ActionEvent evt) {
		for (int i = 1; i < jTextField.length; i++) {
			temp = Integer.parseInt(jTextField[i].getText());		
			if (temp > 0) {
				summe += temp;
				haeufigkeit++;
			}
			if (temp == 0) h0++;				
			else if (temp == 1) h1++;
			else if (temp == 2) h2++;
			else if (temp == 3) h3++;
			else if (temp == 4) h4++;
			else if (temp == 5) h5++;
			else h6++;			
		}
		jTextField21.setText("");
		jTextField22.setText("");
		jTextField23.setText("");
		jTextField24.setText("");
		jTextField25.setText("");
		jTextField26.setText("");
		jTextField27.setText("");
		jTextField28.setText("");
	}
	
	private void jButton2ActionPerformed(ActionEvent evt) {
		if (haeufigkeit != 0) {
			average = summe / haeufigkeit;						
			jTextField21.setText(String.valueOf(average));
		} else jTextField21.setText("Kein Schüler hat eine Arbeit geschrieben");
					
		jTextField22.setText(String.valueOf(h0));
		jTextField23.setText(String.valueOf(h1));
		jTextField24.setText(String.valueOf(h2));
		jTextField25.setText(String.valueOf(h3));
		jTextField26.setText(String.valueOf(h4));
		jTextField27.setText(String.valueOf(h5));
		jTextField28.setText(String.valueOf(h6));
		temp = 0;
		haeufigkeit = 0;
		summe = 0;
		average = 0;
		h0 = 0;
		h1 = 0;
		h2 = 0;
		h3 = 0;
		h4 = 0;
		h5 = 0;
		h6 = 0;
	}
Nochmal Danke an alle, die mir geholfen haben.
 
G

Guest

Gast
Final_Striker hat gesagt.:
außerdem ist es quatsch die avarage variable vom typ float zu machen. denn wenn du integer durch integer teilst bekommst du auch ein integer zurück. :wink:

das stimmt nicht. z.b.

9:5 ist nicht = 1

sondern 1,8 wenn du integer benutzt, schneidet er alles nach dem Komma ab! Dann hast du Rundungsfehler.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
L Max, min, Summe und Durchschnitt berechnen Java Basics - Anfänger-Themen 4
B Array Durchschnitt Java Basics - Anfänger-Themen 5
F Abstand zum Durchschnitt von 5 Zahlen berechnen... Java Basics - Anfänger-Themen 16
S Durchschnitt berechnen aus zwei Textfeldern Java Basics - Anfänger-Themen 21
S paarweise Durchschnitt Java Basics - Anfänger-Themen 7
K Compiler-Fehler Durchschnitt einer Spalte in einem 2D-Array Java Basics - Anfänger-Themen 1
J Durchschnitt jeder Zeile und und Spalte in einem 2D Arrays berechnen Java Basics - Anfänger-Themen 6
L Durchschnitt in der Schleife berechnen Java Basics - Anfänger-Themen 11
G Summen addieren und Durchschnitt bilden Java Basics - Anfänger-Themen 4
B Quicksort mit Durchschnitt als Pivot Java Basics - Anfänger-Themen 1
K Erste Schritte Arrays - Zahlenabfrage und Durchschnitt Java Basics - Anfänger-Themen 1
P Durchschnitt berechnen Java Basics - Anfänger-Themen 15
A Durchschnitt zweier Mengen berechnen Java Basics - Anfänger-Themen 3
M Java Array - Durchschnitt Java Basics - Anfänger-Themen 7
J Double[] Feld und Durchschnitt Java Basics - Anfänger-Themen 2
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
S Wie debugge ich dies am besten: SingleThreadExecutor führt Task nicht aus..? Java Basics - Anfänger-Themen 29
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K TicTacToe belegtes feld nicht neu besetzbar Java Basics - Anfänger-Themen 1
K TicTacToe belegtes Feld nicht neu besetzbar Java Basics - Anfänger-Themen 3
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
missy72 Erste Schritte (nicht) Deterministischer endlicher Automat Java Basics - Anfänger-Themen 9
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
P Netbeans installation geht nicht Java Basics - Anfänger-Themen 26
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
T HashMap Lsite gibt die sachen nicht aus wie gewollt. Java Basics - Anfänger-Themen 3
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
T scanner nicht erkannt Java Basics - Anfänger-Themen 3
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
Darkherobrine9 Import klappt nicht Java Basics - Anfänger-Themen 7
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
C Kann mir jemand sagen warum ich nicht mal rechnen kann ? Java Basics - Anfänger-Themen 32
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
heinrich172 Methoden Trotz gleichem Element stimmt Vergleich nicht? Java Basics - Anfänger-Themen 7
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
J Meine Mails gehen nicht raus Java Basics - Anfänger-Themen 8
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
S Ist JDK jetzt free oder nicht? Java Basics - Anfänger-Themen 5
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
M Methoden Methode 'wiederhole' nicht gefunden (Uebersetzungsfehler) Java Basics - Anfänger-Themen 1
D Eclipse will nicht auslesen Java Basics - Anfänger-Themen 6
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
TeacherMrSSimon Schachspiel, Werte in Figur eintragen klappt nicht Java Basics - Anfänger-Themen 23
B von Java/Eclipse verwendete Datei existiert gar nicht? Java Basics - Anfänger-Themen 6
ms_cikar Bin to Float convertieren funktioniert nicht Java Basics - Anfänger-Themen 24
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
M JButton setBackground() färbt nicht den ganzen Knopf Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben