representing rational numbers using java objects

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • blazo
    New Member
    • May 2007
    • 3

    representing rational numbers using java objects

    thank you very much for attending to me,if there is any one,who is an expert in programming please how can i write the programme that can compute the approximated value of e
  • Ganon11
    Recognized Expert Specialist
    • Oct 2006
    • 3651

    #2
    There are many ways to approximate the value of e. Which method were you looking to implement?

    Comment

    • blazo
      New Member
      • May 2007
      • 3

      #3
      In this assignment we shall look at a possible representation of rational numbers in java using objects. The java language represents rational numbers using the same representation used for other real numbers. This is the floating-point representation. However as we may all know, floating-point numbers are quite inaccurate. This means that ½ might actually be represented as 0.49998, which may not be good enough for some applications.
      In this assignment we shall explore a way of representing rational numbers using structures. For each rational number we shall represent/store the numerator and denominator as integers. We shall use a structure like this:
      struct Rational {int a, int b;};

      to represent a number . In C we declare a new structure to represent our rational number using:
      typedef struct Rational Rational;

      This declares the new type Rational to be an alias for struct Rational. We can now define operations on data of this kind. In particular we need to implement rational number arithmetic. We shall limit ourselves to the operations of addition and multiplication. (Note that subtraction is really addition in disguise and is no more complicated.)
      Your first task will be to implement the functions:
      Rational R_init(int a, int b);
      Rational R_add(Rational x, Rational y);
      Rational R_mult(Rational x, Rational y);
      int R_show(Rational x);

      The functions should do the following: R_init should return a rational representation for where a and b are the integers. R_add should add two rational numbers returning their sum, R_mult should return the product of the two rational arguments it is passed. R_show should print out the rational number (in the form a/b, not as real decimal).
      This part should be pretty straightforward . You should not need to reduce the rational numbers to their lowest form. That is, if you add and , it is OK to report 2/6 as the answer, rather than 1/3.

      The next part of the assignment requires you to compute a close rational approximation to e, which is often approximated to 2.17… Note that e is actually 1 + 1/1+1/2+1/6+1/24+1/120 + … Compute this sum as far as it will go without giving you integer overflow problems. In short, write a function:
      void e(void);
      This function should compute and print out e using the rational arithmetic functions you wrote above.


      help me please answer me!!!!

      Comment

      • Ganon11
        Recognized Expert Specialist
        • Oct 2006
        • 3651

        #4
        The experts on this site are more than happy to help you with your problems but they cannot do your assignment/program for you. Attempt the assignment/program yourself first and post questions regarding any difficulties you have or about a particular function of the code that you don't know how to achieve.

        Please read the Posting Guidelines and particularly the Coursework Posting Guidlines.

        Then when you are ready post a new question in this thread.

        MODERATOR

        Comment

        • JosAH
          Recognized Expert MVP
          • Mar 2007
          • 11453

          #5
          Originally posted by blazo
          The next part of the assignment requires you to compute a close rational approximation to e, which is often approximated to 2.17… Note that e is actually 1 + 1/1+1/2+1/6+1/24+1/120 + … Compute this sum as far as it will go without giving you integer overflow problems.

          help me please answer me!!!!
          No need to panic. Play with that series a bit: 1 + 1/1 + 1/2 + 1/6 + 1/24 + 1/120
          is the expansion for n == 5. You can rewrite that term as:

          5!/5! + 5.4.3.2/5! + 5.4.3/5! + 5.4/5! +5/5! + 1/5!. In general (for no particular value
          of n >= 0) you get:

          n!/n! + n.(n-1).(n-2) ... 2/n! + n.(n-1).(n-2) ...3/n! + ... n.(n-1)/n! + n/n! +1/n!

          The division num/div ~ e > 1 so if the numerator should be < INT_MAX. The
          largest denominator is reached for n == 12 because 12! < INT_MAX and
          13! > INT_MAX.12!*e < INT_MAX so you can sum those terms up to n == 12.

          kind regards,

          Jos

          Comment

          • JosAH
            Recognized Expert MVP
            • Mar 2007
            • 11453

            #6
            ps. I forgot to mention that a naive addition: a/b + c/d == (a*d + c*b) / (b*d)
            will cause integer overflow. A check for (b == d) solves this little problem.

            kind regards,

            Jos

            Comment

            • milcah
              New Member
              • May 2007
              • 1

              #7
              a program that can add and multiply rational numbers .use that program to calculate e

              Comment

              • JosAH
                Recognized Expert MVP
                • Mar 2007
                • 11453

                #8
                Originally posted by milcah
                a program that can add and multiply rational numbers .use that program to calculate e
                Yes indeed, that was the exact subject we were discussing here, thank you.

                kind regards,

                Jos

                Comment

                • cindyaine
                  New Member
                  • May 2007
                  • 1

                  #9
                  Originally posted by blazo
                  In this assignment we shall look at a possible representation of rational numbers in java using objects. The java language represents rational numbers using the same representation used for other real numbers. This is the floating-point representation. However as we may all know, floating-point numbers are quite inaccurate. This means that ½ might actually be represented as 0.49998, which may not be good enough for some applications.
                  In this assignment we shall explore a way of representing rational numbers using structures. For each rational number we shall represent/store the numerator and denominator as integers. We shall use a structure like this:
                  struct Rational {int a, int b;};

                  to represent a number . In C we declare a new structure to represent our rational number using:
                  typedef struct Rational Rational;

                  This declares the new type Rational to be an alias for struct Rational. We can now define operations on data of this kind. In particular we need to implement rational number arithmetic. We shall limit ourselves to the operations of addition and multiplication. (Note that subtraction is really addition in disguise and is no more complicated.)
                  Your first task will be to implement the functions:
                  Rational R_init(int a, int b);
                  Rational R_add(Rational x, Rational y);
                  Rational R_mult(Rational x, Rational y);
                  int R_show(Rational x);

                  The functions should do the following: R_init should return a rational representation for where a and b are the integers. R_add should add two rational numbers returning their sum, R_mult should return the product of the two rational arguments it is passed. R_show should print out the rational number (in the form a/b, not as real decimal).
                  This part should be pretty straightforward . You should not need to reduce the rational numbers to their lowest form. That is, if you add and , it is OK to report 2/6 as the answer, rather than 1/3.

                  The next part of the assignment requires you to compute a close rational approximation to e, which is often approximated to 2.17… Note that e is actually 1 + 1/1+1/2+1/6+1/24+1/120 + … Compute this sum as far as it will go without giving you integer overflow problems. In short, write a function:
                  void e(void);
                  This function should compute and print out e using the rational arithmetic functions you wrote above.


                  help me please answer me!!!!
                  where is the answer?

                  Comment

                  • JosAH
                    Recognized Expert MVP
                    • Mar 2007
                    • 11453

                    #10
                    Originally posted by cindyaine
                    where is the answer?
                    Hopefully it's between you ears because a boilerplate code answer doesn't do
                    much good most of the time. It's a "give a man a fish and he'll live for another
                    day; teach him how to fish etc. etc." kind of thing.

                    kind regards,

                    Jos

                    Comment

                    • DeMan
                      Top Contributor
                      • Nov 2006
                      • 1799

                      #11
                      More specifically, give a man a program and he'll return with the same question tomorrow, teach a man to program and he might teach you something tomorrow.

                      Comment

                      • rkigobe
                        New Member
                        • May 2007
                        • 1

                        #12
                        the moment someone comes screaming for help about adding, you help them, dont just say go to the river so you can fish, show them the river and may be buy them a hook to fish, be helpful guys

                        Comment

                        • r035198x
                          MVP
                          • Sep 2006
                          • 13225

                          #13
                          Originally posted by rkigobe
                          the moment someone comes screaming for help about adding, you help them, dont just say go to the river so you can fish, show them the river and may be buy them a hook to fish, be helpful guys
                          It's a bit of measure for measure actually. Code for code. We don't want to do more work than the OP is willing to put in themselves.

                          Comment

                          Working...