text: • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 256
  
  # Question for SunnyCoder
  
  Hey man. I wanted to write a program to process simple algebra problems..
  
  like:
  
  3x + 15 = 11 - x
  4x = -4
  x = -1
  
  how would you suggest going about this? I dont plan to write it in C, I was acctually going to write it in Visual Basic, but you are good with math, so I was curious how you would suggest doing it. So far I've created a type structure array to store all the monomials, but how do you suggest processing it, I'm stumpted. If you want to throw out some C code, I can port it to VB.
  
  -Brian
  0
  BrianGEFF719
  1 Solution
  
  Commented:
  Will the problems be single variable linear equations like your example?
  0
  
  Commented:
  Can we lowly creatures also participate in this question or you want only sunny's suggestion???
  0
  
  Author Commented:
  Everyone feel free to comment.
  
  Right now I am going to focus on Single Variables.
  0
  
  Commented:
  If your problems will all be single variable linear equations you could just change = to -
  evaluate at two x values, then extrapolate to where the expression equals 0
  0
  
  Commented:
  e.g.
  (3x + 15) - (11 - x)
  (3*0 + 15) - (11 - 0) = 4
  (3*1 + 15) - (11 - 1) = 8
  x = 4/(4-8) = -1
  0
  
  Commented:
  To make it simple (e.g. without going to RPN resolution etc...) you have to get 4 variables
  v1 is the number of x on left side
  v2 is the number on left side (no x)
  v3 is the number of x on right side
  v4 is the number on right side (no x)
  
  e.g.  for 3x + 15 = 11 - x
  
  v1 = 3
  v2 = 15
  v3 = -1
  v4 = 11
  
  The you calculate
  vx = v1 - v3
  vn = v4 - v2
  
  And you have your result R = vn / vx
  
  vx = v1 - v3 = 4
  vn = -4
  R = 4 / -4 = -1
  
  How to proceed programmatically (automat)
  1 -   initialize all v1,v2,v3,v4 to 0.
  2 -   parse the equation left side for v1, v2
  3 -   set default sign is "+"
  4 -   you get a sign : set sign to + or -
  5 -   you get a number : put the number in N
  6 -   number is followed by x : do v1 = v1 + N
  7 -   number is not followed by x : do v2 = v2 + N
  8 -   repeat from 3 etc...
  
  Do the same right side, the vars being v3,v4
  Once you get all v1...v4, calculate R as above.
  0
  
  Commented:
  of course of steps 5 and 6, N is signed by 'sign' (ie  N = N * sign ), sign being 1 if "+", -1 if "-"
  0
  
  ## Featured Post
  
  Tackle projects and never again get stuck behind a technical roadblock.
metadata: {"found_math": false, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0}