Grundlagen von Methoden an folgendem Beispiel

B

BeGGgginner

Gast
Hallo, ich beginne gerade mit der Java-Programmierung und habe noch eine kleine Frage zu den Grundlagen von Methoden. Man kann Methoden ja Parameter mitgeben, wenn die Variablen, die die Methode benutzt, in einem anderen Block deklariert wurden. Des Weiteren können Methoden auch einen Rückgabewert zurückgeben mit Hilfe von return. Jetzt ist meine Frage, wie ich an diesen Rückgabewert herankomme, denn folgendes Codebeispiel macht den Rückgabewert ja eigentlich unnötig, da ich irgendwie immer die ganzen Parameter in die Klammern hnter die Methoden schreiben MUSS. Es wäre echt super, wenn mir jemand sagen könnte, wo genau der Pfusch liegt.

Vielen Dank im Voraus.

Java:
public class Notendurchschnitt
{
    public static void main(String[] args)
    {
        int mathematik = 10;
        int deutsch = 6;
        int englisch = 8;
        int geschichte = 6;
        int politik = 9;
        int physik = 5;
        int chemie = 8;
        int religion = 6;
        int sport = 11;
        int kunst = 8;

        setgesamtsumme(mathematik, deutsch, englisch, geschichte, politik, physik, chemie, religion, sport, kunst);
       
 getnotendurchschnitt(mathematik, deutsch, englisch, geschichte, politik, physik, chemie, religion, sport, kunst);
        
System.out.println("Der Notendurchschnitt beträgt" + getnotendurchschnitt(mathematik, deutsch, englisch, geschichte, politik, physik, chemie, religion, sport, kunst));
    }

    public static int setgesamtsumme(int mathematik, int deutsch, int englisch, int geschichte, int politik, int physik, int chemie, int religion, int sport, int kunst)
    {
        int gesamtsumme = mathematik + deutsch + englisch + geschichte + politik + physik + chemie + religion + sport + kunst;

        return gesamtsumme;
    }

    public static double getnotendurchschnitt(int mathematik, int deutsch, int englisch, int geschichte, int politik, int physik, int chemie, int religion, int sport, int kunst)
    {

        int notendurchschnitt = setgesamtsumme(mathematik, deutsch, englisch, geschichte, politik, physik, chemie, religion, sport, kunst)/10;  

        return notendurchschnitt;
    }

}
 

Landei

Top Contributor
Davon abgesehen rennst du hier in eine typische Anfängerfalle: Für Ganzzahlen ist / auch die Ganzzahldivision, also 12 / 10 = 1. Ist wenigstens eine der beteiligten Zahlen eine Real-Zahl, klappt es, z.B. 12 / 10.0 = 1.2
 
B

BeGGgginner

Gast
Danke für die Mühen, aber mit dem Link kann ich irgendwie garnichts anfangen O_O
 

fidibus

Mitglied
Hier mal ein noch kleines Beispiel

Grüße

Java:
public class Beispiel {

	public Beispiel() {
		// TODO Auto-generated constructor stub
	}
	
	public int addiere(int a, int b  )
	{
		return a+b;
	}
	
	//ueberladene Methode addiere
	public int addiere (int a, int b, int c)
	{
		return a+b+c;
	}
	
	public void ausgeben (int a )
	{
		System.out.println(a);
	}

	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//Instanz der Klasse erstellen
		Beispiel bsp = new Beispiel();
		
		//ergebnis einer Addition in einer Variable speichern
		int ergebnis = bsp.addiere(3, 5);
		//ergebnis mittels Ausgabe-Pprozedur ausgeben
		bsp.ausgeben(ergebnis);
		//ergebnis einer Addition direkt ausgeben
		System.out.println(bsp.addiere(2, 3, 5));
		
	}
}
 
B

BeGGgginner

Gast
Danke für das konkrete Beispiel. Mit Konstruktoren habe ich mich zwar noch nicht beschäftigt, aber im Endeffekt ist es ja das selbe. So wie ich das jetzt verstanden habe, muss man also immer wenn man die Methode verwendet die Parameter in die Klammern schreiben.
Folgendes Code-Beispiel lässt sich also nicht kürzer fassen, wenn man für die berechnung und die Ausgabe jeweils eine Methode benutzt. Auch scheint es sich nicht umgehen zu lassen, dass ich beiden Methoden die selben Parameter mitgeben muss - ist das so richtig?

Java:
public class Notendurchschnitt
{
public static void main(String[] args)
{
double mathematik = 15.0;
double deutsch = 10.0;
double englisch = 14.0;
berechneGesamtpunktzahl( mathematik, deutsch, englisch);
gebeDurchschnittaus( mathematik, deutsch, englisch);

}

public static double berechneGesamtpunktzahl(double mathematik, double deutsch, double englisch)
{
  double gesamtpunktzahl = mathematik + deutsch + englisch;
  return gesamtpunktzahl;
}

public static void gebeDurchschnittaus(double mathematik, double deutsch, double englisch)
{
System.out.println("Dein Notendurchschnitt betraegt: " + berechneGesamtpunktzahl(mathematik, deutsch, englisch)/3);
} 
}
 

fidibus

Mitglied
Soweit sieht das korrekt aus, Allerdings kannst du dir den Aufruf der Funnktion berechneGesamtpunktzahl( mathematik, deutsch, englisch); in der main sparen, da du die die Methode in gebeDurchschnittaus() aufrufst.

Achso und kürzer gehts natürlich auch noch, aber erstmal müssen die Grundlagen sitzen dann kann man am Stil arbeiten.

Grüße
 
Zuletzt bearbeitet:

ARadauer

Top Contributor
Es wäre echt super, wenn mir jemand sagen könnte, wo genau der Pfusch liegt.
Java:
...
        int gesamt = setgesamtsumme(mathematik, deutsch, englisch, geschichte, politik, physik, chemie, religion, sport, kunst);
...
ich würd mit dem rückgabe wert irgendetwas machen, sonst machte es ja keinen sinn dass du ihn berechnest...
ich würd mir mal arrays ansehen... da könntest du deine parameter besser abbilden..
 

AquaBall

Top Contributor
Grundsätzlich ist das schon richtig.
Du hast mit Methoden schon recht,
aber das Beispiel ist denkbar schlecht geeignet für diese Art von Variablenkonzept.

Es bietet sich ja gerade an, ein Array, oder besser HashSet oder ... zu verwenden.

Was machst du, wenn auch nur ein Fach dazukommt, oder nicht vorkommt.
Du müsstest ALLE Methoden neu programmieren!

nimm wenigstens array-Parameter:
Java:
public void foo(String... bars) {
   for (String bar : bars)
      System.out.println(bar);
}
 
B

BeGGgginner

Gast
ich würd mir mal arrays ansehen... da könntest du deine parameter besser abbilden..

Ja an die habe ich auch schon gedacht, nur wie kann ich es so hinbekommen, dass ich für jede Punktzahl auch das Fach identifizieren kann(Nur für den Fall, dass ich das später evtl. da einbauen möchte, wenn ich zum Beispiel mit ner for-Schleife das Array "auslese" und zu den Punkten halt die Fächer bekomme)

In nem Array wäre das ja folgendermaßen:
Java:
double[] noten = {15, 10, 14};

Ich glaube, dass so eine simple Fragestellung nach einem Notendurchschnitt schon sehr viel hergibt, um später auch was mit GUIs und Arrays und was auch immer zu machen und so auch in die OOP einzusteigen, WENN EBEN FÄCHER DAZU KOMMEN ODER ÄHNLICHES, und es wär auch super, wenn ich dann mal den ganzen Kram mit Objekten und sowas verstanden habe, dass ihr mir da genauso zur Seite steht wie jetzt;)

Danke
 

fidibus

Mitglied
Naja da dir zur Zeit noch die Grundlagen der Objektorientierung fehlen schlage ich zunächst vot das du entweder auf die Zuordnung der Punkte zu den Fächern verzichtest oder eben ein zweites Array für dür die Fächer anlegst. Das heißt du legst die entsprechenden Punkte genau auf dem gleichen Feldindex ab wie den dazugehörigen Namen des Fachs.

Grüße
 
B

BeGGgginner

Gast
Also mit der Zuordnung von Noten zu Fächern bin ich zu folgendem Code gekommen.

hier die veränderte Methode:
Java:
public static void gebeDurchschnittaus(double mathematik, double deutsch, double englisch, String[] faecher, double[] noten)
{
System.out.println("Dein Notendurchschnitt betraegt: " + berechneGesamtpunktzahl(mathematik, deutsch, englisch, faecher, noten)/3);
for(int index = 0; index <= 2; index++)
{
 System.out.print("Fach: " + faecher[index]);
 System.out.println(", Note: " + noten[index]);
}

Ich denke, dass ich das mit den Methoden jetzt einfach weiter machen muss, um da Routine reinzubekommen, wie bei allen Sachen die man lernen muss. Wie kann ich weiter fortfahren, am besten anhand dieses "Programms", um Java mehr zu beherrschen, also neue Aspekte der Java-Programmierung?

Gruß
 

AquaBall

Top Contributor
Nächste Aufgabe:
=> Sortier mal deine Noten der Größe nach.

(Du wirst sehen, dass du mit diesem Datenmodell vermutlich scheiterst.)
 
B

BeGGgginner

Gast
Bei dieser Aufgabe denke ich an eine for-Schleife und if. Liegt das schon in meinen Möglichkeiten, den Code so umzubasteln, dass es klappt? Ich beherrsche im Moment nur Schleifen, Datentypen, einfache Methoden und Bedingungen bzw Vergleiche.

Gruß
 

fidibus

Mitglied
Also zunäachst muss ich mal zu dem Kommentar meines Vorgängers etwas sagen: Das das Datenmodel nicht perfekt für iene solche Abbildung ist ist völlig klar, Optimal wäre eine Abbildung mit Objekten. Aber da er ein Anfänger ist und die Sprache lernen will ist es sinnvoller ersteimal die Grundlagen zu festigen bevor man in die Objektorientierung einsteigt.

So soritieren kannst du natürlich mit iener Schleife und entsprechender IF-Bedingung. Am besten machst du dir eine eigene Methode dafür. Du wirst dabei die Zuordnung zu deinem Fach verlieren. Aber sortieren ist eine gute Übung. Damit du dir das Array nicht überschreibst kannst du dir ein neues anlegen und das alte zuerst kopieren.
 
B

BeGGgginner

Gast
Also mit dem Sortieren mittels Schleife bin ich gerade überfordert... wenn ich z.B 100 Zahlen habe und kontrolliere, ob es kleinere Zahlen gibt als die 15 und es sind in dem Array die Zahlen 5 und 1 enthalten trifft diese Bedingung ja für beide Zahlen zu und wenn die for-Schleife bei der ersten Zahl angekommen ist, die kleiner ist als 15, wird die nächste Zahl kontroliert.. Algorithmen scheinen nicht meine Stärke zu sein -.-. Hier der bisherige Gedanke:

Java:
 public static void ordneZahlen( String[] faecher, double[] noten)
    {
        for(int index = 0; index <= 2; index++) 
        {
            for (int count = 0; ; )
            {
                if( noten[index] > noten[count] && count < 2 )
                {
                    count++;
                }
            }
        }
    }

Das ganze ist zwar noch nicht fertig aber ich glaube der Ansatz an sich ist schon falsch.

Gruß
 

fidibus

Mitglied
Also zunächt mal brauchst du dein Array mit Faechern nicht übergeben. Das benutzt du sowieso nicht. Zweitens würde ich dir empfehlen dir mal ein´Array auf ein Blatt Papier aufzumalen und eine Sortierung der Werte mal per Hand durchzuführen, dann wirst du feststellen das du nur eine schleife benötigst. Weiterhin wird dir dann auch klar wie deine if-Bedingung lauten muss.

Kleiner Tipp: benutze eine Hilfsvariable zum zwischenspeichern und arbeite mit
Java:
faecher.lengh
Damit hast du dann die Läange deins Feldes automatisch.
 
B

BeGGgginner

Gast
Java:
public static void ordneZahlen( double[] noten)
    {
        double hilfsvariable;
        for(int index = 0; index < noten.length; index++)
        {
         
            hilfsvariable = noten[index]  // ergibt irgendwie keinen Sinn, bzw. das if ergibt keine
            
            if() //Bedingung  
             {
               //Anweisung bei true
             }
        }
    }

Ich bin gerade eher frustriert statt motiviert... ich komme keinen Schritt weiter.

Gruß
 

fidibus

Mitglied
Ok der Fehler liegt jetzt teilweise auf meiner Seite:

Für den einfachsten Sortierlagoritthmus brauchst doch 2 Schleifen sorry.

Also die Grundidee besteht darin immer zwei benachbarte Feldelente zu tauschen, wenn sie in der falschen reinfolge sind.

1. vergleiche das aktuelle Feldelment mit dem Nachfolger. wenn sie vertauscht sind tausche.
2. Rücke ein Feldelement weiter und fahre fort mit 1.

tue dies solange bis alle Elemente in der richtigen Reihenfolge sind.

a) du eine Variaable zum zwischenspeichern.
b) du brauchst eine for- schleife
c) eine while schleife
d) und am bsten eine boolsche Variable zum abruch der sortierung.
 
B

BeGGgginner

Gast
Kein Problem;)
Ich hätte vielleicht eher an mir selber zweifeln sollen... . Ich werd jetzt erstmla ne Nacht drüber schlafen und dann schaff ich das hoffentlich. Danke nochmal für die Gedult mit mir ;)

Gr
 

Landei

Top Contributor
Eine völlig überraschende Lösungsmöglichkeit in einer objektorientierten Sprache wäre, Objekte zu verwenden...

Mal aus'm Kopp:
Java:
public class Note {
   public final String fach;
   public final int ergebnis;
   public Note(String fach, int ergebnis) {
       this.fach = fach;
       this.ergebnis = ergebnis;
   }
}

public class Notendurchschnitt {
    public static void main(String[] args)  {
        double durchschnitt = notendurchschnitt(
         new Note("mathematik",10),
         new Note("deutsch",6),
         new Note("englisch",8)); //zu faul um alles zu tippen :-)
         System.out.println("Der Notendurchschnitt beträgt" + durchschnitt);
    }
 
    public static double notenDurchschnitt(Note... noten) {
        int summe = 0;
        for(Note note : noten) {
           summe += note.ergebnis;
        } 
        return 1.0 * summe / noten.length;
    }
}

Und mit dem neuen Noten-Typ ist das Sortieren auch ganz einfach. Im richtigen Leben würde man das über einen eigenen Comparator und Collections.sort erledigen, aber selber schreiben ist sehr instruktiv und pädagogisch wertvoll (TM)...
 
Zuletzt bearbeitet:

Landei

Top Contributor
Das Note-Objekt kann doch einfach so als "Black-Box" verwendet werden. Man muss auch nicht viel von OO wissen, um etwa [c]java.awt.Point[/c] zu verwenden...
 
G

greece57

Gast
@Landei:

Ich find die Idee auch nicht schlecht ihn hier mit der Objektorientierung zu konfrontieren
Nur vielleicht sollte man für einen Anfänger das ganze auch noch ausreichend kommentieren und ihn nicht einfach ins kalte Wasser werfen ;)
Ich weiß jetzt nicht wie viel er von Objektorientierung in Java versteht und wie viel nicht deswegen mach ich mir mal kurz die mühe und kommentier jede Zeile ;)

Java:
// Anlegen einer neuen Klasse ("Schablone") von der du dann mehrere Noten erzeugen wirst
public class Note { // In den beiden folgenden Variablen speicherst du das jeweilige Fach und das ergebnis der "Note"
   public final String fach;    
   public final int ergebnis;
   // Das ist der Konstruktor, wenn du ein Objekt vom Typ Note erzeugst
   // wird dieser automatisch aufgerufen und du musst ihm die Parameter übergeben
   public Note(String fach, int ergebnis) { 
       // die du dann hier in die Variablen der Klasse einspeicherst
       // Da die Klassenvariablen und die Parameter den gleichen Namen haben, musst du
       // vor die Klassenvariablen das this. schreiben damit das Programm weiß dass du das Parameter
       // in die Klassenvariable speichern willst. Mit this ruft das Objekt sozusagen sich selbst auf.
       // Sonst gilt eig immer die Variable die du zuletzt deklariert hast wird der Konstrukor immer hernehmen
       this.fach = fach; 
       this.ergebnis = ergebnis;
   }
}
 

public class Notendurchschnitt {
    // main-Methode
    public static void main(String[] args)  {
         // hier legst du drei neue Noten an
         // in Klammern übergibst du dem Konstrukor die gewünschten Werte
         Note n1 = new Note("mathematik",10);
         Note n2 = new Note("deutsch",6);
         Note n3 = new Note("englisch",8);   
 
         // hier rufst du die durchschnittmethode unten mit den 
         // 3 neu angelegten Noten als Parameter auf und speicherst den Rückgabewert in
         // einer neuangelegten Variable "durchschnitt" vom Typ double    
         double durchschnitt = notendurchschnitt(n1,n2,n3);
         System.out.println("Der Notendurchschnitt beträgt" + durchschnitt);    }
 
    // "Note... noten" ist eine Parameterliste, dh du kannst der Funktion so viele
    // Objekte der Klasse Note übergeben wie du willst
    // diese werden dann in einen Array namens "noten" zusammengefasst
    public static double notenDurchschnitt(Note... noten) {
        int summe = 0;
        // heißt: for each objekt note vom Typ Note im Array noten
        // ist gleichzusetzen mit 
        // for(int i = 0; i < noten.length; i++){
        //    summe += noten[i].ergebnis;
        // }
        for(Note note : noten) {
           summe += note.ergebnis;
        } 

        // rückgabe des ergebnisses als gleitkommazahl, deswegen 
        // wird als erstes mit 1.0 multipliziert, sonst würdest du 
        // dein ergebnis als Integer bekommen
        return 1.0 * summe / noten.length;
    }
}

Habs mir jetzt nicht nochmal durchgelesen, ich hoffe es stimmt zum größten teil
 

bERt0r

Top Contributor
Es ist echt nicht erforderlich dass du deinen eigenen Sortieralgorythmus entwickelst. Google mal nach BubbleSort oder SwapSort.
 
M

maki

Gast
@greece57

Deine Kommentare sind falsch bzw. missverständlich, ob das hilft? ;)
Eine "Klassenvariable" kommt da zB. gar nicht vor.
 
G

greece57

Gast
oder einfach in google Sortieralgorithmen und such dir einen raus der dir am besten gefällt ;)
Sehr zu empfehlen ist Bogosort :p *ironie ende
 
G

greece57

Gast
@maki:
Ich hab mein bestes getan :/
Als Moderator könntest du ja nochmal drüberschaun, dachte es wär richtig allerdings bin ich was begrifflichkeiten angeht leider nicht so ganz fit :/
 

fidibus

Mitglied
Mmh, also ich finde ein die Entwickung eines einfachen Sortieralgorithmus eigentlich sehr gut, da ein gewisses Maß an algorithmischem Verständis eigentlich Voraussetzung ist zum entwickeln von Programmen.

Und boubble-sort bewegt is quasi ne kleine Verbesserung von dem Algorithmus den ich ihm sozusagen vorgeschlagen habe.

Gruß
 
Zuletzt bearbeitet:
B

BeGGgginner

Gast
Danke schonmal für die ganzen Posts, ich bin wie einige hier auch der Meinung, dass ich so einen Algorithmus selber hinbekommen muss... alles andere packt mich an der Ehre ( Mathe LK :) ). Ich hätte auch nicht mit einer solchen Rückmeldung zur OOP gerechnet, die ich mir nochmal genauer durchgucken muss.

Grüße
 

AquaBall

Top Contributor
Ich hätte auch nicht mit einer solchen Rückmeldung zur OOP gerechnet, die ich mir nochmal genauer durchgucken muss.

Sorry für das was jetzt kommt: (ist nicht bös gemeint!!!!)
(Und ich nehm sogar die Schrift, die ich zuerst selbst kritisiert haben)

lol
rotfl


Da kommt einer auf die Idde, dass man in Java sich vielleicht doch OOP mal anschauen sollte.


Lol!!

(Ist nicht bös gemeint!!!! Find ich aber lustig)

!!! Java IST OOP !!!!


Aber natürlich hast du recht: Man muss alles Schritt für Schritt lernen.
 
Zuletzt bearbeitet:
B

BeGGgginner

Gast
Ja, aber nach einer Woche schon..? Vielleicht sollten erstmal Grundlegende Dinge sitzen wie Syntax und einfache Operationen. Ist auch nicht böse gemeint aber der Post... und so weiter :)

Grüße
 

fidibus

Mitglied
Sorry für das was jetzt kommt: (ist nicht bös gemeint!!!!)
(Und ich nehm sogar die Schrift, die ich zuerst selbst kritisiert haben)

lol
rotfl


Da kommt einer auf die Idde, dass man in Java sich vielleicht doch OOP mal anschauen sollte.


Lol!!

(Ist nicht bös gemeint!!!! Find ich aber lustig)

!!! Java IST OOP !!!!


Aber natürlich hast du recht: Man muss alles Schritt für Schritt lernen.

Sorry Aqua, Java ist zwar eine objektorientierte Sprache, aber so ein Post ist mal echt völlig überflüssig. Zum einen ist der User ein Anfänger in Sachen Programmierung und zum anderen nützen niemanden solche Äuißerungen.

Und mal nebenbei bemerkt, offensichtlich solltest du dir auch noch mal das OOP-Konzept von Java anschauen, denn was du heute Nachmittag in dem anderen Thread gepostet hast war alles andere als sicher. Ich errinere an die Instanziierung einer Klasse automatisch bei Programmstart. Du solltest dir noch mal das Schlüsselwort "static" genau anschauen.
 

AquaBall

Top Contributor
ak.

Ich hab mich ja auch höflichst entschuldigt. Habs nur lustig gefunden.

Das heißt nicht, dass ich von irgendjemand erwarte, dass er alles weiß (auch von mir nicht),
und Anfängern gerne weiter helfe, soweit ich kann.

Du hast aber recht, ich habe mit Java vor inzwischen exakt 7 Wochen begonnen (Siehe meine ersten Posts, um Eclipse überhaupt zum Laufen zu bringen.) Und weiß sicher noch lange nicht alles was man können sollte.

Aber nur der Sicherheit halber: Ich entschuldige mich nochmal über mein spontanes, emotionales Lachen, und würde den Post gerne wieder ändern/löschen (geht aber plötzlich nicht mehr).
Bitte Moderator: löschen!
 
B

BeGGgginner

Gast
Ich weiß auch nicht, wieso mich so eine triviale Sache wie der Größe nach sortieren so auf die Probe stellt aber ich bekomms einfach nicht hin.... . Ich weiß noch nicht einmal, wie die if-Bedingung stellen soll, um infrage zu stellen, ob die Zahlen überhaupt in der richtigen Reihenfolge sind... .

Grüße
 
M

Marcinek

Gast
Naja wenn man 3 2 1 hat.

Der Simplelste Algo ist: Tausche solange bis nix mehr zu tauschen gibt.

Also fangen wir an.

3 und 2. Da 3 > 2 => tauschen. = 2 3 1

3 und 1. Da 3 > 1 => tauschen = 2 1 3

wieder von forne.

2 und 1. Da 2 > 1 => tauschen = 1 2 3

2 und 3. Da 2 < 3 => nix.

Wieder von forne

1 und 2 => nix
2 und 3 => nix.

Wir haben einmal nix gemacht ==> alles fertig.
 
B

BeGGgginner

Gast
Achsooo ;)
Also muss ich nach jedem Tausch wieer von vorne das Array durchlaufen *Lichtgehtauf*
Sooo "rekursiv" hatte ich garnicht gedacht -.-

Grüße
 

fidibus

Mitglied
Wenn du es mit zwei Schleifen machst ist das nicht rekursiv. rekursiv wäre die Lösung mit einer Schleife in dem du die Zwischenergebnisse durch erneuten "Selbstaufruf" der Methode auf den Heap auslagerst.

Die Lösung mit 2 Schleifen ist rein iterativ.
 
B

BeGGgginner

Gast
Sooo ebdlich ist die Methode fertig und sie funktioniert tadellos:)

Java:
public class Noten 
{

	public static void main(String[] args)
	{
		double[] noten = {15.0, 10.0, 13.0};
		//berechneDurchschnitt(noten);
		//druckeDurchschnitt(noten);
		ordneZahlen (noten);
		gebeneuesArray(noten);
		
		
    }
	
	public static double berechneDurchschnitt(double[] noten)
	{
		double gesamtpunktzahl = 0.0;
         for(int index = 0;index < noten.length; index++)
		{
			gesamtpunktzahl += noten[index];
		}
		return gesamtpunktzahl;
		
	}
	
	public static void druckeDurchschnitt(double[] noten)
	{
		System.out.println(berechneDurchschnitt(noten)/3);
	}
	
	public static void ordneZahlen (double[] noten)
	{
		double test;
		boolean is_sortiert = false;
		
		while(is_sortiert == false)
		{
			for(int index = 0; index < noten.length-1; index++)
			{
				if(noten[index] > noten[index + 1])
				{
					test = noten[index];
					noten[index] = noten[index + 1];
					noten[index + 1 ] = test;
					index = 0;
				}
			      
			    	  is_sortiert = true;
			    }
		}
		
	}
	
	public static void gebeneuesArray(double[] noten)
	{
	   for(int index = 0; index < noten.length; index++)
	     {
		 System.out.println(noten[index]);
	     }
	}
}

Nicht wundern, dass ich die beiden anderen Methoden auskommentiert habe, aber die sind dafür eh irrelevant.

Grüße
 

AquaBall

Top Contributor
Super!
Gratuliere.

Jetzt kannst du im nächsten Schritt schon den Namen des Faches vorbereiten.

Kleiner Tip: Es ändert sich (fast) nur der Typ von noten[].

Das Gerüst bleibt unverändert gleich!
(Das ist einer der größen Vorteile von Objekten!!)
 
B

BeGGgginner

Gast
Jetzt sollte ich mich wohl wirklich mal den Objekten zuwenden, um auch später mal Code zu fabrizieren aus dem auch Programme werden die es verdient haben so genannt zu werden. Ich hoffe mal, dass ich da durch euch weiterhin so viel Unterstützung erfahre ;)

Grüße
 

Landei

Top Contributor
Versuche darauf zu achten, dass dein Code auch immer das tat, was er "behauptet". Eine Methode namens [c]berechneDurchschnitt[/c] sollte z.B. den Durchschnitt zurückliefern, nicht die Gesamtpunktzahl. Das klingt trivial, aber sobald dein Projekt ein wenig größer wird, versinkt es in Chaos, wenn du da zu locker bist.
 

bERt0r

Top Contributor
Also so wie du den code gepostet hast sollte der noch nichtmal kompilieren - die is_sortiert=true Stelle macht einen Klammerfehler.

Ich habe ja auch nicht gesagt, du sollst dir den Bubblesort suchen, kopieren und einfügen - les dir das Konzept durch und versuch ihn nachzuprogrammieren. Besonders bei Sortieralgorithemn kann man eine Menge lernen, wie man performante Algorithmen entwickelt. Vergleich mal deine Version mit der von Wiki: Bubblesort ? Wikipedia. Da wird sogar schön auf Optimierungen eingegangen.

PS: Lass die Finger von OOP solange du die Grundlagen nicht kannst.
 
B

BeGGgginner

Gast
Wieso liefert der Code nen fehler? Bei mir hat Eclipse keine Problenme gemacht. Die Sache mit der Methodenbezeichnung stimmt natürlich:)

Grüße
 

bERt0r

Top Contributor
Uiuiui, so genau hab ich mir den Code noch gar nicht angesehen. Schau dir besser den Wikipedialink an. Die Zählvariable einer for-Schleife sollte man NIEMALS verändern. Deine Whileschleife drumherum ist deswegen auch für die Katz - wenn die for fertig ist, wird die While immer beendet, die kann nur einmal durchlaufen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Grundlagen: Methoden Java Basics - Anfänger-Themen 4
brypa Java Grundlagen Java Basics - Anfänger-Themen 97
M Sammelsarium an Grundlagen Grundlagen Fragen Java Basics - Anfänger-Themen 11
T Java Grundlagen Java Basics - Anfänger-Themen 13
L Viele Fragen zu den Grundlagen Java Basics - Anfänger-Themen 5
C Mein Video zu Java Grundlagen Java Basics - Anfänger-Themen 8
G Grundlagen der PS-Java Java Basics - Anfänger-Themen 8
J OOP Theoretische Grundlagen Java Basics - Anfänger-Themen 5
G OOP [Eilig] Biete 10€ für Lösung von 2 Grundlagen-Aufgaben Java Basics - Anfänger-Themen 6
B Lernzeit für C++ und Java Grundlagen Java Basics - Anfänger-Themen 11
G Grundlagen sitzen nicht bzw. nicht intelligent genug Java Basics - Anfänger-Themen 7
D Erste Schritte JEE Grundlagen lernen Java Basics - Anfänger-Themen 3
W Variablen Pointer Grundlagen Java Basics - Anfänger-Themen 30
J Compiler-Fehler Probleme bei Grundlagen Java Basics - Anfänger-Themen 12
D Quelle für Java-Grundlagen gesucht Java Basics - Anfänger-Themen 16
J Anfängerfrage zu Grundlagen von Packages Java Basics - Anfänger-Themen 7
D Grundlagen - Operatoren Java Basics - Anfänger-Themen 5
B Grundlagen zu Java Java Basics - Anfänger-Themen 18
G Grundlagen Bild laden und zeichen (anzeigen) Java Basics - Anfänger-Themen 2
7 Applets - einfachste Grundlagen Java Basics - Anfänger-Themen 24
M [Suche] Grundlagen der Java-Programmierung Java Basics - Anfänger-Themen 17
A Grundlagen Array Java Basics - Anfänger-Themen 4
T Grundlagen ganz am Anfang Java Basics - Anfänger-Themen 12
O Vererbung Grundlagen Java Basics - Anfänger-Themen 4
megachucky JDBC-Grundlagen: Verständnisprobleme Java Basics - Anfänger-Themen 31
DrahtEck Methoden Methoden und Werte Java Basics - Anfänger-Themen 5
emreiu Methoden Rekursive Methoden Runter- & Hochzählen Java Basics - Anfänger-Themen 2
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
J Argumente in Methoden übergeben Java Basics - Anfänger-Themen 1
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
Renjiroo Java Bmi Rechner mit Methoden Java Basics - Anfänger-Themen 4
frager2345 Thread - Methoden synchronized deklarieren Java Basics - Anfänger-Themen 10
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
Alen123 Erstes Arbeiten mit Methoden. Java Basics - Anfänger-Themen 5
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Gerade oder ungerade Zahl mittels Methoden Java Basics - Anfänger-Themen 13
M Erklärung von Ausnahmebehandlung in Methoden Java Basics - Anfänger-Themen 13
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
L Rekursive Methoden Java Basics - Anfänger-Themen 14
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
W Methoden aufrufen - auch klassenübergreifend? Java Basics - Anfänger-Themen 9
Kotelettklopfer Methoden nicht aufrufbar Java Basics - Anfänger-Themen 34
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
S Vererbung Abstrakte Methoden: Wozu das Ganze?! Java Basics - Anfänger-Themen 7
S abstrakte methoden in subclass? Java Basics - Anfänger-Themen 7
S Methoden - Warum int wenn auch void? Java Basics - Anfänger-Themen 3
H Kann man Methoden öfter aufrufen? Java Basics - Anfänger-Themen 2
CptK Interface Functional interface mit mehreren Methoden Java Basics - Anfänger-Themen 6
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
lougoldi Verkettung von Methoden und Konstruktoren Java Basics - Anfänger-Themen 4
Zeppi OOP Methoden mit einander Verknüpfen Java Basics - Anfänger-Themen 6
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
A Parametar übergabe zwischen Methoden Java Basics - Anfänger-Themen 26
D Methoden nach einer bestimmten Reihenfolge ausführen. Java Basics - Anfänger-Themen 20
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
O Attribute die Methoden zählen Java Basics - Anfänger-Themen 5
M Bräuchte Hilfe bei diesen Methoden Java Basics - Anfänger-Themen 4
G Methoden Methoden mit versch. Datentypen Java Basics - Anfänger-Themen 1
T Ich habe eine Variabel die nicht Methoden übergreifend ist. Kann mir jemand Helfen :) Java Basics - Anfänger-Themen 5
Junger_Basileus Celsius -> Fahrenheit / Strukturierung in statischen Methoden Java Basics - Anfänger-Themen 7
J Verschachtelte Methoden Java Basics - Anfänger-Themen 9
H Methoden in anderen Methoden aufrufen Java Basics - Anfänger-Themen 6
Kawastori Hilfe bei Methoden Übung Java Basics - Anfänger-Themen 6
veryck Methoden Rekursive Methoden mit Rückgabeparameter Java Basics - Anfänger-Themen 9
C Methoden können nicht auf Instanzvariable der Klasse zugreifen Java Basics - Anfänger-Themen 3
P Methoden aufrufen - Fehler Java Basics - Anfänger-Themen 20
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Generics Methoden Java Basics - Anfänger-Themen 7
L Test-Methoden schreiben Java Basics - Anfänger-Themen 13
S throws bei Methoden Java Basics - Anfänger-Themen 4
L Best Practice Code Refactoring für Methoden mit fast gleicher Aufbau Java Basics - Anfänger-Themen 6
I Greedy Methode Methoden nutzen Java Basics - Anfänger-Themen 3
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5
A Klassen und methoden Java Basics - Anfänger-Themen 15
S Übergabe von Arrays an Methoden Java Basics - Anfänger-Themen 20
L Methoden Wie Löse ich ext Methoden Aufruf Fehler? Java Basics - Anfänger-Themen 3
A Bankweverwaltung mit Klassen und Methoden Java Basics - Anfänger-Themen 14
B Methoden Ausgeben Aufgabe Java Basics - Anfänger-Themen 15
M Aufsplitten von Methoden in andere Klassen Java Basics - Anfänger-Themen 2
T Methoden Verständnis Java Basics - Anfänger-Themen 14
M Feste Reihenfolge von dem Ablauf von Methoden Java Basics - Anfänger-Themen 7
G Java Abstrakte Methoden Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben