Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Sortieren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Sortieren
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
InformatikJava12
unregistriert
Sortieren Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,
es geht um folgende Aufgabe

Schreiben Sie ein Programm in Java, welches drei Zahlen einliest und diese anschließend in sortierter Reihenfolge ausgibt. Verwenden Sie dazu bedingte Verzweigungen. Die drei Variablen selbst dürfen nur mit den entsprechenden Werten initialisiert und anschließend nicht mehr verändert werden (verwenden Sie bei der Deklarierung das Schlüsselwort final). Zusätzliche Variablen sind ebenfalls nicht erlaubt!

Das Einlesen müsste kein Problem sein. Da nichts angeben ist würde ich die 3 Variablen als double einlesen lassen. Wie ist dann die Idee. Ich würde normalerweise immer die eine Zahl mit der anderen vergleichen aber dazu bräuchte ich doch eine neue Variable. Wie kann ich das umgehen?
06.11.2017 11:34
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo!

Wie ist denn z. B. die korrekte Reihenfolge, wenn die Bedingung
code:
1:
(a < b && b < c)
erfüllt wäre? Könntest Du auch für die anderen möglichen Reihenfolgen Bedingungen formulieren? Wieviele Reihenfolgen (Permutationen) gibt es denn bei 3 Zahlen?

Gruß
Marco
06.11.2017 13:39 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
InformatikJava12
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von as_string
Hallo!

Wie ist denn z. B. die korrekte Reihenfolge, wenn die Bedingung
code:
1:
(a < b && b < c)
erfüllt wäre?
Marco


Die Reihenfolge wäre dann a,b,c.
Es gäbe 3!=6 Permutationen.

Dein Beispiel würde ich dann mit der if-Bedingung implementieren:
Also
code:
1:
2:
3:
if(a < b && b < c) {
    System.out.println(a + b +c);
}

oder?

[as_string: ich hab noch code-Tags um den Quelltext gemacht und etwas eingerückt, so ist es besser lesbar, ist das so OK?]
06.11.2017 15:43
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Genau. Ich würde zwar die Ausgabe vielleicht noch etwas überarbeiten, aber prinzipiell genau so. Ich würde einfach mit if.. else if ... else if ... etc. alle 6 Fälle abfrühstücken und gut ist, oder?

Gruß
Marco

PS: Da a, b und c ja Zahlen sind, wird Deine Ausgabe die Summe aus allen ausgeben (wenn überhaupt ein String draus wird und das nicht gleich einen Syntaxfehler ergibt?) Das musst Du noch anders machen, weil die Summe ja auch immer dieselbe wäre...
06.11.2017 16:48 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
InformatikJava12
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Dankeschön Daumen hoch smile
D.h als Ausgabe muss ich schreiben.
System.out.println("a" + "b"+"c") oder?
06.11.2017 23:21
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

So konkatinierst Du nur die Strings "a", "b" und "c" zu "abc". Du willst doch aber die Zahlen ausgeben, also die Zahlenwerte von a, b und c zu Strings wandeln und diese eventuell noch mit Kommata getrennt o. ä. ausgeben, oder?
Im Zweifelsfall: Probiers doch einfach aus! Schreib das Programm und schau Dir an, was es ausgibt!

Gruß
Marco
06.11.2017 23:26 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
InformatikJava12
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

D.h ich mach es fallspezifisch. Also für den Fall: a>b, b>c
Dann also system.out.println(c);
Sy......(b);
Sy......(a);
In jedem Fall dann anders. Geht das so?
07.11.2017 09:02
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Probiers doch einfach mal aus. Compiliert der Code? Macht er, was er soll?

Gruß
Marco
07.11.2017 14:55 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
InformatikJava12
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
import java.io.*;
 public class Sotierer {
 public static void main( String[] args) throws IOException{
 final int x,y,z; 
BufferedReader ein = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Gib eine Zahl ein");
 x= Integer.parseInt(ein.readLine()); 
System.out.println("Gib noch eine Zahl ein");
 y= Integer.parseInt(ein.readLine()); 
System.out.println("Gib noch eine Zahl ein");
 z= Integer.parseInt(ein.readLine());
 if(x < y && y < z) {
 System.out.println(x); 
System.out.println(y);
 System.out.println(z); }
 else if( x < z && z < y) {
 System.out.println(x);
 System.out.println(z);
 System.out.println(y); }
 else if( y<z && z<x) {
 System.out.println(y);
 System.out.println(z);
 System.out.println(x); }
 else if( y < x && x < z) {
 System.out.println(y);
 System.out.println(x);
 System.out.println(z); }
 else if( z < x && x < y) {
 System.out.println(z);
 System.out.println(x);
 System.out.println(y); }
 else if( z < y && y < x) { 
System.out.println(z);
 System.out.println(y); 
System.out.println(x); } } }


So habe ich das gemacht. Kann man das optimieren?
07.11.2017 20:20
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Sortieren