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

of your answer are, and that their sum is 37.

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.

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()+\

"Which adds up to "+sumAll

ui_msg_box(result+" apples",proof)

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.) ??

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)

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.

1 Attachment(s)

Re: Programming Puzzle 3 - Fractions, anyone?

Here's my attempt for puzzle 3-fractions.

Attachment 28968

Tom, thanks for the suggestion at the end of puzzle two. I have explored exporting scripts and importing them back.

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

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