# Dividieren in Java



## UrbanNinja (21. Mai 2008)

Hi Leute!

Im Informatikunterricht fangen wir in der nächsten Unterrichtsstunde damit an, "Ulams Problem" in Java darzustellen, wir haben bisher einen Ticketautomaten programmiert (natürlich ohne GUI), wohl nach dem Buch "Java programmieren mit BlueJ", da wir einen Ticketautomaten als Projekt programmiert haben, alles unter der BlueJ-Benutzeroberfläche.


Ich komm mal zum Punkt:

Bei Ulams Problem geht es darum, dass
- eine Startzahl beliebig ausgewählt wird.
- ist sie gerade, wird durch 2 dividiert,
- ist sie UNgerade, wird sie mit 3 multipliziert und 1 addiert

Das sollen wir in Java realisieren.

---
Wie man dividiert, weiß ich nicht, aber den Restwert einer Rechnung anzuzeigen, wäre mir momentan mit meinen momentanen "Java-Kenntnissen" :lol: möglich.

Modolo = bsp. der Rest der Rechnung 20:7, was ja in Java mit "%" dargestellt wird.
20%7 wäre also 6, da ja nach der Rechnung 6 "übrig bleibt".
---

Außerdem sollen wir diesmal noch eine while-Bedingung einbauen

---

Frage: was genau bewirkt "static" in der Syntax, welches ja in einer Methode vorkommen kann genau?
Wär super, wenn mir das jemand erklären könnte.


Hier mein Ansatz:


```
/**
 * Java-Projekt zu "Ulams Problem"
 * 
 * @author UrbanNinja!
 * @version 0.1
 */

public class Ulam
{

    private int ...
    private int ...
    private int ...     }
    
public Ulam() 
{
wert = 0;     }

if(wert%2=0)
{   ...
    ...     }

}
```

Noch eine Frage: zumindest in CSS (das einziste, was ich außer Java an Sprachen (MarkUp language) drauf hab), ist es ja so, dass Hinweise so geschrieben werden

```
/* Hinweis */
```

In Java ist das angeblich aber allerdings so:

```
/** Hinweis */
```

Kann man den zweiten Stern in der Syntax weglassen?
Wie ist das da?
---


Danke!


----------



## 0x7F800000 (21. Mai 2008)

0)    google: "galileo openbook java insel" oder einfach mal hier klicken
1) Dividieren ist in Java äußerst seltsam: merkwürdigerweise verwendet man dazu den Divisionsoperator "/"...

```
c=a/b;
```

2) Wozu erzählst du all den leuten hier was der modulo operator bewirkt?

3) Über Schleifen steht genug in der insel, wahrscheinlich auch in der wikipedia, auf 100000 seiten die der google unmittelbar findet...

4) static kann nicht "in einer methode vorkommen". Nicht im methodenrumpf zumindest. 
 "static" kann bei der deklaration von methoden, inneren kalssen, inneren interfaces, und natürlich variablen verwendet werden. Wenn etwas mit static deklariert wird, dann bezieht sich die deklaration auf die gesamte klasse und nicht auf einzelne objekte, also instanzen der klasse. Um zB. statisch deklarierte methoden aufzurufen benötigt man keine konkrete Instanz, so wie es etwa bei der Math-Klasse ist, die niemals instanziiert wird.

5)"Ansatz"?
-Zum einen ist es schon mal unsinnig geklammert, da schweben irgendwelche "Konstruktoren" und anweisungen im leeren raum herum...

-Konstruktor? Wozu das bitte? Was willst du denn da großartig konstruieren??

-Javadoc kommentar? Bist du dir sicher dass dieses sogenannte "Projekt" dokumentiert werden muss? Das Programm hat gerade mal die Komplexität von hello-world, da brauchst du keine member-variablen, keine Konstruktoren und definitiv keine breite javadoc kommentare. 

5) 

```
//ein einzeiler-kommentar, alles bis zum ende der zeile wird auskommentiert
/*  gewöhnliches mehrzeiliges kommentar, genauso wie bei css */
/** javadoc commentar, für helloworld definitiv overkill. Nuklearwaffen gegen Schnabeltiere */


//die struktur des helloworld programms sieht gewöhnlich etwa so aus:
public class Ulam {
public static void main(String[] args){
	long x=12345;
	while(x!=1){
		x=(x%2==0)?(x/2):(3*x+1);
		System.out.print(" "+x);
	}
}
}
```

Les dir mal irgendein Tutorial oder ein Buch zu java Grundlagen durch, mit so etwas darf es einfach keine probleme geben, weil alle unklarheiten augenblicklich verschwinden, wenn man die ersten 3 seiten eines beliebigen buches zu java durchgeblättert hat. :toll: 

good luck have fun :###  :###  :###


----------



## UrbanNinja (21. Mai 2008)

Ja, bin ja auch ein blutiger Anfänger und dass es in der Deklaration der Methode "vorkommen" kann, meinte ich ja. 

Dann hätt ich noch eine Frage: wo ist der Unterschied zwischen einem Kommentar und einem Javadoc-Kommentar? 

Ist das die Dokumentation dazu bzw. steht es dann darin?



Ich hab gesehen, dass bei der Standardvorgabe von BlueJ die Metatags im Javadoc-Kommentar stehen, ist das dafür, dass Code/Java-Syntax auch im Kommentar ausgelesen wird?


----------



## Gelöschtes Mitglied 5909 (21. Mai 2008)

Javadoc Kommentare sind für den Javadoc Generator, der daraus hübsche html seiten generiert wie in der standard API

Normale kommentare sind da nicht drin

http://java.sun.com/javase/6/docs/api/index.html


----------

