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 unglücklich
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