Computer programmers' habits in electronics

I assume your reply is a troll too ?

You're going to create some fabulously bad electronics your way.No different for code either.

Graham

Reply to
Pooh Bear
Loading thread data ...

Well, I think when he said "reverses a string in place", he meant the former rather than the latter, and probably implied without creating a temporary copy.

Reply to
Mike Young

Hell is more interesting, and useful, but not a nice place.

--
Dirk

The Consensus:-
The political party for the new millenium
http://www.theconsensus.org
Reply to
Dirk Bruere at Neopax

bool IsPowerOf2(unsigned val) { unsigned i=val, j=1; while (i >>= 1) j*=2; return (j == val); }

Best regards, Spehro Pefhany

--
"it\'s the network..."                          "The Journey is the reward"
speff@interlog.com             Info for manufacturers: http://www.trexon.com
Embedded software/hardware/analog  Info for designers:  http://www.speff.com
Reply to
Spehro Pefhany

how about this, untested, uncompiled c++

void rev3( const char* str, int l = -1 ) { if( l == -1 ) l = strlen( str )-1;

if( l > 0 ) { char c = str[l]; str[l] = *str; *str = c; // swap rev3( str+1, l-2 ); } }

the nice thing about it is that one does not have to supply length, start or fin for initial invocation. Not that I think that recursion is appropriate for this problem.

In your example, the user would need to supply strlen( l ) - 1 for fin, for the initial call. And in my example, the user would only supply str.

A bonus question: how to swap two integer (or char) values without using a temporary variable? In any language? Without any function calls?

i

Reply to
Ignoramus32515

very nice story about using integer arithmetic.

Reply to
Ignoramus32515

In place. Try to do it so that you could say afterwards, that was a ncie solution.

i
Reply to
Ignoramus32515

You would get the job, yes, I mean you would pass this test. I must note, however, that you would get a compiler warning about assigning integer to a char, and also you do not need both c and d. The last return statement is also not needed. You are definitely in the top 90% of computer programmers, no kidding.

i
Reply to
Ignoramus32515

I guess your fingers did the typing "const char *" without thinking. :)

i

Reply to
Ignoramus32515

I did the same thing, rotflmao!

i

Reply to
Ignoramus32515

A perfect answer! You get an A+!

i

Reply to
Ignoramus32515

:) Nasty things, those non-const pointers.

Reply to
Mike Young

I meant naked pointers in general.

Reply to
Mike Young

I suppose you should also ding me for .

It's a valid answer, and meaningful of itself. The follow up questions would bring it back to where we started.

If you're not tired of the game yet, write:

// return true if val is an integer power of 2; false otherwise. bool IsPowerOf2(unsigned val);

Reply to
Mike Young

Gak! :) Yeah, different context.

Reply to
Mike Young

#include

void reverse(char string[]) { char c; int i,j;

for (i=0, j=strlen(string)-1; i < j; i++,j--) c = string[i], string[i] = string[j], string[j]=c; }

What does it pay? When do I start?

Reply to
Geoff

Umm... I think you missed the implied smiley (;0~)

Bob

Reply to
Bob Stephens

"Mike Young" wrote in news:kaqqf.2184$ snipped-for-privacy@newssvr11.news.prodigy.com:

Can I do it in Ada? I can do C++, but I'm not too fond of it. Note that Ada doesn't have an unsigned type, so I'm using an integer instead. The code would be the same regardless.

/

formatting link

function IsPowerOf2(val: integer) return boolean is result: integer; begin result := val rem 2; if result = 0 then return true; else return false; end if; end IsPowerOf2;

Puckdropper

--
www.uncreativelabs.net

Old computers are getting to be a lost art. Here at Uncreative Labs, we 
still enjoy using the old computers. Sometimes we want to see how far a 
particular system can go, other times we use a stock system to remind 
ourselves of what we once had.

To email me directly, send a message to puckdropper (at) fastmail.fm
Reply to
Puckdropper

great job!

I wish that people who we see could do as good job as you did.

i
Reply to
Ignoramus32515

here's my try, could be a little faster, untested

bool IsPowerOf2(unsigned int val) { int count = 0; while( val ) { if( val & 0x1 ) { count++; if( count > 1 ) return false; } val = val >> 1; } return cunt == 1; }

Reply to
Ignoramus32515

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.