Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Kaos

Lesen, denken, flamen!

  • "Kaos" is male

Posts: 973

Date of registration: Oct 16th 2005

Location: Han. / Vahrenwald Sinnvolle Beiträge: 7

21

Monday, May 7th 2007, 10:02pm

Quoted

Original von nemo
jemand ne Pm für mich? :(


Wenn du ne PM mit ner Lösung willst, dann würd ich sagen Hut ab, sich so spät um den Mist zu kümmern ist schon ziemlich mutig. Ich wünsch dir mal kein Glück.

Wenn du was anderes haben willst, solltest du deine Frage eventuell etwas genauer stellen. So ist sie doch etwas zu ungenau. Vielleicht ein kleines Stichwort mehr... Eventuell wieso du ne PM haben willst.

Da fällt mir auch gerade ein: Wenn du nur einen PM-Freund suchst, solltest du das eventuell im Smalltalk-Forum versuchen. Ansonsten fällt mir nicht ein, was dein Beitrag bedeuten könnte.

Kaos

Quoted

Man findet immer dort besonders viel Chaos, wo man nach Ordnung sucht. Das Chaos besiegt die Ordnung, weil es besser organisiert ist.

This post has been edited 1 times, last edit by "Kaos" (May 7th 2007, 10:03pm)


nemo

Praktikant

Posts: 5

Date of registration: Apr 26th 2007

22

Monday, May 7th 2007, 11:46pm

Mensch, ich wollte doch nur mal Stimmung machen :)

This post has been edited 1 times, last edit by "nemo" (May 8th 2007, 11:18am)


AnyKey

Erfahrener Schreiberling

Posts: 451

Date of registration: Dec 11th 2001

Location: H-Town

Occupation: Student

23

Tuesday, May 8th 2007, 10:43am

Quoted

Original von nemo
jemand ne Pm für mich? :(


Ein Verb hätte diesen Wörtern auch ganz gut getan. ;)

Ansonsten: Dieser Satz kein Verb.

"Der Mensch braucht Schubladen." -- Any Key

migu

free rider

  • "migu" is male

Posts: 2,643

Date of registration: Dec 11th 2001

Occupation: Developer

24

Tuesday, May 8th 2007, 11:00am

Quoted

Original von nemo
Mensch wollte doch nur mal Stimmung machen :)
Etwa alle Menschen? Also ich sicherlich nicht!
tar: Anlegen eines leeren Archivs wird feige verweigert.

nemo

Praktikant

Posts: 5

Date of registration: Apr 26th 2007

25

Tuesday, May 8th 2007, 11:15am

Korinthenkacker.

nemo

Praktikant

Posts: 5

Date of registration: Apr 26th 2007

26

Tuesday, May 8th 2007, 11:24am

Quoted

Original von Kaos

Quoted

Original von nemo
jemand ne Pm für mich? :(


Wenn du ne PM mit ner Lösung willst, dann würd ich sagen Hut ab, sich so spät um den Mist zu kümmern ist schon ziemlich mutig. Ich wünsch dir mal kein Glück.

Kaos


Ne' Lösung im Forum? HALLO!!!!

Crawler

Praktikant

  • "Crawler" is male

Posts: 16

Date of registration: Jul 7th 2006

Location: Seelze / Osterode am Harz

Occupation: Informatik ab WS 2006/07

27

Tuesday, May 8th 2007, 12:17pm

also so schwer fand ichs jetz auch net auch wenn ich den Lösungshinweis erst übersehen hatte und es mit String Operationen gemacht hab :D
20V Turbo alles andere is Schnickschnack! ;)

Neutrino

masselos

  • "Neutrino" is male

Posts: 661

Date of registration: Oct 6th 2005

Location: Hannover

Occupation: SRA Mitarbeiter

28

Tuesday, May 8th 2007, 12:44pm

Quoted

Original von nemo
Mensch, ich wollte doch nur mal Stimmung machen :)


Das hat ja gut geklappt....

  • "Schokoholic" is male

Posts: 2,518

Date of registration: Oct 4th 2006

Location: Hannover

Occupation: Haarspaltung

29

Tuesday, May 8th 2007, 1:54pm

Quoted

Original von nemo
Ne' Lösung im Forum? HALLO!!!!

*zurückruf* Hallo! *wink*

Um die Korinthenkackerei um diese sinnfreie Diskussion mal fortzusetzen: Sicher ist es nur verboten eine Lösung für alle zugänglich zu Posten. Auf PN bezieht sich das eher nicht, oder? ;)

Btw, toller Thread. Alles nur wegen einem Kleinstpost mit Rechtschreibfehler :D

edit: +1 Post

This post has been edited 1 times, last edit by "Schokoholic" (May 8th 2007, 1:55pm)


AnyKey

Erfahrener Schreiberling

Posts: 451

Date of registration: Dec 11th 2001

Location: H-Town

Occupation: Student

30

Tuesday, May 8th 2007, 4:36pm

kann man eigentlich nach dem Abgabetermin eine Lösung posten?

"Der Mensch braucht Schubladen." -- Any Key

L A C K Y

Praktikant

  • "L A C K Y" is male

Posts: 6

Date of registration: Jan 10th 2007

Location: Celle

31

Tuesday, May 8th 2007, 5:05pm

Source 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class CrazyCounter
{
	public static void main(String[] args)
	{
		for(int counter = 1; counter <= 10000; counter++)
		{
			boolean m_isMulFive = isMulFive(counter);
			boolean m_isBitSet = isBitSet(counter);
			boolean m_isHexA = isHexA(counter);
			if (m_isMulFive || m_isBitSet || m_isHexA)
			{
				System.out.printf("%d ->",counter);
				if(m_isMulFive)
					System.out.printf("5x ");
				if(m_isBitSet)
					System.out.printf("10000 ");
				if(m_isHexA)
					System.out.printf("A ");
				System.out.printf("\t\thex: %s - bin: %s",Integer.toHexString(counter),Integer.toBinaryString(counter)); // Ausgabe der Hex und Bin Zahlen
				System.out.printf("\n");
			}
		}
	}
	
	public static boolean isMulFive(int x)
	{
		if(x%5 == 0)		//Modulo 5 ist beim Ergebnis 0 immer ein vielfaches
			return true;
		return false;
	}
	
	public static boolean isBitSet(int x)
	{
		if ((x & 16) > 0)	// 16 = 10000 -> x wird mit 10000 Maskiert und falls an der 5ten stelle eine 1 ist, dann ist das Erg >0 ansonsten immer 0
			return true;
		return false;
	}
	public static boolean isHexA(int x)
	{
		//A = 1010 = 10
		while(x > 0)
		{
			if((x & 15) == 10)	//die ersten 4 stellen werden gefiltert und auf 10-dec = a-hex verglichen
				return true;
			x = x >> 4;			//die Zahl x wird um 4 nach links geshiftet um die nächste Position auf ein a-hex zu vergleichen
		}
		return false;
	}
}



so habe ich das Problem gelöst, quasi mit shiften und Bitverknüpfungen..

Gruss Lacky

PS. ich hoffe nach der Abgebefrist ist das Posten der Lösungen erlaubt :)

This post has been edited 1 times, last edit by "L A C K Y" (May 8th 2007, 5:06pm)


AnyKey

Erfahrener Schreiberling

Posts: 451

Date of registration: Dec 11th 2001

Location: H-Town

Occupation: Student

32

Wednesday, May 9th 2007, 10:37am

:) Freut mich das eine Lösung gepostet wurde, sehr mutig.
Den Sinn des Programms habe ich mir noch nicht angeschaut, ich habe aber
auf einen ersten Blick folgende Stil-Verbesserungsvorschläge:
  • 80 Zeichen Zeilenlänge
  • Klammern bei if, auch wenn's nur ein Statement ist.
  • public class CrazyCounter
  • Wieso static Methoden?


Ich würde dann noch die main-Methode ans Ende der Datei stellen und die Klammern anders setzte (in die gleiche Zeile).

Ich hab mir das mal kopiert und finde mit Checkstyle ( http://checkstyle.sourceforge.net/ das ist auch in eclipse integriert) 52 "Probleme". Wenn man die behebt, kommt ungefähr folgendes raus (7 "Probleme" bleiben, davon 6 als "magic number" und der Parameter in isHexA() kann nicht final sein, weil du ihn in der Methode veränderst.):

Source 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/**
 * Ein verrueckter Zaehler, der von 1 bis 10000 zaehlt.
 */
public final class CrazyCounter {

    /**
     * Ein CrazyCounter.
     */
    private CrazyCounter() {

    }
    /**
     * Ueberprueft ...
     * @param x der zu ueberpruefende Wert.
     * @return true, wenn ..., false sonst.
     */
    public static boolean isMulFive(final int x) {
        // Modulo 5 ist beim Ergebnis 0 immer ein vielfaches
        if (x % 5 == 0) {
            return true;
        }
        return false;
    }

    /**
     * Ueberprueft ...
     * @param x der zu ueberpruefende Wert.
     * @return true, wenn ..., false sonst.
     */
    public static boolean isBitSet(final int x) {
        // 16 = 10000 -> x wird mit 10000 Maskiert und falls
        // an der 5ten stelle eine 1 ist, dann ist das Erg
        // >0 ansonsten immer 0
        if ((x & 16) > 0) {
            return true;
        }
        return false;
    }

    /**
     * Ueberprueft ...
     * @param x der zu ueberpruefende wert.
     * @return true, wenn ..., false sonst.
     */
    public static boolean isHexA(int x) {
        // A = 1010 = 10
        while (x > 0) {
            if ((x & 15) == 10) {
                // die ersten 4 stellen werden gefiltert und auf
                // 10-dec = a-hex verglichen
                return true;
            }
            // die Zahl x wird um 4 nach links geshiftet um die
            // nächste Position auf ein a-hex zu vergleichen
            x = x >> 4;
        }
        return false;
    }

    /**
     * Die main-Methode.
     * @param args wird nicht benutzt.
     */
    public static void main(final String[] args) {

        for (int counter = 1; counter <= 10000; counter++) {
            boolean isMulFive = isMulFive(counter);
            boolean isBitSet = isBitSet(counter);
            boolean isHexA = isHexA(counter);

            if (isMulFive || isBitSet || isHexA) {
                System.out.printf("%d ->", counter);
                if (isMulFive) {
                    System.out.printf("5x ");
                }
                if (isBitSet) {
                    System.out.printf("10000 ");
                }
                if (isHexA) {
                    System.out.printf("A ");
                }
                // Ausgabe der Hex und Bin Zahlen
                System.out.printf("\t\thex: %s - bin: %s", Integer
                        .toHexString(counter), Integer.toBinaryString(counter));
                System.out.printf("\n");
            }
        }
    }
}


Ich finde so kann man den Code schon besser lesen. Oder?
Alle Vorschläge sind natürlich konstruktiv gemeint.

Schönen Tag noch und viel Spass am Gerät :)


edit:
Ich würde dann noch den Konstrukror public machen, bei allen Methoden (bis auf die main-Methode) das static weg nehmen und in main eine Instanz erstellen und die Methoden dann aufrufen:

Source code

1
2
3
4
5
6
7
8
9
    public static void main(final String[] args) {

        CrazyCounter crazyCounter = new CrazyCounter();

        for (int counter = 1; counter <= 10000; counter++) {
            boolean isMulFive = crazyCounter.isMulFive(counter);
            boolean isBitSet = crazyCounter.isBitSet(counter);
            boolean isHexA = crazyCounter.isHexA(counter);
         ...


Wenn du den zu überprüfenden Wert kopierst, dann umgehst du auch das Problem, dass dein Parameter nicht final sein kann:

Source code

1
2
3
    public boolean isHexA(final int toCheck) {
        // A = 1010 = 10
        int x = toCheck;

"Der Mensch braucht Schubladen." -- Any Key

This post has been edited 1 times, last edit by "AnyKey" (May 9th 2007, 10:50am)


Kaos

Lesen, denken, flamen!

  • "Kaos" is male

Posts: 973

Date of registration: Oct 16th 2005

Location: Han. / Vahrenwald Sinnvolle Beiträge: 7

33

Wednesday, May 9th 2007, 1:04pm

Du nimmst statische Methoden, weil du sie ansonsten nicht aus der Main aufrufen kannst. ->n Die Main ist statisch. Sollen die Methoden nicht static sein, müsstest du Objekte erzeugen und das war nicht Sinn der Aufgabe.

Quoted

Man findet immer dort besonders viel Chaos, wo man nach Ordnung sucht. Das Chaos besiegt die Ordnung, weil es besser organisiert ist.

AnyKey

Erfahrener Schreiberling

Posts: 451

Date of registration: Dec 11th 2001

Location: H-Town

Occupation: Student

34

Wednesday, May 9th 2007, 2:07pm

Ja genau, das hab ich ja dann noch rein editiert :D

"Der Mensch braucht Schubladen." -- Any Key

Brainbug

Alter Hase

  • "Brainbug" is male

Posts: 150

Date of registration: Oct 6th 2002

Location: Hannover (Nordstadt)

Occupation: Hausmann

35

Wednesday, May 9th 2007, 3:47pm

Stimmung

Hallo,

finde den Thread hier super. Ihr habt ja richtig kreative Ideen. Eigentlich wollte ich meine Lösung posten, aber ich warte damit nochmal.

Der Lösungvorschlag für eine Methode hexDigitsContainA(int number), den ich nach einer Idee von Herrn Dr. Becker erstellt habe, hat nur 12 Zeilen und verwendet dabei kein Bit-Shift. (Diese Methode entscheidet, ob in der Hex-Darstellung des angegebenen Wertes ein A vorkommt.)

Lars

PS: Lösungsvorschläge für alle Übungen erscheinen gegen Ende des Semesters auf der Website.

This post has been edited 4 times, last edit by "Brainbug" (May 9th 2007, 3:52pm)


Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

36

Wednesday, May 9th 2007, 11:01pm

Quoted

Ich würde dann noch die main-Methode ans Ende der Datei stellen und die Klammern anders setzte (in die gleiche Zeile).


Die Klammerdiskussion habe ich die letzten Tage auch geführt respektive führen müssen. Ich persönlich bevorzuge die geschweifte Klammer in der nächsten Zeile, wie LACKY das gemacht hat, weil das für mich übersichtlicher ist (besonders bei vergessenen geschweiften Klammern). In den Java Code Convention ist darüber nichts zu finden, in den Beispielen werden allerdings die Klammern auch an das Ende gesetzt. Und beim SE XP Projekt wurde das auch so empfohlen wurde mir gesagt, dennoch stellt sich mir die Frage: Was spricht gegen '{' in die nächste Zeile? Die Übersicht kann's ja wohl nicht sein? (: Comments?
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...

Benjamin

Segelnder Alter Hase

  • "Benjamin" is male

Posts: 3,827

Date of registration: Oct 1st 2002

Location: Region Hannover

Occupation: Alumni

37

Wednesday, May 9th 2007, 11:05pm

Quoted

Original von Markus
Was spricht gegen '{' in die nächste Zeile? Die Übersicht kann's ja wohl nicht sein? (: Comments?


Na irgendwann hat Übersicht auch ihre Grenzen und es wird unleserlich, allein schon, weil nichts mehr auf eine Folie/Bildschirmseite passt. Hingegen sieht man bei der passend eingerückten '}' in einer eigenen Zeile genau, was diese Klammer abschließt, ob nun eine Methodenrumpf, eine Schleife, ...
Es gibt nur eine bessere Sache als auf dem Wasser zu sein: Noch mehr auf dem Wasser sein.

Brainbug

Alter Hase

  • "Brainbug" is male

Posts: 150

Date of registration: Oct 6th 2002

Location: Hannover (Nordstadt)

Occupation: Hausmann

38

Wednesday, May 9th 2007, 11:14pm

Standards

http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

Dieser Standard beendet alle Formatierung-Diskussionen. Man kann sich dran halten oder nicht. Aber in den meisten Firmen und Projekten wird dieser Standard einfach vorgegeben und basta.

Benjamin

Segelnder Alter Hase

  • "Benjamin" is male

Posts: 3,827

Date of registration: Oct 1st 2002

Location: Region Hannover

Occupation: Alumni

39

Wednesday, May 9th 2007, 11:17pm

RE: Standards

Quoted

Original von Brainbug
Dieser Standard beendet alle Formatierung-Diskussionen. Man kann sich dran halten oder nicht. Aber in den meisten Firmen und Projekten wird dieser Standard einfach vorgegeben und basta.


Hm? Man kann aber auch eigene Code Conventions haben! Nur peinlich, wenn man sie in einem Dokument festhält und sich selbst nicht dran hält. Z. B. bei einem SWP kann das dann peinlich und beim Nachbessern mühsam werden :D
Es gibt nur eine bessere Sache als auf dem Wasser zu sein: Noch mehr auf dem Wasser sein.

smeyer82

Alter Hase

  • "smeyer82" is male

Posts: 372

Date of registration: Oct 14th 2002

Location: Ex-Kanzlerstadt Hannover

40

Wednesday, May 9th 2007, 11:35pm

Ich habe von Leuten gehört, die einen C-Programmiere damit beauftragt haben, Code-Conventions für Java zu entwerfen. Komplett merkwürdig... ;)
"Sir! We are surrounded!" - "Excellent! We can attack in any direction!"