### By LIQUID_NiTrO on Apr 28, 2005

This is a basic quadratic calculator that will give you the roots of a quadratic equation. The output is given in both Radical format and Approximate format (which will actually be exact if the solution is rational, and which will be replaced by NONREAL if it involes non-real numbers), or a nullset if there are no roots.
I appologize for the ugliness of the dialog; I originally intended it for my own purposes then later decided to submit it here and didn't feel like redoing the dialog. Maybe I'll get around to it sometime.
--CANT BELIEVE THERES ANOTHER EDIT--
Fixed error where output fields did not clear on consecutive evaluations

``````dialog quad {
size -1 -1 169 144
option dbu
edit "", 1, 2 17 16 10, autohs
text "Quadratic Calculator", 2, 0 2 168 8, center
text "x^2+", 3, 19 18 16 8
edit "", 4, 35 17 16 10, autohs
text "x+", 5, 51 18 8 8
edit "", 6, 59 17 16 10, autohs
text "=0", 7, 75 18 10 8
button "Evaluate", 9, 130 36 37 12, default
check "Round", 8, 3 31 29 10
box "Float Options", 10, 12 40 111 25, disable
radio "Floor", 12, 15 48 25 10, disable group
radio "Ceiling", 11, 40 48 29 10, disable
radio "To", 13, 70 48 16 10, disable
edit "", 14, 87 48 12 10, limit 2
text "th digit", 15, 100 49 20 8, disable
text "Radical", 16, 3 78 20 8
edit "", 18, 24 77 93 10, read
text "Approx", 19, 3 108 20 8
edit "", 20, 24 101 93 10, read
button "OK", 21, 70 129 37 12, flat ok
edit "", 40, 24 111 93 10, read
}
}
}
if ( \$did == 9 ) {
var %nump = \$calc(%b ^ 2 - ( 4 * %a * %c ))
did -a quad 18 \$calc(-1 * %b)) \$chr(177) \$+(SQRT,\$chr(40),%nump,\$chr(41)) / \$calc(2 * %a)
if ( %nump == 0 ) {
halt
}
if ( \$did(quad,8).state == 1 ) {
if ( \$did(quad,11).state == 1 ) {
did -a quad 20 \$floor(\$calc((-1 * %b) + \$sqrt(%nump) / (2 * %a)))
did -a quad 40 \$floor(\$calc((-1 * %b) - \$sqrt(%nump) / (2 * %a)))
var %c = 1
}
elseif ( \$did(quad,12).state == 1 ) {
did -a quad 20 \$ceil(\$calc((-1 * %b) + \$sqrt(%nump) / (2 * %a)))
did -a quad 40 \$ceil(\$calc((-1 * %b) - \$sqrt(%nump) / (2 * %a)))
var %c = 1
}
elseif ( \$did(quad,13).state == 1 ) {
var %c = 1
}
}
if ( !%c ) {
did -a quad 20 \$calc((-1 * %b) + \$sqrt(%nump) / (2 * %a))
did -a quad 40 \$calc((-1 * %b) - \$sqrt(%nump) / (2 * %a))
}
.timerf 1 0.1 chd %nump
}
elseif ( \$did == 8 ) {
if ( \$did(quad,8).state == 1 ) {
}
else {
}
}
elseif ( \$did == 13 ) {
if ( \$did(quad,13).state == 1 ) {
}
else {
}
}
else {
}
}
alias -l chd {
if ( \$left(\$1,1) != - ) {
}
else {
}
}
}
``````

MoNoXiDe   -  Dec 19, 2007

Hey nice work, I did 10x^2 - 17x + 3 but it didn\'t give me the right answer.

The radical was 17 SQRT(169) / 20 when it should be (17 SQRT(169)) / 20.

LIQUID_NiTrO   -  May 10, 2005

If anyone has any idea as to how the editboxes with the answers change from read-only to disabled when you click Evaluate I\'d be glad to know as I have looked through the code a thousand times and can\'t figure out why

log2   -  May 01, 2005

oops I used: 1, -5, -2 not: 1, 5, -2... they would be switched around the other way... x1 = -5.3723, x2 = 0.3723

log2   -  May 01, 2005

It doesn\'t work correctly... I tried doing some calculations with it, like 1, 5, -2... so the equation would be: -5 +/- (sqrt)5^2 - 4 (1)(-2) wich gives you two roots: x1 = 5.3723 and x2 = -0.3723... When I did it in your calc, I got: NONREAL and NONREAL

Ripp0n   -  May 01, 2005

good job Liquid

Relinsquish   -  Apr 29, 2005

The /did commands that use the same switches and parameters can combine dialog ids together with commas. For example, did -b quad 11 | did -b quad 12 | did -b quad 13, can be shortened to: did -b quad 11,12,13

DarthReven   -  Apr 28, 2005

very nice Liquid

Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.