// Initialize // a+bi ClrHome Prompt A,B,C Disp "SOLVE FOR" Input D ClrHome If A = 0:Then Disp "ERROR:" Disp "CANNOT DIVIDE BY" Disp "ZERO." Disp " VALUE A != 0" Stop End // The MATH // C-D→C B^2-4AC→E:-B/2A→F // Checks if imaginary // If E < 0:Then Goto IM End // Checks if zero // If E = 0:Then Goto RS End // Rationalization // E→Y:1→X:2→Z While Z^2<=Y While not(fPart(Y/Z^2 Y/Z^2→Y XZ→X End Z+1+(Z>2→Z End // Don't go through the imaginary handler // Goto IS // Imaginary Time!!~ // Lbl IM abs(E)→Y:1→X:2→Z While Z^2<=Y While not(fPart(Y/Z^2 Y/Z^2→Y XZ→X End Z+1+(Z>2→Z End // Create the Fraction for the rationals // int(X/2A)→U (X/2A - U)(2A)→Z // Is it whole or is it a fraction? // If Z = 0:Then Goto IW End // Continue if not // (2A)/gcd(2A,Z)→W (Z)/gcd(2A,Z)→V // Concatenate the strings // {0,1→L₁ {0,U→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str0 sub(Str0,1,length(Str0)-3→Str0 {0,1→L₁ {0,F→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str9 sub(Str9,1,length(Str9)-3→Str9 {0,1→L₁ {0,V→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str8 sub(Str8,1,length(Str8)-3→Str8 Str9 + "+(" + Str0 + "+" + Str8 + "/"→Str7 Str9 + "-(" + Str0 + "+" + Str8 + "/"→Str6 {0,1→L₁ {0,W→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str0 sub(Str0,1,length(Str0)-3→Str0 If Y != 0:Then {0,1→L₁ {0,Y→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str9 sub(Str9,1,length(Str9)-3→Str9 Str7 + Str0 + ")i sqrt(" + Str9 + ")"→Str1 Str6 + Str0 + ")i sqrt(" + Str9 + ")"→Str2 Goto ER End Str7 + Str0 + ")i"→Str1 Str6 + Str0 + ")i"→Str2 Goto ER Lbl IW // Concatenate the strings // {0,1→L₁ {0,U→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str0 sub(Str0,1,length(Str0)-3→Str0 {0,1→L₁ {0,F→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str9 sub(Str9,1,length(Str9)-3→Str9 If Y != 0:Then {0,1→L₁ {0,Y→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str8 sub(Str8,1,length(Str8)-3→Str8 Str9 + "+" + Str0 + "i sqrt(" + Str8 + ")"→Str1 Str9 + "-" + Str0 + "i sqrt(" + Str8 + ")"→Str2 Goto ER End Str9 + "+" + Str0 + "i"→Str1 Str9 + "-" + Str0 + "i"→Str2 Goto ER Lbl IS // Create the Fraction for the rationals // int(X/2A)→U (X/2A - U)(2A)→Z // Is it whole or is it a fraction? // If Z = 0:Then Goto RW End // Continue if not // (2A)/gcd(2A,Z)→W (Z)/gcd(2A,Z)→V // Deal with a whole // If Y = 0:Then U+F→G U-F→H // Concatenate the strings // {0,1→L₁ {0,G→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str0 sub(Str0,1,length(Str0)-3→Str0 {0,1→L₁ {0,V→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str9 sub(Str9,1,length(Str9)-3→Str9 {0,1→L₁ {0,H→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str8 sub(Str8,1,length(Str8)-3→Str8 Str9 + "+(" + Str0 + "/"→Str7 Str8 + "+(" + Str0 + "/"→Str6 {0,1→L₁ {0,W→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str0 sub(Str0,1,length(Str0)-3→Str0 Str7 + Str0 + ")"→Str1 Str6 + Str0 + ")"→Str2 Goto ER End // Concatenate the strings // {0,1→L₁ {0,U→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str0 sub(Str0,1,length(Str0)-3→Str0 {0,1→L₁ {0,F→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str9 sub(Str9,1,length(Str9)-3→Str9 {0,1→L₁ {0,V→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str8 sub(Str8,1,length(Str8)-3→Str8 Str9 + "+(" + Str0 + "+" + Str8 + "/"→Str7 Str9 + "-(" + Str0 + "+" + Str8 + "/"→Str6 {0,1→L₁ {0,W→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str0 sub(Str0,1,length(Str0)-3→Str0 {0,1→L₁ {0,Y→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str9 sub(Str9,1,length(Str9)-3→Str9 Str7 + Str0 + ")sqrt(" + Str9 + ")"→Str1 Str6 + Str0 + ")sqrt(" + Str9 + ")"→Str2 Goto ER Lbl RW // Make it Easier // U+F→G U-F→H // Deal with a Whole // If Y = 0:Then // Concatenate the strings // {0,1→L₁ {0,G→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str1 sub(Str1,1,length(Str1)-3→Str1 {0,1→L₁ {0,H→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str2 sub(Str2,1,length(Str2)-3→Str2 Goto ER End // Concatenate the strings // {0,1→L₁ {0,G→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str0 sub(Str0,1,length(Str0)-3→Str0 {0,1→L₁ {0,H→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str9 sub(Str9,1,length(Str9)-3→Str9 {0,1→L₁ {0,Y→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str8 sub(Str8,1,length(Str8)-3→Str8 Str0 + "+" + "sqrt(" + Str8 + ")"→Str1 Str9 + "-" + "sqrt(" + Str8 + ")"→Str2 Goto ER Lbl RS {0,1→L₁ {0,F→L₂ LinReg(ax+b) Y1 Equ►String(Y1,Str1 sub(Str1,1,length(Str1)-3→Str1 Str1→Str2 Lbl ER ClrHome Disp -B,"+-sqrt(",E,")" Disp "----------------" Disp 2A Pause ClrHome Disp "SOLUTIONS:" Output(2,1,Str1) Output(6,1,Str2) Pause ClrHome Disp "SOLUTIONS CONT:" (-B + sqrt(B^2-4AC))/(2A)→X (-B - sqrt(B^2-4AC))/(2A)→Y Disp X Disp Y Disp "","STORED IN A,B" Pause X→A:Y→B:0→C:0→D:0→E:0→F:0→T:0→U:0→V:0→W:0→X:0→Y:0→Z DelVar Str0:DelVar Str6:DelVar Str7:DelVar Str8:DelVar Str9 ClrHome