Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Umrechnung (http://www.informatikerboard.de/board/thread.php?threadid=2027)
Geschrieben von neuling96 am 27.12.2014 um 05:19:
Umrechnung
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
|
public class Umrechnung {
public static int [] umrechen( int sekunden){
int [] a = new int [3];
a[0]=sekunden/3600;
a[1]=(sekunden%3600)/60;
a[2]=((sekunden%3600)%60);
return a;
}
|
|
ich weiß nicht wie man eine main methode erstellt
b)
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
|
public class Umrechung2 {
private int sekunden;
public Umrechung(int sekunden) {
this.sekunden= sekunden;
}
public umrechung() {
int x= sekunden/3600;
int y= (sekunden%3600)/60;
int z=((sekunden%3600)%60);
return x*h+y*min+z*sec;
}
} |
|
b) wäre hier die einführung von string sinnvoll?
Geschrieben von neuling96 am 27.12.2014 um 05:47:
hatte die datei vergessen
Geschrieben von eulerscheZahl am 27.12.2014 um 08:05:
Bei a) ist die Klasse selbst auch static.
Bei b) hat der Konstruktor den falschen Namen und umrechnung() gibt etwas zurück, ohne einen Rückgabetyp zu definieren. Außerdem existieren h, min und sec nicht.
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
public static void main(String[]args)
{
System.out.print("Anzahl von Sekunden eingeben: ");
Scanner scanner = new Scanner(System.in);
int sekunden = scanner.nextInt();
int[] zeit = Umrechnung.umrechnen(sekunden);
System.out.print(sekunden + " Sekunden ergeben ");
System.out.print(zeit[0] > 1 ? zeit[0] + " Stunden " : (zeit[0] == 1 ? " 1 Stunde " : ""));
System.out.print(zeit[1] > 1 ? zeit[1] + " Minuten " : (zeit[1] == 1 ? " 1 Minute " : ""));
System.out.print(zeit[2] > 1 ? zeit[2] + " Sekunden " : (zeit[2] == 1 ? " 1 Sekunde " : ""));
} |
|
| code: |
1:
2:
3:
4:
5:
|
public static class Umrechnung { //static ergänzt
public static int[] umrechnen(int sekunden) {
return new int[] { sekunden/3600, (sekunden%3600)/60, sekunden%60 };
}
} |
|
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
|
public class Umrechnung2 {
private int sekunden;
private int minuten;
private int stunden;
public Umrechnung2(int sekunden) {
this.stunden = sekunden / 3600;
this.minuten = (sekunden % 3600) / 60;
this.sekunden = sekunden % 60;
}
@Override
public String toString() {
return "...";
}
} |
|
Geschrieben von neuling96 am 27.12.2014 um 08:34:
public class Umrechung2 {
private int sekunden;
public Umrechung2(int sekunden) {
this.sekunden= sekunden;
}
public void umrechung() {
int x=0;
int y=0;
int z=0;
x= sekunden/3600;
y= (sekunden%3600)/60;
z=((sekunden%3600)%60);
return x*h+y*min+z*sec;
}
}
im return bereich habe ja ein mix aus int und char return x*h+y*min+z*sec
deshalb
void
da der Typ der Daten nicht angegeben ist
ist damit alles richtig gelöst?
Geschrieben von eulerscheZahl am 27.12.2014 um 08:37:
Wo ist da ein char? Und nein, nichts ist gelöst, der Code kompiliert nicht mal. Wenn eine Funktion void ist, darfst du kein return mit einem Argument verwenden.
Geschrieben von neuling96 am 27.12.2014 um 08:53:
public class Umrechung2 {
private int sekunden;
public Umrechung2(int sekunden) {
this.sekunden= sekunden;
}
public umrechung() {
int x= sekunden/3600;
int y= (sekunden%3600)/60;
int z=((sekunden%3600)%60);
}
}
ich möchte jetzt x*h+y*min+z*sec haben
d.h ich muss ein public string methode erstellen?
Geschrieben von eulerscheZahl am 27.12.2014 um 08:56:
Ach, du willst einen String zurückgeben?
Dann solltest du das Java (und mir) durch implizite oder explizite Typumwandlung klarmachen.
| code: |
1:
2:
3:
4:
|
public String umrechnung(int sekunden) {
//...
return x + " Stunden " + y + " Minuten" + z + " Sekunden";
} |
|
Geschrieben von neuling96 am 27.12.2014 um 09:01:
public String umrechnung(int sekunden) {
int x= sekunden/3600;
int y= (sekunden%3600)/60;
int z=((sekunden%3600)%60);
x= (string) x;
y=(string) y;
z= (string) z;
return x + " Stunden " + y + " Minuten" + z + " Sekunden";
}
ich hoffe ich die typumwandlung richtig gemacht
Geschrieben von neuling96 am 27.12.2014 um 09:02:
wenn ich im cmd
javac Umrechnung2.java
eingebe, erhalte ich das die datei nicht gefunden würde (ich hab dein code benutz)
Geschrieben von eulerscheZahl am 27.12.2014 um 09:06:
Nein.
Mit
int x legst du fest, dass x ein int ist und es auch immer sein wird.
x= (string) x; geht also nicht. Im übrigen wird String groß geschrieben.
Bei
return x + " Stunden " + y + " Minuten" + z + " Sekunden"; wird eine implizite Typumwandlung durchgeführt: int + String = String. Explizit geht das mit
String.valueOf(int).
Warum nicht einfach so:
| code: |
1:
2:
3:
4:
5:
6:
|
public String umrechnung(int sekunden) {
int x= sekunden/3600;
int y= (sekunden%3600)/60;
int z=sekunden%60;
return x + " Stunden " + y + " Minuten " + z + " Sekunden";
} |
|
Geschrieben von neuling96 am 27.12.2014 um 09:15:
public String umrechnung(int sekunden)
wann darf im rumpf nichts stehen?
public String umrechnung()
Geschrieben von eulerscheZahl am 27.12.2014 um 09:27:
Ich verstehe die Frage nicht.
Und zum Teil mit cmd: Screenshot von Terminal und Explorer wären hilfreich.
Geschrieben von neuling96 am 27.12.2014 um 09:50:
ob das auch ginge
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
|
public String umrechnung() {
int x= sekunden/3600;
int y= (sekunden%3600)/60;
int z=sekunden%60;
return x + " Stunden " + y + " Minuten " + z + " Sekunden";
}
|
|
Geschrieben von eulerscheZahl am 27.12.2014 um 09:58:
Das ist nicht der Rumpf
| code: |
1:
2:
3:
|
modifier(public/private/protected/static/...) Rückgabetyp(int/double/String/void/...) Funktionsname (Argumententyp(int/double/...) Argumentname) {
Rumpf
} |
|
wenn du die Variable sekunden verwenden willst, müssen die irgendwo definiert sein. Das hast du im Konstruktor erledigt, es geht also. Ist aber nicht das, was du tun sollst. (siehe meinen Beitrag von 8:05 Uhr).
Wenn du jetzt in cmd "dir" eingibst, wird die Datei Umrechnung2.java dort nicht zu finden sein, habe ich Recht? Du musst in den passenden Ordner wechseln.
Geschrieben von neuling96 am 27.12.2014 um 10:14:
das macht nicht das gleiche
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
|
public class Umrechnung2 {
private int sekunden;
private int minuten;
private int stunden;
public Umrechnung2(int sekunden) {
this.stunden = sekunden / 3600;
this.minuten = (sekunden % 3600) / 60;
this.sekunden = sekunden % 60;
}
@Override
public String toString() {
return "...";
}
} |
|
wie das?
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
|
public class Umrechnung2 {
private int sekunden;
public Umrechung(int sekunden) {
this.sekunden= sekunden;
}
public String umrechnung() {
int x= sekunden/3600;
int y= (sekunden%3600)/60;
int z=sekunden%60;
return x + " Stunden " + y + " Minuten " + z + " Sekunden";
}
|
|
ja hattest recht
Forensoftware: Burning Board, entwickelt von WoltLab GmbH