Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Ways to evaluate loops

 
James Chegwidden
Author
Ranch Hand
Posts: 201
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The following code will output Hi six times


What is the quick formula(s) way for evaluating no. of times a loop will be processed without actually evaluating the loop? Example for above

is it 10-5 + 1= 6



If you actually trace through the code you will see Hi is printed six times.

I thought there was a quick way to do this?
Just like to show my classes different ways to evaluate loops
 
Kalai Selvan
Ranch Hand
Posts: 79
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi James,
The formula will look some thing like this

(Final - Initial) / Step

Where Final is the final value.
Initial is the initial value and
Step is the increment value.

for <= condition we have to increment Final by one.

In idle condition (i.e. without any conditional break or jump etc.)the loop will execute these many times.

Regards,
Kalai Selvan T.
 
James Chegwidden
Author
Ranch Hand
Posts: 201
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Formula not quite right:


prints 25 and 1

Formula given above (25- 1)/1 =24 times which is not correct.

So formula does not work for all cases.
 
Francis Siu
Ranch Hand
Posts: 867
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What is the quick formula(s) way for evaluating no. of times a loop will be processed without actually evaluating the loop?
I suggest you to read some books which contain the algorithm analysis.
From your example, I know that it is required 0(n) which n representing the times of the for loop.
Hope this help
 
Hosh Nasi
Ranch Hand
Posts: 44
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I may be way off here but wouldn't (x+1)-y = z work? This of course would only work if the ending value is greater then the starting value, and it is a >= statement. Is this just an general thought? Or are you looking for code for this too?
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic