Get a Jumpstart with our Sample Apps
Page 1 of 2 12 LastLast
Results 1 to 30 of 33

Thread: Programming Puzzle 1 - Simple Loop

  1. #1
    "Certified" Alphaholic
    Real Name
    Tom Cone Jr
    Join Date
    Apr 2000
    Location
    Florida
    Posts
    23,298

    Default Programming Puzzle 1 - Simple Loop

    If you've been thinking that this summer might be a good time to learn a little xbasic, I have a treat in store for you.

    I'm planning to post a series of programming puzzles for you to work on. Puzzles that must be worked out using xbasic.

    Hopefully, these puzzles will give us a springboard from which we can discuss, teach, learn, and benefit from each other's experience.

    In any event, here's my first offering.

    The solution should be presented in the form of an xbasic script. The script should be posted here, or attached to a reply here. You should expect comments, questions, and even corrections. The object is not to "show off" but to provide a safe, non-judgmental area, where people who may be curious about programming, especially, programming in xbasic, can play, have fun, and learn. I rather suspect we'll see more than one way to solve these things. Alpha Five is nothing if not flexible, right?

    Hope you like it.

    -- tom

  2. #2
    "Certified" Alphaholic
    Real Name
    Cal Locklin
    Join Date
    Mar 2000
    Location
    S.E. Michigan
    Posts
    5,752

    Default Re: Programming Puzzle 1 - Simple Loop

    OK, here's a down and dirty solution: (I just hope I got the right answer!)
    Code:
    OPTION strict
    'Variables should not be "one word" or "one letter". Not because they won't 
    'work but because they can make debugging harder in long scripts.
    'This is an "abbreviated two word" variable - two words to help make it 
    'unique for search purposes and abbreviated to make it faster to type. 
    'even_sum ==> esum.
    DIM esum as N
    'A single letter preceeded by "q" is easier to find in a search than, in this 
    'case, just the letter "e". The letter "e" is used 18 times but "qe" only 3.
    DIM qe as N
    'Set initial value to 0.
    esum = 0
    'Many people forget that a FOR...NEXT statement can also use a STEP command.
    FOR qe = 102 to 302 step 2
    	esum = esum + qe
    NEXT
    DIM msg as C
    'Although it's possible to use ui_msg_box( "TOTAL", "" + esum ) and let A5 do the 
    'conversion from number to text, it's valuable to know that it's actually faster 
    'if you explicitly specify the conversion. The extra time isn't noticeable in this 
    'case but it can be noticeable when a calculation is being done inside a long loop.
    msg = "The sum of the even numbers between 101 and 302 is:  " + ltrim( str( esum ) )
    ui_msg_box( "TOTAL", msg, ui_information_symbol )
    By the way, "Option Strict" requires that all variables be DIMmed. While it does have its advantages, I personally find it too annoying and virtually never use it. But that does require some care when naming variables to make sure you don't accidentally try to use a "local" variable that is already defined as global or shared.

  3. #3
    Member
    Real Name
    David Donohue
    Join Date
    Jul 2009
    Location
    NZ
    Posts
    85

    Default Re: Programming Puzzle 1 - Simple Loop

    Hi
    Just a small addition to CALockin's answer to include the iterations in the loop.
    Attached Files Attached Files

  4. #4
    "Certified" Alphaholic DaveM's Avatar
    Real Name
    Dave Mason
    Join Date
    Jul 2000
    Location
    Hudson, FL
    Posts
    5,830

    Default Re: Programming Puzzle 1 - Simple Loop

    David and Cal,

    If you use the 101 instead of the 102, your answer is actually less. which is correct? Tom said 101-302.
    Dave Mason
    dave@aldaweb.com

    Skype is dave.mason46

  5. #5
    "Certified" Alphaholic
    Real Name
    Cal Locklin
    Join Date
    Mar 2000
    Location
    S.E. Michigan
    Posts
    5,752

    Default Re: Programming Puzzle 1 - Simple Loop

    Dave, I'm happy to say you don't read any better than I do!

    I completely missed the part where Tom said, "and the number of times your code iterated through your loop."

    You missed the part where he said, "sums the even numbered values". 101 wasn't even last time I checked.
    Last edited by CALocklin; 06-03-2011 at 02:24 AM.

  6. #6
    "Certified" Alphaholic
    Real Name
    Tom Cone Jr
    Join Date
    Apr 2000
    Location
    Florida
    Posts
    23,298

    Default Re: Programming Puzzle 1 - Simple Loop

    Yes, grasshoppers. Understanding the question is the key to enlightenment.

    For the beginners who may be lurking nearby, would anyone like to explain how the "For ... Next" loop does it's magic?

    So far no one has attempted a solution using a "While ... End While" loop. Any takers?

  7. #7
    Member Mbuso's Avatar
    Real Name
    Mbuso Ngcongo
    Join Date
    Nov 2005
    Location
    South Africa, Durban
    Posts
    79

    Default Re: Programming Puzzle 1 - Simple Loop

    Heres a different approach...

    will work with any two numbers from 0 to ... [tested with 1000000]

    enjoy :-)
    Attached Files Attached Files
    Last edited by Mbuso; 06-03-2011 at 08:21 AM. Reason: neater approach
    -MbusoNgcongo
    INFOMAS (Information Systems)
    mbuso@infomas.co.za

  8. #8
    "Certified" Alphaholic Stan Mathews's Avatar
    Real Name
    Stan Mathews
    Join Date
    Apr 2000
    Location
    Bowling Green, KY
    Posts
    24,698

    Default Re: Programming Puzzle 1 - Simple Loop

    A while loop version. Some lesser used functions and methods employed.

    Code:
    option strict
    'If you place the OPTION STRICT command at the top of a script then you must declare variables explicitly using the DIM command.
    dim entries_to_use as C = ""
    dim qx as N = 101
    dim loops as N = 0
    'Dimming all variables in one place can make them easier to locate
    TRACE.CLEAR() 'Clear the Trace window before writing text to it.
    WHILE qx < 303
    	IF mod(qx,2) = 0 'checks for even number
    		entries_to_use = entries_to_use+alltrim(str(qx))+crlf() 'builds crlf() delimited string
    		traceln("Even number "+alltrim(str(qx))+" current loop value "+alltrim(str(loops))) 'writes the number and current loop to the trace window
    	END IF
    	qx = qx + 1 'increments possible values to be summed variable
    	loops = increment_value(loops) 'increments loop variable
    END WHILE
    
    qx = *total(entries_to_use) 'The *TOTAL() function totals a list of numeric entries.
    'Note that there is nothing illegal about re-using a numeric variable for a second purpose
    traceln("Sum "+alltrim(str(qx))+" total loops "+alltrim(str(loops)))
    ui_msg_box("Note","Activate the Error tab of the next window to appear."+crlf()+"to see the sum of values and loop total.")
    A5_TOGGLE_TRACE_WINDOW() 'The A5_TOGGLE_TRACE_WINDOW() function opens the Trace window if it is closed, and closes it if it is open.
    Took some liberties with "and then display the answer in a message box....".
    Last edited by Stan Mathews; 06-03-2011 at 11:30 AM.

  9. #9
    Moderator
    Real Name
    Alan Buchholz
    Join Date
    Oct 2000
    Location
    Delavan, Wisconsin
    Posts
    9,383

    Default Re: Programming Puzzle 1 - Simple Loop

    Quote Originally Posted by Stan Mathews View Post
    Took some liberties with "and then display the answer in a message box....".
    Your shore liberty is canceled - again
    Al Buchholz
    Bookwood Systems, LTD
    Weekly QReportBuilder Webinars Thursday 1 pm CST

    Occam's Razor - KISS
    Normalize till it hurts - De-normalize till it works.
    Advice offered and questions asked in the spirit of learning how to fish is better than someone giving you a fish.
    When we triage a problem it is much easier to read sample systems than to read a mind.

  10. #10
    "Certified" Alphaholic Stan Mathews's Avatar
    Real Name
    Stan Mathews
    Join Date
    Apr 2000
    Location
    Bowling Green, KY
    Posts
    24,698

    Default Re: Programming Puzzle 1 - Simple Loop

    Another take using xdialog to display the results.

    Code:
    option strict
    'If you place the OPTION STRICT command at the top of a script then you must declare variables explicitly using the DIM command.
    dim entries_to_use as C = ""
    dim qx as N = 101
    dim loops as N = 0
    DIM SHARED varC_result as C
    dim ok_button_label as C = "&OK"
    'Dimming all variables in one place can make them easier to locate
    FOR qx = if(mod(qx,2)=0,qx,qx+1) TO 302 step 2 'computed starting loop value, optional step parameter
    	entries_to_use = entries_to_use+alltrim(str(qx))+crlf()
    	loops = increment_value(loops)
    NEXT qx
    qx = *total(entries_to_use) 'The *TOTAL() function totals a list of numeric entries.
    'xdialog follows to display values, The R directive makes the text in a Text Box read-only.
    varC_result = ui_dlg_box("Alpha Five",<<%dlg%
    {region}
    Loops:| [%r%.40loops];
    Sum of Values:| [%r%.40qx];
    {endregion};
    {line=1,0};
    {region}
    <*15=ok_button_label!OK>
    {endregion};
    %dlg%)

  11. #11
    "Certified" Alphaholic
    Real Name
    Govindan Gandhi
    Join Date
    Aug 2008
    Location
    New York, NY
    Posts
    4,294

    Default Re: Programming Puzzle 1 - Simple Loop

    puzzle conditions:
    1> use option strict
    2> add up even numbers between 101 and 302 both inclusive
    3> show the number of iterations and the result in a message box
    4> include comments.
    while i am not certainly an expert this is my attempt...

    Code:
    option strict
    'dim all variables 
    'x iteration variable, j number palce holder for start and end
    'sumx total of even nunbers
    'msg 
    dim x as n=0
    dim j as n
    dim sumx as n=0
    dim msg as c=""
    for j=101 to 302
    	x=x+1
    	if mod(j,2)=0
    		sumx=sumx+j
    		end if
    	next
    	msg=("Total iterations:  "+x+" Total of the even numbers:  "+sumx)
    	ui_msg_box("Total Iterations",x)
    	ui_msg_box("Total of the even numbers",sumx)
    	ui_msg_box("Puzzle",msg)
    Last edited by Al Buchholz; 06-03-2011 at 06:04 PM. Reason: added code tags

  12. #12
    "Certified" Alphaholic
    Real Name
    Tom Cone Jr
    Join Date
    Apr 2000
    Location
    Florida
    Posts
    23,298

    Default Re: Programming Puzzle 1 - Simple Loop

    Govindan, that's very good. You've used the loop correctly. Notice several things:

    a) the message board reformatted your code, forcing every line to be left justified. You can overcome this and preserve the formatting in your script if you use the "advanced" message board editor (choose "Go Advanced" button). Then select the text to be "preserved" and apply "CODE" tags to it. If this isn't clear let us know.

    b) In these lines:
    Code:
    msg=("Total iterations: "+x+" Total of the even numbers: "+sumx)
    ui_msg_box("Total Iterations",x)
    ui_msg_box("Total of the even numbers",sumx)
    you're concatenating character strings with numeric values. To do this Alpha must convert your numeric values to character strings for you. While Alpha tries hard to do this "implied" data type conversion when it's needed, it does not always succeed. A better practice is to explicitly convert your numeric data to character strings before doing the concatenation. Check Cal Locklin's sample code in this thread (above).

    c) Also, notice that once the first "even" number is encountered, you could optimize the code by stepping through the number range two numbers at a time. Bouncing from even to even so to speak. This would cut the number of trips through loop in half if you see what I mean.

    Good work.

    -- tom

  13. #13
    "Certified" Alphaholic
    Real Name
    Cal Locklin
    Join Date
    Mar 2000
    Location
    S.E. Michigan
    Posts
    5,752

    Default Re: Programming Puzzle 1 - Simple Loop

    Quote Originally Posted by Stan Mathews View Post
    ...
    'Dimming all variables in one place can make them easier to locate
    ...
    And alphabetizing a long list makes it easier also. I do this often enough that I've included a "sort clipboard" routine in my AIMS Grab Bag. (At least I think it's there. I know it's in my personal version.) The code is really simple - just one line - and could be added to a custom "Sort Clipboard" button on your Code Editor toolbar:

    clipboard.set_data( sortsubstr( clipboard.get_data(), crlf() ) )

    To use it for sorting a group of lines in your Code Editor, just highlight the lines, press Ctrl-C to copy them, click the custom button to sort them, and press Ctrl-V to replace the already selected "old" list with the sorted string. (Ctrl-V is the shortcut key for "Paste".)

    I also use this in other places. For example, I've sometimes created a crlf list for the user to select from, added and/or deleted from it, and then want to sort the list to make it easier for the user to work with.

  14. #14
    "Certified" Alphaholic
    Real Name
    Govindan Gandhi
    Join Date
    Aug 2008
    Location
    New York, NY
    Posts
    4,294

    Default Re: Programming Puzzle 1 - Simple Loop

    Quote Originally Posted by Tom Cone Jr View Post
    Govindan, that's very good. You've used the loop correctly. Notice several things:

    a) the message board reformatted your code, forcing every line to be left justified. You can overcome this and preserve the formatting in your script if you use the "advanced" message board editor (choose "Go Advanced" button). Then select the text to be "preserved" and apply "CODE" tags to it. If this isn't clear let us know.

    b) In these lines:
    Code:
    msg=("Total iterations: "+x+" Total of the even numbers: "+sumx)
    ui_msg_box("Total Iterations",x)
    ui_msg_box("Total of the even numbers",sumx)
    you're concatenating character strings with numeric values. To do this Alpha must convert your numeric values to character strings for you. While Alpha tries hard to do this "implied" data type conversion when it's needed, it does not always succeed. A better practice is to explicitly convert your numeric data to character strings before doing the concatenation. Check Cal Locklin's sample code in this thread (above).

    c) Also, notice that once the first "even" number is encountered, you could optimize the code by stepping through the number range two numbers at a time. Bouncing from even to even so to speak. This would cut the number of trips through loop in half if you see what I mean.

    Good work.

    -- tom
    Thank you, Much appreciated.

    gandhi

  15. #15
    Member pmanandhar's Avatar
    Real Name
    Pratik
    Join Date
    Apr 2011
    Location
    Sterling Heights, Michigan, NEPAL
    Posts
    15

    Default Re: Programming Puzzle 1 - Simple Loop

    This is the basic, simplest and best problem for anyone learning to program. I saw some of the simplest code and a little challenging ones. I was wondering if anyone even thought to solve this without using a loop?? Anyone?? I am sorry that I'm not following the question to solve the answer but my point is to view things little differently.

    Check this out:
    Below is the code to add even/odd numbers between n1 and n2 without using any loops. I'm sorry again that I'm violating the rules of the question and not following instructions. But here is something I got.. I created a formula to add odd and even numbers.
    HTML Code:
            dim n1 as n 
    	dim n2 as n 
    	dim x1 as n 
    	dim x2 as n 
    	dim add_even as n = 0
    	dim add_odd as n = 0
    	dim msg as c=""
    	n1 = 101
    	n2 = 302
    	x1 = n1
    	x2 = n2
    	if (mod(n1,2)=0)
    	   n1=n1-1
    	end if
    	if (mod(n2,2)=1)
    	   n2=n2-1
    	end if
    	if (mod(x1,2)=0)
    	   x1=x1+1
    	end if
    	if (mod(x2,2)=1)
    	   x2=x2+1
    	end if
    	add_even=((n2^2)-(n1^2)+(n2*2)+1)/4
    	add_odd =((x2^2)-(x1^2)+(x1*2)-1)/4
    	?add_even+"<br/>"
    	?add_odd+""

  16. #16
    "Certified" Alphaholic
    Real Name
    Tom Cone Jr
    Join Date
    Apr 2000
    Location
    Florida
    Posts
    23,298

    Default Re: Programming Puzzle 1 - Simple Loop

    Thinking outside the box, are we, now?

    Pratik, your solution gets the correct result. However, our fearless scorekeeper, "Ignatious A. Pickypicky", has deducted points for (a) the absence of explanatory comments; and (b) the failure to display the computed results in a message box. Care to try again? Maybe you'll catch Pickypicky in a better mood!

  17. #17
    Member pmanandhar's Avatar
    Real Name
    Pratik
    Join Date
    Apr 2011
    Location
    Sterling Heights, Michigan, NEPAL
    Posts
    15

    Default Re: Programming Puzzle 1 - Simple Loop

    hi tom,
    I wasn't really worried about the points but now you said it so I made some changes with comments, loop and message box. So, do I get the bonus point for the least iterations.
    HTML Code:
    option strict
    	'dim all variables 
    	'n1 = starting value , n2 = ending value (both inclusive) 
    	dim n1 as n = 0                  
    	dim n2 as n = 0
    	dim x1 as n = 0
    	dim x2 as n = 0
    	dim i as n = 0
    	dim add_even as n = 0	' to add even numbers
    	dim add_odd as n = 0	' to add odd number (optional)
    	dim msg as c=""
    	n1 = 101			' start value to add
    	n2 = 302			' end value to stop adding
    	x1 = n1
    	x2 = n2
    	i = 1
    	if (mod(n1,2)=0)	' check if even
    	   n1=n1-1			'subtract one because by formula works with starting value as odd and ending as even
    	end if
    	if (mod(n2,2)=1)	' similiar to above reason
    	   n2=n2-1
    	end if
    	if (mod(x1,2)=0)
    	   x1=x1+1
    	end if
    	if (mod(x2,2)=1)
    	   x2=x2+1
    	end if
    	for i = 1 to 1
    		add_even=((n2^2)-(n1^2)+(n2*2)+1)/4 'formula to add even values between n1 and n2
    		add_odd =((x2^2)-(x1^2)+(x1*2)-1)/4 'formula to add odd values between n1 and n2
    	next 
    	ui_msg_box("Total Iterations",i)
    	ui_msg_box("Total of the even numbers",add_even)
    	ui_msg_box("Total of the odd numbers",add_odd)

  18. #18
    "Certified" Alphaholic
    Real Name
    Tom Cone Jr
    Join Date
    Apr 2000
    Location
    Florida
    Posts
    23,298

    Default Re: Programming Puzzle 1 - Simple Loop

    So, do I get the bonus point for the least iterations?
    Sorry, no. By stepping out of the bounds created for the exercse you've earned the careful attention of our venerable scorekeeper, Prof. Pickypicky. He will be keeping a sharp eye on your future puzzle submittals!

    ps. I'd be tempted to ask him to reconsider if your script furnished a "proof" for the even number formula you employed.

    -- tom

  19. #19
    Member pmanandhar's Avatar
    Real Name
    Pratik
    Join Date
    Apr 2011
    Location
    Sterling Heights, Michigan, NEPAL
    Posts
    15

    Default Re: Programming Puzzle 1 - Simple Loop

    hey tom,
    I am new to this forum and don't know what you and your "Prof. Pickypicky" is talking about. Maybe I'm little careless that even in my classes I rarely got an A (instead A- or B+) even though I get the job done. I don't know what proof are you asking and i don't know how to proof ?? I am good in math so I just took some time and came up with this formula. Now if you are interested as how I came up with this formula then I can explain but still its little complicated to explain. you can try using different values in n1 and n2 several times. That works so is that considered "proof"??

  20. #20
    "Certified" Alphaholic
    Real Name
    Tom Cone Jr
    Join Date
    Apr 2000
    Location
    Florida
    Posts
    23,298

    Default Re: Programming Puzzle 1 - Simple Loop

    Pratik,

    I was mostly pulling your leg. Trying to be facetious. No mathematical proof is necessary. Thanks for contributing to this thread. I look forward to your answers on other puzzles in the future. -- tom

  21. #21
    "Certified" Alphaholic
    Real Name
    Cal Locklin
    Join Date
    Mar 2000
    Location
    S.E. Michigan
    Posts
    5,752

    Default Re: Programming Puzzle 1 - Simple Loop

    Nice job Pratik! When I posted my original solution I was pretty sure there had to be some way to do it without any iterations but didn't have the time to work it out. And seeing your solution - probably not the ability either.

  22. #22
    Member Mbuso's Avatar
    Real Name
    Mbuso Ngcongo
    Join Date
    Nov 2005
    Location
    South Africa, Durban
    Posts
    79

    Default Re: Programming Puzzle 1 - Simple Loop

    upon a realisation that my input attracts no response other than anonymous respondents through email and private messages. No harm in posting another version, yet in attempt to contribution in a speedier progress for a would be alpha fellow.

    regards,
    Attached Files Attached Files
    -MbusoNgcongo
    INFOMAS (Information Systems)
    mbuso@infomas.co.za

  23. #23
    "Certified" Alphaholic
    Real Name
    Tom Cone Jr
    Join Date
    Apr 2000
    Location
    Florida
    Posts
    23,298

    Default Re: Programming Puzzle 1 - Simple Loop

    Mbuso,

    Very nice! Thinking outside the box. Your solution does not use a loop, but is ingenious nevertheless. In your algorithm you adjust the end points of the number range, then compute both the number of "even" terms and the avg over the entire range. Multiplying them together you get the sum. Very clever, grasshopper! Prof. Pickypicky will be watching you closely, too!

  24. #24
    Member Mbuso's Avatar
    Real Name
    Mbuso Ngcongo
    Join Date
    Nov 2005
    Location
    South Africa, Durban
    Posts
    79

    Default Re: Programming Puzzle 1 - Simple Loop

    ...Very clever, grasshopper!...
    *blushing* ...

    with a slight modification the same can be applied to calculate sum of equal contributions made in to investment or loan repayment. Which indeed, can also be done the snaky route (loop:-)
    -MbusoNgcongo
    INFOMAS (Information Systems)
    mbuso@infomas.co.za

  25. #25
    Member pmanandhar's Avatar
    Real Name
    Pratik
    Join Date
    Apr 2011
    Location
    Sterling Heights, Michigan, NEPAL
    Posts
    15

    Default Re: Programming Puzzle 1 - Simple Loop

    CALocklin - Its not that difficult and you definitely have the ability (maybe not time). It took me a while to figure out the logic and formula. I saw Mbuso's logic too and its way easier than the way I was doing. His logic was to get the start and end numbers to be even. Then, get the average (easy to calculate), and times no. of even numbers which is (N+1)/2.. That's it.. brilliant..
    I was also thinking similiar but the question wanted to calcuate from 101 -302. So wanted the input to be starting -odd and ending- even numbers. I did it for adding odd numbers which made little complications.

  26. #26
    Member Mbuso's Avatar
    Real Name
    Mbuso Ngcongo
    Join Date
    Nov 2005
    Location
    South Africa, Durban
    Posts
    79

    Default Re: Programming Puzzle 1 - Simple Loop

    thanx pmanandhar.
    interesting to read your work since you have a taste for math, and background in cpp, as seen in flyPuzzle :-)
    -MbusoNgcongo
    INFOMAS (Information Systems)
    mbuso@infomas.co.za

  27. #27
    Member
    Real Name
    Jeb Richardson
    Join Date
    Aug 2011
    Location
    Bowling Green, KY
    Posts
    26

    Default Re: Programming Puzzle 1 - Simple Loop

    Code:
    OPTION strict
    dim sum as N
    'defining sum variable as Number. Sum will be used to get the total sum of the even number through the range.
    dim qx as N
    'defining qx variable as Number. QX will be used as the loop.
    dim lnum as N
    'defining lnum variable as Number. Lnum will be used to get the total times the loop was done.
    sum=0
    lnum=0
    FOR qx = 102 TO 302 step 2
    	'starting the loop. Stating loop is is going to be ran from 102 to 302. 'Step 2' defines the number to increase by after each loop.
    	sum=sum+qx
    	'equation that gets the value for each loop cycle(each QX) and eventually will add them together.
    	lnum=lnum+1
    	'equation that sets the first loop to 1. The second loop to 2. The third loop to 3, etc.
    next
    'goes to next part of loop(next QX).
    message="The sum of the even numbers through the range 102-302 is: "+sum
    message2="The number of times the code was iterated through the loop was: "+lnum
    ui_msg_box("Jeb's Calculation",message +crlf()+message2)
    Last edited by jeb richardson; 08-03-2011 at 05:06 PM.

  28. #28
    "Certified" Alphaholic
    Real Name
    Tom Cone Jr
    Join Date
    Apr 2000
    Location
    Florida
    Posts
    23,298

    Default Re: Programming Puzzle 1 - Simple Loop

    Jeb, good try. Prof. Ignatious Pickypicky has several comments for your elucidation (his word, not mine!)

    1) The pound symbol on the "Next" line throws an error. It doesn't belong.

    2) The message box fails to display because the variables "message" and "message2" haven't been declared,
    and OPTION STRICT is on.

    3) The professor's eyes aren't what they used to be. Consider formatting your scripts so they're easier
    to read. (Example below to give you some ideas).

    4) It's not necessary to comment every line. Some things will always be obvious when you come back to
    the script years later. Others will not. The latter is what must be documented / commented.

    5) It's customary to indent lines inside a code block / loop structure.

    Code:
    OPTION strict		
    
    'recommend DIMing all vars at the top
    dim sum as N		'defining sum variable as Number. Sum will be used to get the 
    			'total sum of the even number through the range.
    dim qx as N		'defining qx variable as Number. QX will be used as the loop.
    dim lnum as N		'defining lnum variable as Number. Lnum will be used to get the 
    			'total times the loop was done.
    dim qx as N		'loop counter (index)
    dim message as C 	'text string for message box
    dim message2 as C	'ditto
    
    
    sum=0		'giving the sum variable a value of zero.
    lnum=0		'giving the lnum variable a value of zero.
    
    for qx = 102 to 302 step 2	'starting the loop. Stating loop is is going to be 
    				'ran from 102 to 302. 'Step 2' defines the number 
    				'to increase by after each loop.
    
    	sum=sum+qx	'equation that gets the value for each loop cycle(each QX) and 
    			'eventually will add them together.
    
    	lnum=lnum+1	'equation that sets the first loop to 1. The second loop to 2. 
    			'The third loop to 3, etc.
    
    next	'goes to next part of loop(next QX).
    
    dim message as C
    dim message2 as C
    
    'assigning the total sum message for the pop up message.
    message="The sum of the even numbers through the range 102-302 is: "+ltrim(str(sum))
    
    'assigning the total lnum or total times the loop was done, for the pop up message.
    message2="The number of times the code was iterated through the loop was: "+ltrim(str(lnum))
    
    ui_msg_box("Jeb's Calculation",message +crlf()+message2)	'message box that gives 
    					'the results of the calculation. LNUM and SUM
    .

  29. #29
    Member The Mage's Avatar
    Real Name
    William McGowen
    Join Date
    Jul 2010
    Location
    Nebraska
    Posts
    287

    Default Re: Programming Puzzle 1 - Simple Loop

    Code:
    OPTION strict
    
    dim first as N		'Starting number
    dim last as N		'Ending number
    dim total as N		'For final total
    dim count as N		'To count the number of times this code is run, but it won't be that important as you will see.
    
    count = 0		'Starting counter at 0
    
    first = 102		'Starting point
    last = 302		'Ending point
    
    total = ( ( first + last ) * ( last - first ) ) / 4
    			'By adding in the first and last numbers I am figuring out a standard number for the math
    			'and by subtracting the last and first from eachother, I am counting the total of the 
    			'numbers between the first and last.  Since I am adding in both first and last numbers,
    			'I only need to figure in half of those numbers, and since only even numbers are counted,
    			'I need only half of those numbers still.  So I divide the total by 4.  
    			'logically it should have divided the (last-first) before being multiplied, but the result is the same.
    
    count = count + 1	'Adding to the counter
    
    			'Results:
    ui_msg_box( " Total" , total ,UI_ATTENTION_SYMBOL )	
    
    			'Number of times the formula had to be run:
    ui_msg_box( "Times Run" , count , UI_ATTENTION_SYMBOL )
    Admittedly I am cheating here by not using a loop.
    Last edited by The Mage; 10-04-2011 at 07:09 PM.

  30. #30
    Member
    Real Name
    Thomas Reese
    Join Date
    Apr 2004
    Posts
    5

    Default Re: Programming Puzzle 1 - Simple Loop

    As I am very new to xbasic my version to puzzle 1 is simple, but I believe it gets the job done.
    Would appreciate any comments that may be needed or helpful.

    Now to see if I can find Puzzle 2.

    'Date Created: 09-Nov-2011 05:23:03 PM
    'Last Updated: 10-Nov-2011 08:12:35 AM
    'Created By : T. E. Reese
    'Updated By : T. E. Reese
    option strict

    dim target_num as n = 0 'used to determine if number is even
    dim i as n = 0
    dim result as n = 0 'result adds the total of the even numbers
    dim num_loops as n = 0 'counts the number of interations

    for i = 302 to 101 step-2
    num_loops = num_loops + 1
    target_num = i
    if mod(target_num,2)= 0 then
    result=result+target_num
    end if
    next i

    ui_msg_box("Program Puzzle One","The answeres are Sum = "+ alltrim(str(result))+" Loops = "+alltrim(str(num_loops)))

    end

Similar Threads

  1. Simple Loop Example
    By John Fringer in forum Alpha Five Version 9 - Desktop Applications
    Replies: 15
    Last Post: 09-03-2008, 10:32 AM
  2. A New Year puzzle...
    By Paul H in forum Alpha Four Versions 7 and 8
    Replies: 1
    Last Post: 02-17-2005, 12:49 AM
  3. Scripting Puzzle
    By Tim Madison in forum Alpha Five Version 5
    Replies: 4
    Last Post: 05-18-2004, 03:27 PM
  4. Puzzle 2
    By Tom Cone Jr in forum Alpha Five Version 4
    Replies: 9
    Last Post: 04-16-2001, 07:36 AM
  5. Array Puzzle?
    By rtbtat in forum Alpha Five Version 4
    Replies: 9
    Last Post: 10-09-2000, 01:09 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •