+ Antworten
Ergebnis 1 bis 20 von 20
Like Tree1x Danke
  • 1 Post By Cloud Strife

Algorithmus in Java implementieren

Eine Diskussion über Algorithmus in Java implementieren im Forum Hausaufgaben. Teil des Reallife-Bereichs; Habe hier als Aufgabe gegeben: Es sollen drei ganze Zahlen eingegeben und verarbeitet werden. Die Summe, das Produkt, das arithmetische ...

  1. #1
    Anti-stefros2
    Avatar von Havoc
    Registriert seit
    19.07.2008
    Ort
    Franken
    Alter
    25
    Beiträge
    12.720
    Name
    Mario
    Nick
    Havoc
    Clans
    Arctical Warfare

    Algorithmus in Java implementieren

    Habe hier als Aufgabe gegeben:
    Es sollen drei ganze Zahlen eingegeben und verarbeitet werden. Die Summe, das Produkt, das arithmetische Mittel und die Reihenfolge der Zahlen, sortiert nach der Größenordnung sind auszugeben.
    Wobei hier schon die erste Frage ist: ist "sortiert nach der Größenordnung" so gemeint, dass die Reihenfolge der 3 Zahlen gemeint ist, oder die Reihenfolge der Summe, des Produktes und des Mittelwerts.


    Dafür soll ich jetzt ein Struktogramm anfertigen, was ich schon gemacht hab. Danach dann den Algorithmus in Java implementieren.
    Bin nur leicht eingerostet in Java und bekomm das garnichtmehr hin.


    Könnt ihr mir helfen?

    Mein Mass Effect 3 "Going for Gold!"-Guide (Letztes Update: 5. Dezember 2012)

  2. #2
    Administrator
    Avatar von stefros
    Registriert seit
    28.07.2001
    Ort
    Hamburg
    Alter
    33
    Beiträge
    62.610
    Name
    Stefan
    Nick
    stefros1983
    Clans
    United-Forum
    Die Größenordnung bezeichnet normalerweise den Exponenten. Also z.b. 1x10^7 ist ne Größenordnung mehr als 1x10^6. In dem Fall reicht´s aber dann einfach sie nach der Größe zu sortieren, da das auf´s Gleiche rausläuft.
    Ich denke das mit der Größenordnung bezieht sich auch nur auf die Reihenfolge.

    Kann dir sonst aber auch nur den Kot sagen, von Java hab ich keine Ahnung.

  3. #3
    also ich hab dir mal die Berechnung inna Main mal runterprogrammiert... is jetzt zwar nicht schön, aber soll ja nur als Einstieg dienen mit Consoleneingabe... oder sollst du es mit Swing machen ?

    ps. die Formatierung geht irgendwie flöten aber sollte auch so verständlich sein^^


    public static void main(String args[]) {
    //Scanner anlegen
    Scanner sc = new Scanner(System.in);
    ArrayList<Integer> zahlen=new ArrayList<Integer>();

    //Zahlen einlesen
    System.out.println("Geben sie nun Zahl1 ein:");
    zahlen.add(sc.nextInt());
    System.out.println("Geben sie nun Zahl2 ein:");
    zahlen.add(sc.nextInt());
    System.out.println("Geben sie nun Zahl3 ein:");
    zahlen.add(sc.nextInt());
    System.out.println("-----------");

    //Sortieren
    Collections.sort(zahlen);


    //Berechnungen
    int summe=0;
    int produkt=1;
    int mitte=0;
    System.out.print("Zahlen: ");
    for(int i=0;i<zahlen.size();i++){
    System.out.print(" " +zahlen.get(i));
    summe=summe+zahlen.get(i);
    produkt=produkt*zahlen.get(i);
    }
    mitte=summe/zahlen.size();

    System.out.println();
    System.out.println("Produkt:"+ produkt+"Summe: "+summe+" Mitte:"+mitte);
    }
    Console:

    Geben sie nun Zahl1 ein:
    10
    Geben sie nun Zahl2 ein:
    0
    Geben sie nun Zahl3 ein:
    5
    -----------
    Zahlen: 0 5 10
    Produkt:0Summe: 15 Mitte:5
    Geändert von blackplague (30.10.2011 um 15:19 Uhr)

  4. #4
    Anti-stefros2
    Avatar von Havoc
    Registriert seit
    19.07.2008
    Ort
    Franken
    Alter
    25
    Beiträge
    12.720
    Name
    Mario
    Nick
    Havoc
    Clans
    Arctical Warfare
    Oha, so lang hatte ich mir den Algorithmus garnicht vorgestellt.

    Danke dafür

    Mein Mass Effect 3 "Going for Gold!"-Guide (Letztes Update: 5. Dezember 2012)

  5. #5
    Anti-stefros2
    Avatar von Havoc
    Registriert seit
    19.07.2008
    Ort
    Franken
    Alter
    25
    Beiträge
    12.720
    Name
    Mario
    Nick
    Havoc
    Clans
    Arctical Warfare
    Muss den Thread hier nochmal ausgraben.
    Als neue Aufgabe habe ich, einen Rekursiven Algorithmus für eine binäre Suche zu verwenden.
    Ich bin aber echt zu blöd, um den einzubauen.
    Könnt mir denn mal jemand helfen?

    Mein Mass Effect 3 "Going for Gold!"-Guide (Letztes Update: 5. Dezember 2012)

  6. #6
    Feldwebel

    Registriert seit
    02.09.2005
    Beiträge
    1.733
    Nick
    [DK]xezon
    c++

    So? Nicht getestet.

    int search(BYTE* binary, BYTE& find, int max, int pos=0)
    {
    if(pos<max && binary[pos]!=find)
    {
    return search(binary, find, max, pos++);
    }
    else
    {
    return pos;
    }
    }

    int _main()
    {
    const int size = 1000;
    BYTE* binary = new BYTE[size];
    // hau ins binary irgendwas rein

    BYTE find = 0xFF;
    int found = search(binary, find, size);
    delete[] binary;

    if(found!=0)
    printf("Da ist es: %i", found);
    else
    printf("nicht gefunden");

    return 0;
    }
    Geändert von xezon (11.12.2011 um 15:38 Uhr)
    Gesperrt bis 30.12.2009, ~03:00 wegen Spam.

  7. #7
    Anti-stefros2
    Avatar von Havoc
    Registriert seit
    19.07.2008
    Ort
    Franken
    Alter
    25
    Beiträge
    12.720
    Name
    Mario
    Nick
    Havoc
    Clans
    Arctical Warfare
    Achja, ich meine natürlich Java!

    Mein Mass Effect 3 "Going for Gold!"-Guide (Letztes Update: 5. Dezember 2012)

  8. #8
    Feldwebel

    Registriert seit
    02.09.2005
    Beiträge
    1.733
    Nick
    [DK]xezon
    ja syntax kannste ja selber transformen. das wird so ähnlich in java machbar sein. Wichtig is nur die Logik. Die haste ja nun.
    Gesperrt bis 30.12.2009, ~03:00 wegen Spam.

  9. #9
    Stabsgefreiter
    Avatar von Cloud Strife
    Registriert seit
    28.02.2008
    Ort
    Norddeutschland
    Alter
    25
    Beiträge
    402
    Nick
    PPnV
    Code:
    import java.util.Scanner;
    
    public class BinaerSuche {
    	public static void main(String[] args){
    		
    		char[] cluster = new char[26];
    		for(int i = 0; i < cluster.length; i++){
    			cluster[i] = (char) (i + 97);
    		}
    		System.out.println("Buchstaben : "+ArrayHelper.toString(cluster));
    		System.out.println();
    		System.out.println("Bitte geben Sie den zusuchenden Buchstaben ein : ");
    		Scanner sc = new Scanner(System.in);
    		char search = sc.next().charAt(0);
    		
    		int helper = binarySearch(cluster, search);
    		if(helper > 0){System.out.println("Das gesuchte Objekt befindet sich an der Stelle " + helper);}
    		else{System.out.println("Das gesuchte Objekt wurde nicht gefunden.");}
    	}
    	
    	public static int binarySearch(char[] cluster, char search){
    		boolean searchSuccesful = false;
    		int start = 0;
    		int end = cluster.length;
    		int help = 0;
    		int middle = 0;
    		  
    		while(searchSuccesful == false && help < cluster.length){
    			middle = (start + end) / 2;
    			if(cluster[middle] == search){
    				searchSuccesful = true;
    			}else{
    				if((int)search < (int)cluster[middle]){
    					end = middle - 1;
    				}else{
    					start = middle + 1;
    				}
    			}
    			help++;
    		}
    		if(searchSuccesful == true){
    			help = middle;
    		}else{help = -1;}
    		return help;
    	}
    }

    Nen Danke wäre nett, falls du was nicht verstehst frag ^^
    Havoc sagt Danke.

  10. #10
    Anti-stefros2
    Avatar von Havoc
    Registriert seit
    19.07.2008
    Ort
    Franken
    Alter
    25
    Beiträge
    12.720
    Name
    Mario
    Nick
    Havoc
    Clans
    Arctical Warfare
    Hast du da gleich eine Art Benutzeroberfläche gemacht?
    Oder warum gibt der da "System out..... (bitte geben sie zu suchende Zahl ein aus?

    Mein Mass Effect 3 "Going for Gold!"-Guide (Letztes Update: 5. Dezember 2012)

  11. #11
    Anti-stefros2
    Avatar von Havoc
    Registriert seit
    19.07.2008
    Ort
    Franken
    Alter
    25
    Beiträge
    12.720
    Name
    Mario
    Nick
    Havoc
    Clans
    Arctical Warfare
    Hast du da gleich eine Art Benutzeroberfläche gemacht?
    Oder warum gibt der da "System out..... (bitte geben sie zu suchende Zahl ein aus?

    Mein Mass Effect 3 "Going for Gold!"-Guide (Letztes Update: 5. Dezember 2012)

  12. #12
    Stabsgefreiter
    Avatar von Cloud Strife
    Registriert seit
    28.02.2008
    Ort
    Norddeutschland
    Alter
    25
    Beiträge
    402
    Nick
    PPnV
    Du meinst den Buchstaben ? War nur als Beispiel gedacht, dass er nen Array binär durchsucht in dem das Alphabet steht

    cluster[i] = (char) (i + 97)
    is der Ascii Code für die Buchstaben

  13. #13
    Unsterblich
    Avatar von CeLeRitY
    Registriert seit
    03.05.2007
    Beiträge
    4.282
    Nick
    CeLeRitY
    Clans
    MMC
    das was cloud strife gemacht hat ist aber ein iterativer algorithmus und kein rekursiver. du wolltest doch nen rekursiven oder ist das egal?

    edit: für einen rekursiven algo schau mal hier:
    http://leepoint.net/notes-java/algor...arysearch.html

  14. #14
    Stabsgefreiter
    Avatar von Cloud Strife
    Registriert seit
    28.02.2008
    Ort
    Norddeutschland
    Alter
    25
    Beiträge
    402
    Nick
    PPnV
    Zitat Zitat von CeLeRitY Beitrag anzeigen
    das was cloud strife gemacht hat ist aber ein iterativer algorithmus und kein rekursiver. du wolltest doch nen rekursiven oder ist das egal?
    upps sry das hatte ich überlesen, dann vergiss meinen code ^^ und um die rekursion zu verstehen, musst du erst die ekursion verstehen ^^

  15. #15
    Feldwebel

    Registriert seit
    02.09.2005
    Beiträge
    1.733
    Nick
    [DK]xezon
    Der Havok is aber schon faul. Kriegt hier Lösungsansätze on mass aber weiß trotzdem nicht weiter :P
    Gesperrt bis 30.12.2009, ~03:00 wegen Spam.

  16. #16
    Stabsfeldwebel
    Avatar von Wilma
    Registriert seit
    02.02.2007
    Ort
    Ruhrpott
    Alter
    37
    Beiträge
    4.065
    Name
    Michael
    Nick
    dp.Mordred
    Clans
    dp.
    ich würde wetten, dass eine google-suche brauchbaren code ohne ende ausspuckt. genau die aufgabenstellung in java gabs bei mir im studium schon vor 10 jahren.

    LOL: http://de.wikipedia.org/wiki/Bin%C3%A4re_Suche#Java

    ach ja, das waren noch zeiten, wo es das nciht als wiki gab^^: http://de.wikipedia.org/wiki/Bin%C3%A4rer_Suchbaum
    www.die-philosoffen.com
    Wir zocken [ZH] [SC2] [EVE] [BF:BC2]
    Mindestalter: 21 Jahre

  17. #17
    Feldwebel

    Registriert seit
    02.09.2005
    Beiträge
    1.733
    Nick
    [DK]xezon
    Vielleicht ist er so schlau und kopiert es 1 zu 1 dann kann ihm der Lehrer gleich ne 6 geben :P
    Gesperrt bis 30.12.2009, ~03:00 wegen Spam.

  18. #18
    Stabsfeldwebel
    Avatar von Wilma
    Registriert seit
    02.02.2007
    Ort
    Ruhrpott
    Alter
    37
    Beiträge
    4.065
    Name
    Michael
    Nick
    dp.Mordred
    Clans
    dp.
    Zitat Zitat von xezon Beitrag anzeigen
    Vielleicht ist er so schlau und kopiert es 1 zu 1 dann kann ihm der Lehrer gleich ne 6 geben :P
    speziell in der softwareentwicklung bietet es sich nicht an, das rad ständig neu zu erfinden.

    aber zum erlernen ist es natürlich schon wichtig auch selbst was zu basteln. und das muss er ja damit auch tun, denn soweit ich es verstanden habe, muss er den algorithmus in sein obiges progrämmchen einbauen.
    www.die-philosoffen.com
    Wir zocken [ZH] [SC2] [EVE] [BF:BC2]
    Mindestalter: 21 Jahre

  19. #19
    Anti-stefros2
    Avatar von Havoc
    Registriert seit
    19.07.2008
    Ort
    Franken
    Alter
    25
    Beiträge
    12.720
    Name
    Mario
    Nick
    Havoc
    Clans
    Arctical Warfare
    Richtig, ich hab schon n Programm, in das ich den Algorithmus einbauen muss.
    Und in dem Fall bin ich nicht zu faul, sondern einfach nur zu blöd. Ich kapier das nämlich einfach nicht, warum ich einen rekursiven Algorithmus machen sollte, wenns doch auch reicht, dass sich ne Methode einfach wiederholt.
    Wenns auch nur ein if ist.

    Zitat Zitat von CeLeRitY Beitrag anzeigen
    das was cloud strife gemacht hat ist aber ein iterativer algorithmus und kein rekursiver. du wolltest doch nen rekursiven oder ist das egal?

    edit: für einen rekursiven algo schau mal hier:
    http://leepoint.net/notes-java/algor...arysearch.html
    Danke dafür

    Edit, moment mal, in dem Fall ist das doch wirklich nur ein billiges if, wie ich oben schon geschrieben hab.

    Mein Mass Effect 3 "Going for Gold!"-Guide (Letztes Update: 5. Dezember 2012)

  20. #20
    Ehrenmember

    Registriert seit
    05.07.2002
    Beiträge
    4.803
    Ich kapier das nämlich einfach nicht, warum ich einen rekursiven Algorithmus machen sollte, wenns doch auch reicht, dass sich ne Methode einfach wiederholt.
    ihr sollt vermutlich binary search benutzen weil es in der Aufgabe um eine geordnete Menge geht, dort hast du den vorteil dass du statt iterativer suche die wesentlich effizientere binaere Suche benutzen kannst.
    vergleich mal die performance der worst/bestcase faelle fuer iterative (O(n)) und binaere suche(O(log n))

+ Antworten

Ähnliche Themen

  1. Java, Javascript und FF
    Von Osbes im Forum Technik Ecke
    Antworten: 8
    Letzter Beitrag: 16.08.2006, 15:16
  2. Antworten: 5
    Letzter Beitrag: 07.08.2005, 21:02
  3. Mozilla FireFox + Java
    Von Tzunami im Forum Technik Ecke
    Antworten: 4
    Letzter Beitrag: 24.06.2005, 18:35
  4. java prob mit xp??
    Von sunowner im Forum Technik Ecke
    Antworten: 4
    Letzter Beitrag: 25.07.2003, 09:39
  5. java virtual machine ?
    Von l3eowolf im Forum Technik Ecke
    Antworten: 4
    Letzter Beitrag: 08.09.2002, 14:01

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •