programmier beispiel

Status
Nicht offen für weitere Antworten.

agosinga

Mitglied
irgendwie fehlt mir der überblick, mit was ich konkret beginnen soll.....

eine class Histogramm zur graphischen Darstellung von Häfigkeitsverteilungen diskreter Werte wie z.B. von Prüfungsergebnissen in der Form

Wert 1: ****
Wert 2: *************
Wert 3: ***************
Wert 3: ************
Wert 5: *****
Wert 6: *

wobei jeder Stern einen Anteil von 2 Prozent repräsentiert.
Histogramme müssen Methoden public void enter(int value) zur Eingabe von Werten und public void display() für die Ausgabe anbieten.
Das Histogramm soll durch den Konstruktor public Histogramm(int smallestValue, int biggestValue, double weightOfStar) an den konkreten Anwendungsfall (z.B. Notenskala von 1 bis 5) angepasst werden können.

inkl. Testprogramm
 

lhein

Top Contributor
Am besten beginnst Du erstmal, dir Gedanken zu machen und einen ersten Entwurf zu erstellen ;)
Der Klassenname ist bekannt, die Methoden display und enter auch...sogar der Konstruktor ist definiert...worauf wartest Du?

lr
 

lhein

Top Contributor
Ich gehe davon aus, daß ihr das im U. behandelt habt, sonst würde es m.E. nicht sehr viel Sinn machen, eine solche Aufgabe zu stellen.
 

MiMij

Bekanntes Mitglied
Wir machen hier aber auch keine Hausaufgaben ^^
Und wenn ihr so ne Aufgabe bekommt, muesst ihr ja schon was in der Richtung gemacht haben. Nen Ansatz hast du von LR bekommen.
 

ARadauer

Top Contributor
Wieso machen wir keine Hausaufgaben? Macht doch spaß :D und es muss nicht jeder Programmier werden. Sprech auch nciht französisch, obwohl ich es gelernt habe...

mal ein Testprogramm:

Code:
public class TestHistogramm {
	
	public static void main(String[] args) {
		Histogramm  h = new Histogramm (1,5,10d);
		
		h.enter(5);
		h.enter(2);
		h.enter(3);
		h.enter(5);
		h.enter(1);		
		h.display();
	}

}

so ungefähr


Code:
public class Histogramm  {
	
	private int[] values;
	private int smallestValue;
	private int biggestValue;
	private double weightOfStar;
	
	public Histogramm (int smallestValue, int biggestValue, double weightOfStar){
		this.smallestValue = smallestValue;
		this.biggestValue = biggestValue;
		this.weightOfStar = weightOfStar;
		
		//array initialisieren zb values = new int[5];
		//geht aber nicht, da wir die größe errechnen müssen
	}
	
	public void enter(int value){
		//zb values[value]++;
		//geht aber natürlich nicht, da ja wenn die werte von 5 bis 10 gehen und es kommt 5,
		//dieser an stelle 0 liegen muss und nicht 5, also umrechnen
				
	}
	
	public void display(){
		//gesamtanzahl aufsummieren
		//für jeden wert
			//prozentueller anteil der anzahl ausrechen / weightOfStar 
			//so oft machst du jetzt * hin		
	}

}

wo ich kommentare gemacht habe, musst du noch einiges programmieren
 

agosinga

Mitglied
ok super! hier kann mir nicht geholfen werden. hab die übung aus einem buch und probier das privat.
...... dann halt eben nicht.
 

ARadauer

Top Contributor
naja wenn dus nicht mal versuchts!!!

wie wird ma wohl beginnnen? mit der histogramm klasse oder mit dem testprogramm.. wurscht. mal die methoden rümpfe schreiben und überlegen was wir für variablen brauchen...
 
K

Körby

Gast
Du solltest als erstes mal die bekannten Angaben für ein Grundgerüst des Programmes nutzen, dies habe ich mal auf die schnelle getan.
Ich habe das was mir offensichtlich scheint, das es getan werden muss im Code als Kommentar geschrieben. Wie du es genau machst und ob dies alles ist, musst du selbst wissen.

Code:
public class Histogramm
{
    public Histogramm(int smallestValue, int biggestValue, double weightOfStar)
    {
        //Hier musst du die dem Konstruktor mitgelieferten Werte speichern
    }

    public void enter(int value)
    {
        //Hier musst du den Übergabewert speichern
    }

    public void display()
    {
        //Hier musst du die Ausgabe machen
    }
}
 

MiMij

Bekanntes Mitglied
Ja, und das haette er ja einfach ma machen koenne, so wie es LR schon geschrieben hatte! Was solln ich da noch schreiben? Ich schriebe keine Komplettloesungen, da diese dem User net wirklich helfen etwas zu lernen.
 

lhein

Top Contributor
MiMij hat gesagt.:
Ja, und das haette er ja einfach ma machen koenne, so wie es LR schon geschrieben hatte! Was solln ich da noch schreiben? Ich schriebe keine Komplettloesungen, da diese dem User net wirklich helfen etwas zu lernen.

korrekt. Die Eigeninitiative hat damit aufgehört, die Aufgabenstellung hier reinzustellen ;)
 

ARadauer

Top Contributor
aber ich programmier halt so gerne!!!!!!!
ich halts nicht aus!!! ich hab die lösung geschrieben, der drang sie zu posten is so groß!!!! hilfe!!!!!! ich bin programier süchtig!!!!!!
 

lhein

Top Contributor
:lol:
Das kenn ich...ist mir auch schon mal passiert. Der Arzt meinte, es wäre nicht therapierbar ;) :meld: :autsch:
 

Norg

Mitglied
Ich Sitze genau beim selben Problem, habe Dank euch schon ein bisschen was hinbekommen.
Wollte euch bitten ob ihr euch das mal anschauen könnt und mir sagen ob das völliger Schwachsinn ist was ich gemacht habe oder ob das noch was werden könnte:


Code:
public class Histogramm{



private int[] values;
private int smallestValue;
private int biggestValue;
private double weightOfStar;





public Histogramm (int smallestValue, int biggestValue, double weightOfStar){
      this.smallestValue = smallestValue;
      this.biggestValue = biggestValue;
      this.weightOfStar = weightOfStar; 
int x=biggestvalue-smallestvalue;      //Zum ausrechnen der Länge des Arrays
values=new values[x];
}




public void enter(int value);{


values[value-smallesvalue]++;   
 //z.b. Hab den Bereich 2-4 gegeben, im Array muss dass dann 0-2 sein. 
//Wenn jetzt auf Position 3 was geschrieben werden soll muss das auf 
//Position 1 des Arrays passieren, also 3-2=1  korrekt???


}




public void display();{

for(int i=0 i<biggestvalue-smallestvalue;i++) // Schleife zum Durchlaufen des arrays
{int y=y+values[i]}; //aufaddieren geht das überhaupt so??

int ProzentAnteil=y*(100/weightofstars);

Ausgabe ???



}

}
 

0x7F800000

Top Contributor
Was ein zufall, dann sind es schon mal zwei leute die rein privat am freitag abend mit dem selben buch sitzen und an derselben aufgabe rumbasteln^^ :D

@Norg

nun ja, das gerüst schaut halbwegs vernünftig aus, nur hast du imho den sinn des histogramms nicht wirklich umgesetzt, du konstruierstt nämlich auf deinen gesamten intervall von smallestValue bis biggestValue praktisch genau (biggestNumber-smallestNumber) balken, was nicht unbedingt viel sinn macht:

Stell dir vor, dein smallestNumer=0 biggestNumber=4*10^9 vier milliarden also, und du hast da insgesamt 10000 werte. Dann wirst du höchstwahrscheinlich niemals einen balken bekommen, der mehr als einen sternchen hat, stattdessen hast du nur dünn verstreute einzelne sternchen, was ja nicht nach einem histogramm aussieht.

Du solltest stattdessen dein intervall in zB sqrt(N) teilintervalle unterteilen (hab ma irgendwo gelesen dass es dann ganz gut hinkommt) wobei N die anzahl der "messwerte" (oder was auch immer du da auswertest) ist. Dann ist jeder Balken nicht genau 1 sondern
Code:
(biggest-smallest)/sqrt(N)
einheiten breit, dann kriegst du auch was vernünftiges hin....
N würde ich auch im konstruktor übergeben.

dann hast du ein array, meinetwegen bar[sqrt(N)]...

Dann schreibst du dir am besten eine hilfsfunktion, die einen messwert einem balken zuordnet (erhält also einen Messwert aus dem intervall [smallest, biggest] und ordnet dem einen balken aus dem intervall [0, sqrt(N)] zu )
nennen wir diese zB
Code:
private int assignBar(int m){
    return (int)(m/((biggest-smallest)/sqrt(N)));
}


dann gehst du in display(int[] Messwerte) in einer schleife alle Messwerte m durch, ordnest jedem einen balken zu, und erhöhst die höhe des balken um 1, wie in deiner "enter"-methode etwa...
Code:
for(int m=0; m<N; m++){
    bar[assignBar(Messwerte[m])]++;
}

dann hast du in deinem bar[]-array praktisch das histogramm schon drin, skalierst es halt irgendwie um (was dieses sternchengewicht ist weiss ich nicht) und zeichnest es, zB mit hilfsfunktion:
Code:
//insgesamt height sternchen inner reihe zeichnen
private void drawBar(int height){
    for(int i=0; i<height; i++){
        System.out.print("*");
    }
}


Dann halt nochmal durch das bar[]-array mit der for-schleife laufen, jeden balken zeichnen, zeilenumbrüche dazwischn ned vergessen...
 

0x7F800000

Top Contributor
Norg, korrigier bitte die länge des kommentars in deinem code, da werden nämlcih keine automatischen umbrüche eingefügt, das fenster ist breiter als drei bildschirme^^ schreibs bitte mit /* */ ist ja sonst unmöglich hier was zu lesen...
 

Norg

Mitglied
Danke für die umfangreiche Antwort.
Es reicht aber aus wenn die Spaltenbreite 1 beträgt, da die Werte per Hand eingegeben werden und diese Ganzzahlig sind. Das Programm ist generell eher für kleinere Werte gedacht.

Es funktioniert bei mir soweit schon bis auf die Ausgabe:
z.b. Wenn man eingibt dass drei Schüler ne 1 haben und 3 Schüler ne 2 dann sollte die Ausgabe so aussehen:
***
***

Bei mir stehen aber 6 Sterne in einer Zeile

Mein Code:

Code:
public void display(){

for(int j=0; j<biggestValue-smallestValue; j++){
y=y+values[j]; //aufsummieren



}

values1=new double[biggestValue-smallestValue]; 

for(int j=0; j<biggestValue-smallestValue; j++){
values1[j]=values[j]*weightOfStar;  //weightofstars berücksichtigt


}
int j=0;
char[][]Ausgabe=new char[y][values[j]]; // y deswegen damit das Array sicher groß genug ist
for(; j<biggestValue-smallestValue; j++){
for(int i=0; i<values1[j]; i++){
Ausgabe[i][j]='*';

 

   System.out.print(Ausgabe[i][j]); 
      
     



}
  
}
   
}

Ich denke dass man irgendwie programmieren müsste dass wenn sich j um 1 erhöht die Ausgabe in einer neuen zeile erfolgt. Hab aber keine Idee wie dies geht.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Algorithmen und Datenstrukturen Programmier Aufgabe Java Basics - Anfänger-Themen 10
D Richtig Vorbereiten auf eine Programmier Klausur Studium. Java Basics - Anfänger-Themen 7
B Programmier - Aufgabe Hilfe :( Java Basics - Anfänger-Themen 0
B Programmier - Aufgabe ohne Ahnung Hilfe :( Java Basics - Anfänger-Themen 5
L Suche Programmier-Projekt mit Anleitung Java Basics - Anfänger-Themen 3
J OOP Frage zu Programmier-Entscheidungen Java Basics - Anfänger-Themen 16
hdi Programmier-Stil : Speicher vs. Quellcode Java Basics - Anfänger-Themen 67
H Programmier Frage Java Basics - Anfänger-Themen 7
G Programmier vorschläge Java Basics - Anfänger-Themen 23
O H.E.L.P. (wie programmier ich weiter?) Java Basics - Anfänger-Themen 6
T Beispiel Polymorphie, Tier hund = new Hund(); Java Basics - Anfänger-Themen 3
J Fehlerbehandlung an einem Beispiel Java Basics - Anfänger-Themen 8
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
Blndner Auto Beispiel Java Basics - Anfänger-Themen 4
melisax Beispiel Java umprogrammieren Java Basics - Anfänger-Themen 23
dieter000 Frage zu einem Beispiel... Java Basics - Anfänger-Themen 5
dieter000 Hilfe bei dem Beispiel, wie gehe ich sowas am besten an? Java Basics - Anfänger-Themen 32
marcooooo Kann mir jemand das Beispiel kurz erklären so ungefähr:/ Java Basics - Anfänger-Themen 7
marcooooo Frage zu bestimmten Beispiel Java Basics - Anfänger-Themen 31
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
C Beispiel-Code mit Pair wird nicht compiliert. Java Basics - Anfänger-Themen 8
B Webhooks verstehen - Beispiel? Java Basics - Anfänger-Themen 25
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
J For-Schleife (Beispiel) Java Basics - Anfänger-Themen 6
G Rekursion Beispiel Java Basics - Anfänger-Themen 3
H OOP, wie gehts richtig? (Beispiel von meinem Prof) Java Basics - Anfänger-Themen 6
J Suche simples Beispiel für die EOFException Java Basics - Anfänger-Themen 1
O Wert in einer URL hinzufügen (in meinem Beispiel Google) Java Basics - Anfänger-Themen 7
F jscience Beispiel Java Basics - Anfänger-Themen 0
D Klassen Gesucht: Einfache Beispiel-Klasse für einen Datentyp Java Basics - Anfänger-Themen 7
B Erste Schritte Way of life ohne import - Habe Beispiel, macht Unfug Java Basics - Anfänger-Themen 21
J Kompilieren von HelloWorld Beispiel schlägt fehl Java Basics - Anfänger-Themen 7
Z Schleifen Beispiel: Fakultät Java Basics - Anfänger-Themen 26
M Frage zum generellen Verständiss von OO an einem Beispiel Java Basics - Anfänger-Themen 4
L GridLayout, Beispiel? Java Basics - Anfänger-Themen 2
M Wozu Upcasting? Am Beispiel List = ArrayList Java Basics - Anfänger-Themen 2
L Beispiel Projekte Java Basics - Anfänger-Themen 3
B Erste Schritte HILFE Brauche ein Beispiel für korrekte Syntax mit Semantikfehlern Java Basics - Anfänger-Themen 6
V Objekte/Klassen erstellen - Erklärung anhand Beispiel Java Basics - Anfänger-Themen 4
J Interface Frage zu Interfces am Beispiel Observer Pattern Java Basics - Anfänger-Themen 8
T Erste Schritte für was steht das "this" in dem Beispiel... Java Basics - Anfänger-Themen 2
B Grundlagen von Methoden an folgendem Beispiel Java Basics - Anfänger-Themen 52
E Polymorphie Beispiel Polymorphie Java Basics - Anfänger-Themen 2
M Threads am Beispiel Parkhaus Java Basics - Anfänger-Themen 10
G OOP Beispiel Objekte zugreifen Java Basics - Anfänger-Themen 3
M Suche Beispiel-Spiel Java Basics - Anfänger-Themen 3
M Ganz einfaches Beispiel, finde den Fehler aber nicht :( Java Basics - Anfänger-Themen 2
A Frage zu Beispiel eines Dekorierers von InputStream Java Basics - Anfänger-Themen 4
M Kann kein Objekt (AudioFile in diesem Beispiel) für ein leeren String erzeugen Java Basics - Anfänger-Themen 3
P wie oop an diesem beispiel verbessern? Java Basics - Anfänger-Themen 31
K return-Anweisung am Beispiel eines Palindroms Java Basics - Anfänger-Themen 18
P Datentypen Warum würde dieses Beispiel nicht funktionieren? Java Basics - Anfänger-Themen 6
V KeyListener Beispiel Java Basics - Anfänger-Themen 13
S Objektidentität und gleichheit an diesem Beispiel Java Basics - Anfänger-Themen 7
S Komposition beispiel anhand eines kopierers Java Basics - Anfänger-Themen 4
M Gutes Beispiel für Exception- werfende & behandelnde Methode Java Basics - Anfänger-Themen 5
H Webservice - Einfaches Beispiel Java Basics - Anfänger-Themen 2
b101 OOP Beispiel Klausur Aufgabe der FH Java Basics - Anfänger-Themen 22
T Java Beispiel Bitte helft mir Java Basics - Anfänger-Themen 5
Gonzalez Eingabe des Benutzers mittels readLine()-Methode. Klappt in meinem Beispiel nicht! Java Basics - Anfänger-Themen 7
V Präinkrement Beispiel Java Basics - Anfänger-Themen 14
M Swing Beispiel Java Basics - Anfänger-Themen 2
M [Einfaches Beispiel] Problem mit innere Klassen Java Basics - Anfänger-Themen 4
M Beispiel-Webprojekt: Statt HSQLDB Postgres verwenden Java Basics - Anfänger-Themen 12
M Serialisierung erstes Beispiel Java Basics - Anfänger-Themen 4
razwed4ik zum Beispiel aus Java Insel Buch Java Basics - Anfänger-Themen 7
M DBCP - Kleines Beispiel Java Basics - Anfänger-Themen 3
M Data Access Object - Beispiel Java Basics - Anfänger-Themen 11
M Beispiel für Linked List Java Basics - Anfänger-Themen 9
A ausgabe eines arrays - einfaches beispiel Java Basics - Anfänger-Themen 4
Z Beispiel Würfelspiel mit Verwendung von Feldern Java Basics - Anfänger-Themen 7
Q POI Beispiel Programme Java Basics - Anfänger-Themen 2
J Das schöne Bouncing Ball Beispiel. Java Basics - Anfänger-Themen 20
N Java Insel - RMI Beispiel Java Basics - Anfänger-Themen 12
J Plymorphismus - unklarheit zu einem Beispiel Java Basics - Anfänger-Themen 6
S Gutes Beispiel für Vererbung? Java Basics - Anfänger-Themen 14
I Hilfe beim Java-Applet Beispiel Java Basics - Anfänger-Themen 27
G konkretes beispiel: interface hier besser als abstrakte kl. Java Basics - Anfänger-Themen 4
M Brauche ein Beispiel für eine set() get() Methode Java Basics - Anfänger-Themen 4
M Komische Syntax bei Double-Buffering-Beispiel Java Basics - Anfänger-Themen 2
M Brauche Hilfe bei Beispiel. Java Basics - Anfänger-Themen 4
S Beispiel für abgestufte Preisliste Java Basics - Anfänger-Themen 2
S Wrapper-Pattern Beispiel Java Basics - Anfänger-Themen 2
S Model-View-Controller Konzept Beispiel Java Basics - Anfänger-Themen 11
E Fehler im Beispiel? Java Basics - Anfänger-Themen 3
B Was ist falsch an dem beispiel? Java Basics - Anfänger-Themen 4
M Beispiel für sinnvolles finally? Java Basics - Anfänger-Themen 17
B schon beim einsteiger-beispiel durchgefallen. Java Basics - Anfänger-Themen 2
M Einfache HTML Mail versenden , suche Beispiel Java Basics - Anfänger-Themen 5
G einfaches jdialog beispiel Java Basics - Anfänger-Themen 1
D Beispiel-Servlet erstellen Java Basics - Anfänger-Themen 4
G Rekursiv-Beispiel; Wer erklärt mir... Java Basics - Anfänger-Themen 9
H Beispiel für Schriftfarben Java Basics - Anfänger-Themen 8
B Oberflaecheprog einfaches beispiel (button action listener) Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben