evaluation of expressions (add,subtract,multiply,divide)

Hi! I'm James from the Philippines, I'm 17 yrs old, freshman college student taking up computer science. I am actually a beginner in programming. My professor give us an programming assignment in VB 6 about precedence. I'm doing this for almost two weeks now, but then I still cannot change the order of the precedence. I find it hard because instead of MDAS(multiplication,division,addition,and subtraction)order, it is now reverse (addition,subtraction,multiplication,division). I hope someone will help me.

My professor instruct us to use one textbox for the inputs and command button for evaluation...

Assume the following rules of precedence for expressions:
Highest is addition (+)
then subtraction (-)
then multiplication (*)
then division (/)

Evaluate inputs such as:
(a) 1+4*3-2/2 Output: 5*3-2/2 = 5*1/2 = 5/2 = 2.5
(b) 5-2/2+1*2 Output: 5-3/3*2 = 2/3*2 = 4/6 = 0.66667
(c) 3-2+4-2+5 Output: 3-6-7 = -3 - 7 = -10
Output up to 5 decimal places if long.

Comments

  • : Hi! I'm James from the Philippines, I'm 17 yrs old, freshman college
    : student taking up computer science. I am actually a beginner in
    : programming. My professor give us an programming assignment in VB 6
    : about precedence. I'm doing this for almost two weeks now, but then
    : I still cannot change the order of the precedence. I find it hard
    : because instead of MDAS(multiplication,division,addition,and
    : subtraction)order, it is now reverse
    : (addition,subtraction,multiplication,division). I hope someone will
    : help me.
    :
    : My professor instruct us to use one textbox for the inputs and
    : command button for evaluation...
    :
    : Assume the following rules of precedence for expressions:
    : Highest is addition (+)
    : then subtraction (-)
    : then multiplication (*)
    : then division (/)
    :
    : Evaluate inputs such as:
    : (a) 1+4*3-2/2 Output: 5*3-2/2 = 5*1/2 = 5/2 = 2.5
    : (b) 5-2/2+1*2 Output: 5-3/3*2 = 2/3*2 = 4/6 = 0.66667
    : (c) 3-2+4-2+5 Output: 3-6-7 = -3 - 7 = -10
    : Output up to 5 decimal places if long.

    If none of the calculations hve brackets in them, then the best way to evaluate them is as follows:
    1) split the calculation into the numbers and operators.
    example: (a) becomes a list of values 1, +, 4, *, 3, -, 2, /, 2
    2) loop through that list and calculate each + and replace the 3 elements with the result
    example: (a) becomes a list of values 5, *, 3, -, 2, /, 2
    3) repeat step 2 until there are no more +-operators
    4) Repeat steps 2 and 3 for each operator according to the preference rules
    example:
    (a) becomes a list of values 5, *, 1, /, 2
    (a) becomes a list of values 5, *, 0.5
    (a) becomes a list of values 2.5
    Once all the operators are calculated, there should only be 1 element left in the list: the final result.
  • : : Hi! I'm James from the Philippines, I'm 17 yrs old, freshman college
    : : student taking up computer science. I am actually a beginner in
    : : programming. My professor give us an programming assignment in VB 6
    : : about precedence. I'm doing this for almost two weeks now, but then
    : : I still cannot change the order of the precedence. I find it hard
    : : because instead of MDAS(multiplication,division,addition,and
    : : subtraction)order, it is now reverse
    : : (addition,subtraction,multiplication,division). I hope someone will
    : : help me.
    : :
    : : My professor instruct us to use one textbox for the inputs and
    : : command button for evaluation...
    : :
    : : Assume the following rules of precedence for expressions:
    : : Highest is addition (+)
    : : then subtraction (-)
    : : then multiplication (*)
    : : then division (/)
    : :
    : : Evaluate inputs such as:
    : : (a) 1+4*3-2/2 Output: 5*3-2/2 = 5*1/2 = 5/2 = 2.5
    : : (b) 5-2/2+1*2 Output: 5-3/3*2 = 2/3*2 = 4/6 = 0.66667
    : : (c) 3-2+4-2+5 Output: 3-6-7 = -3 - 7 = -10
    : : Output up to 5 decimal places if long.
    :
    : If none of the calculations hve brackets in them, then the best way
    : to evaluate them is as follows:
    : 1) split the calculation into the numbers and operators.
    : example: (a) becomes a list of values 1, +, 4, *, 3, -, 2, /, 2
    : 2) loop through that list and calculate each + and replace the 3
    : elements with the result
    : example: (a) becomes a list of values 5, *, 3, -, 2, /, 2
    : 3) repeat step 2 until there are no more +-operators
    : 4) Repeat steps 2 and 3 for each operator according to the
    : preference rules
    : example:
    : (a) becomes a list of values 5, *, 1, /, 2
    : (a) becomes a list of values 5, *, 0.5
    : (a) becomes a list of values 2.5
    : Once all the operators are calculated, there should only be 1
    : element left in the list: the final result.

    i think your idea is possible. however, if you have this expression -2+5*4 by splitting the calculation into numbers and operators you will get -7*4 instead of 3*4


  • : : : Hi! I'm James from the Philippines, I'm 17 yrs old, freshman college
    : : : student taking up computer science. I am actually a beginner in
    : : : programming. My professor give us an programming assignment in VB 6
    : : : about precedence. I'm doing this for almost two weeks now, but then
    : : : I still cannot change the order of the precedence. I find it hard
    : : : because instead of MDAS(multiplication,division,addition,and
    : : : subtraction)order, it is now reverse
    : : : (addition,subtraction,multiplication,division). I hope someone will
    : : : help me.
    : : :
    : : : My professor instruct us to use one textbox for the inputs and
    : : : command button for evaluation...
    : : :
    : : : Assume the following rules of precedence for expressions:
    : : : Highest is addition (+)
    : : : then subtraction (-)
    : : : then multiplication (*)
    : : : then division (/)
    : : :
    : : : Evaluate inputs such as:
    : : : (a) 1+4*3-2/2 Output: 5*3-2/2 = 5*1/2 = 5/2 = 2.5
    : : : (b) 5-2/2+1*2 Output: 5-3/3*2 = 2/3*2 = 4/6 = 0.66667
    : : : (c) 3-2+4-2+5 Output: 3-6-7 = -3 - 7 = -10
    : : : Output up to 5 decimal places if long.
    : :
    : : If none of the calculations hve brackets in them, then the best way
    : : to evaluate them is as follows:
    : : 1) split the calculation into the numbers and operators.
    : : example: (a) becomes a list of values 1, +, 4, *, 3, -, 2, /, 2
    : : 2) loop through that list and calculate each + and replace the 3
    : : elements with the result
    : : example: (a) becomes a list of values 5, *, 3, -, 2, /, 2
    : : 3) repeat step 2 until there are no more +-operators
    : : 4) Repeat steps 2 and 3 for each operator according to the
    : : preference rules
    : : example:
    : : (a) becomes a list of values 5, *, 1, /, 2
    : : (a) becomes a list of values 5, *, 0.5
    : : (a) becomes a list of values 2.5
    : : Once all the operators are calculated, there should only be 1
    : : element left in the list: the final result.
    :
    : i think your idea is possible. however, if you have this expression
    : -2+5*4 by splitting the calculation into numbers and operators you
    : will get -7*4 instead of 3*4
    :
    :
    With a minor adjustment (-number is split into + (-number)) this can be rectified. His example of 3-6-7 then becomes: 3, +, -6, +, -7.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories