Hi,

crossSum again...

Here my implementation that now even runs for negative numbers... ;-)
- and comes with pre-/postconditions and some tests.

Attachment: crossSumBase.1.cs
Description: Binary data


I posted it also on Mantis, so maybe it might get even included in an image >= 3.9 at sometime.

Cheers,

Markus

p.s. I also implemented an example to visually compare the outcome with the colormap from http://mathworld.wolfram.com/DigitSum.html (and run all the pre- and post-conditions on the way...)

        | aForm aWheel maxNumber maxBase |
        maxNumber := 100.
        maxBase := 100.
        aForm := Form extent: (maxBase+1) @ (maxNumber+1) depth: Display depth.
        aWheel := Color wheel: ((maxNumber ln / maxBase ln) * maxBase)
                                        saturation: 1.0
                                        brightness: 1.0.
        2
                to: maxBase
                do: [:aBase | 1
                                to: maxNumber
                                do: [:aNumber |
                                        aForm
                                                colorAt: aNumber @ (maxBase - 
aBase)
                                                put: (aWheel at: (aNumber 
crossSumBase: aBase))]].
        (aForm scaledToSize: [EMAIL PROTECTED]) display

Resulting pic of this code looks like:

PNG image


Legend: As I understand the mathematica legend, the base should the x, and the number the y.

Bizarre thing is, that I had to swap x and y coordinates to reproduce the result, anybody any ideas why?
I assume that
        Form >> colorAt: [EMAIL PROTECTED] put: aColor
is the way to use Forms and not
        Form >> colorAt: [EMAIL PROTECTED] put: aColor

So is it me or Stephen Wolfram doing a mistake here? ;-)


On May 10, 2006, at 11:00 AM, stéphane ducasse wrote:

What I suggest also is to write SUnits to document the behavior of your program. You will see that when the bar of the test runner will be green after a large change, you
will get a really powerful feeling.

I wrote the chapter Sunit Explained only for people starting.
In 3.9 there is a reallllllly cool SUnit browser.

Stef


On 9 mai 06, at 12:30, Enrico Schwass wrote:

Hello

First of all. The creation of this mailinglist was a very good idea.
Reading the original list I always felt wrong, because of the very high
level of questions and ... yes answers. Thanks :)

Anyway. I was looking for a crossSum Method for Integers.

e.g. 251 crossSum (sometimes called checksum) should return 8

1234 -> 10

I couldnt find one with method finder. So I wrote one by myself.
And a friend - also a smalltalk newbie - did another one.

Probably both are not perfect.

The first problem is: Where to put the new method? We decide to put it directly into Integer (arithmetic). There are no side effects, we guess.
Are we right?

Second, we dont know the class library very well. It tooks 20 min to
find the smalltalk equivalent to !=

Its ~= for other newbies :)

So we never know, if we are doing it the smalltalk way.

It would be great if others post their solution and it could be a good
example for describing the test first development cycle, too. Another
area I am not so familiar with. But I am eager to learn this.

BTW: How can I tell method finder to use new implemented methods for
example search? 1. 2. 3. 4. 10 didnt show me crossSum.

Have a nice day
Enno

_______________________________________________
Beginners mailing list
[email protected]
http://lists.squeakfoundation.org/mailman/listinfo/beginners

_______________________________________________
Beginners mailing list
[email protected]
http://lists.squeakfoundation.org/mailman/listinfo/beginners

_______________________________________________
Beginners mailing list
[email protected]
http://lists.squeakfoundation.org/mailman/listinfo/beginners

Reply via email to