 # Thread: Programming Puzzle 3 - Fractions, anyone?

1. ## Programming Puzzle 3 - Fractions, anyone?

Puzzles and Problems

Beginning Xbasic Programming

Puzzle 3 - Fractions, anyone?

The "fraction monster" has taken over your machine. He's had it up to here
with loops, so no loops are allowed. Here's the puzzle, courtesy
of Creative Computing Magazine:

Mrs. Canton wanted to buy all the grocer's apples for a church picnic.
When she asked how many apples the store had, the grocer replied:
"If you added 1/4, 1/5, and 1/6 of them, that would make 37. After
giving the grocer a look that would melt steel, Mrs. Canton pulled
out her new netbook computer and figured it out. Can you? How
many apples were in the store?

Instructions:

Most of us with a pencil and paper (and a big eraser!) could figure this
out by hand (eventually). Your instructions however are these:

Write an xbasic script that solves the puzzle and then display both
your solution and its "proof", in a single message box. Your
"proof" will be accepted if we can see how much 1/4, 1/5 and 1/6

Tip: This will involve writing a multi-line string to your
message box.

Have fun!

ps. For bonus points write your solution and its "proof" to the
trace window. Don't know about the trace window yet? It's
time to learn. The trace window is your friend. 2. ## Re: Programming Puzzle 3 - Fractions, anyone?

Code:
```' (1/4)*x plus (1/5)*x plus (1/6)*x =37
' multiply by a common denominator, not necessarily lowest common denominator
denom=4*5*6
' 37*denom=denom*(1/4)*x+denom*(1/5)*x+denom*(1/6)*x
' then sum the Xs and divide into 37*denom
y=(denom/4)+(denom/5)+(denom/6)
result=37*denom/y
onequarter=result/4
onefifth=result/5
onesixth=result/6
sumAll=onequarter+onefifth+onesixth
proof="1/4 of total is "+onequarter+crlf()+\
"1/5 of total is "+onefifth+crlf()+\
"1/6 of total is "+onesixth+crlf()+\
ui_msg_box(result+" apples",proof)``` 3. ## Re: Programming Puzzle 3 - Fractions, anyone?

Very good!

Six months from now I wonder if the line that reads:
Code:
`result = 37*denom/y`
might benefit from an explanatory comment (even though the flow of the program is described nicely beforehand.) ?? 4. ## Re: Programming Puzzle 3 - Fractions, anyone?

Code:
```X = 37/((1/4)+(1/5)+(1/6))
trace.WriteLn("apples in store = " + alltrim(str(x)))
n = (1/4)*x+(1/5)*x+(1/6)*x
trace.WriteLn("Proof = " + alltrim(str(n)))
ui_msg_box("Apples", x + " apples in store" + crlf(2) + "Proof = " + n)``` 5. ## Re: Programming Puzzle 3 - Fractions, anyone?

Peter G. - Good work! You taught me something. I did not know that we could add fractions without reducing them to common denominators first. Sweet!

Thanks. 6. ## Re: Programming Puzzle 3 - Fractions, anyone?

Here's my attempt for puzzle 3-fractions.
PUZ3.txt
Tom, thanks for the suggestion at the end of puzzle two. I have explored exporting scripts and importing them back. 7. ## Re: Programming Puzzle 3 - Fractions, anyone?

Tom,

I've been working to learn xbasic (my first attempt at ANY programming). When you first posted these problems, they were WAY beyond my ability; now they are an appropriate challenge - thanks for posting them. Here's my reply to #3. I know the msg box isn't quite right.

'How many apples do I have if
'1/4 of them + 1/5 of them + 1/6 of them = 37

dim Tot as n
dim qtr as n
dim fifth as n
dim sixth as n
dim partial as n

qtr=1/4
fifth=1/5
sixth=1/6

partial = qtr + fifth + sixth

'(qtr*Tot)+(fifth*Tot)+(sixth*Tot)= 37

'partial*Tot=37

Tot=37/partial

ui_msg_box("Answers","The total apples at the store are:"+" "+str(Tot))

end 8. ## Re: Programming Puzzle 3 - Fractions, anyone?

Rob, I'm glad you're enjoying the puzzles.

Check the help system for information on

STR Function
LTRIM Function

To discover why Ltrim(Str(Tot)) improves your formatting in the msg box.

-- tom #### Posting Permissions

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