Go to Post I am mentored by individuals younger than 18 all the time. - Taylor [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
 
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 15-02-2006, 20:11
Keith Watson Keith Watson is offline
Registered User
FRC #0957 (WATSON)
Team Role: Mentor
 
Join Date: Feb 2006
Rookie Year: 2006
Location: Wilsonville, OR
Posts: 112
Keith Watson is just really niceKeith Watson is just really niceKeith Watson is just really niceKeith Watson is just really nice
Re: A few simple programming questions;

Quote:
Originally Posted by aaeamdar
Yes it does. I came up with this one myself... a very interesting mix of metaphors there. I would use the ++ but it's all semantic.
I've seen bugs introduced when people use pre or post ++ at the wrong time.

Quote:
Originally Posted by aaeamdar
But there is absolutely no reason to do this. It doesn't save you any time, and it doesn't save you an space in memory. However, there is, and I kid you not, a contest to obfuscate code. This is a fairly simple example of that.

Paul Dennis
I agree with you on making code readable. Years ago I encountered a line of code written by a guy -- it was doing some sort of math but had around 10 different operators in one line including bit and math operators and was impossible to understand. And this was in production software that a team of people had to maintain.

Even something as simple as always using parentheses to establish precendence instead of relying on operator precendence makes code much more understandable.
__________________
Keith Watson - Professional Software Engineer
No relation to "Kevin" Watson, who created the camera tracking code.
  #2   Spotlight this post!  
Unread 15-02-2006, 21:16
aaeamdar's Avatar
aaeamdar aaeamdar is offline
Post-A-Holic
AKA: Paul Dennis
FRC #1719 (The Umbrella Corp)
Team Role: College Student
 
Join Date: Jan 2006
Rookie Year: 2005
Location: Baltimore, MD
Posts: 231
aaeamdar has a brilliant futureaaeamdar has a brilliant futureaaeamdar has a brilliant futureaaeamdar has a brilliant futureaaeamdar has a brilliant futureaaeamdar has a brilliant futureaaeamdar has a brilliant futureaaeamdar has a brilliant futureaaeamdar has a brilliant futureaaeamdar has a brilliant futureaaeamdar has a brilliant future
Re: A few simple programming questions;

Quote:
Originally Posted by Keith Watson
I've seen bugs introduced when people use pre or post ++ at the wrong time.
An example? I'm curious.

Quote:
Originally Posted by Keith Watson
Even something as simple as always using parentheses to establish precendence instead of relying on operator precendence makes code much more understandable.
Some people think that there is somehow an advantage to cramming something into the fewest lines possible (ahem!). Sometimes it's necessary to optimize things even if these optimizations make things less readable. If your program does billions of mod 32 calculations, and you have some method

Code:
 
int mod32(int x)
{
     while (x > 32)
     {
            x -= 32;
     }

     return x;
}
This works and everyone should be able to tell what it does. I think there's also a modulus method in the C libraries, but I could be wrong. Anyway, the point is that this would probably be a fairly clear way of doing it. But if you were trying to reduce the amount of time your program takes (and it could take a while if you enter in large numbers and do millions of calculations) this is what you would want the method to do:

Code:
int mod32(x)
{
     return x & 31;
}
It's less understandable. Some people may not even know what the & operator does. An italisized description follows:

The & is a bitwise AND operation. In other words, it works with the ones and the zeroes. AND evaluates to true or one if cond1 and cond2 evaluate to one. Example: 7&11

7 = 4+2+1;
11 = 8+2+1;

0111
1011
____
0011


The bitwise operation works faster. It only works with powers of two (don't try x&10) but in those cases, it works. If you want, think about why (or PM me). Just draw it out.

However, oftentimes the best code for processing time is the most understandable too. Also, when you think about the speed of today's processors, unless you are writing code that /needs/ to run fast, there is not much point in optimizing.

[\END LECTURE]

That was rather off-topic, but I found it interesting. I hope you did too (or skipped over it).

Tat's all for now, folks. Tit for tat.
Paul Dennis
  #3   Spotlight this post!  
Unread 16-02-2006, 18:01
Oumonkey's Avatar
Oumonkey Oumonkey is offline
Master of the If statement
AKA: Josh Tyus
FRC #1555 (Pulse)
Team Role: Programmer
 
Join Date: Jun 2005
Rookie Year: 2005
Location: Monon, IN
Posts: 50
Oumonkey has a spectacular aura aboutOumonkey has a spectacular aura about
Re: A few simple programming questions;

Wow, Thanks for all the help. Although that last post hurts my head. But now, I think I have everything working. We are hooking up electronics now so I haven't been able to test anything, yet. But still, I'd give you all hugs, If I could, and a cookie if I could!
Danke!!!
Team 1555's only poor little programmer.
__________________
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
How To Ask Questions the Smart Way Brandon Martus General Forum 8 27-03-2013 15:52
Programming laptops [527]phil Programming 24 22-08-2005 12:28
#1 The Journey of a FIRST Graduate: Questions Ken Leung General Forum 12 27-07-2005 18:24
Suggestion for Delphi Programming Posts Chris Hibner CD Forum Support 1 27-07-2005 10:02
Can You help us??? (programming questions) HuskieRobotics Programming 1 24-02-2004 21:19


All times are GMT -5. The time now is 02:12.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi