function myreset(){document.getElementById('kaito').innerHTML = "";}function gcd(x, y){if (y == 0) return x;else return gcd(y, x % y);}function cal(p,q){myGcd = gcd(p,q); myLcm = (p*q)/gcd(p,q);}function bwidth(rz,sz){rz = eval(rz);sz = eval(sz);if (Math.abs(rz) >= Math.abs(sz)){znum = Math.abs(rz);}else{znum = Math.abs(sz);}bwlen = 0; do {znum = znum/10;bwlen++;}while(znum >= 1)if (bwlen == 1){bw = 18;}else{bw = 8*bwlen + 6;}bw = "<br><img src='bar.gif' height=3 width=" + bw + "><br>";}function myalert(){alert('数値の型が一致しません。\n\n1.半角の数字と - \. \/ のみ。\n\n2.小数は第二位までＯＫ。\n\n3.分数は 分子/分母 で。\n\n4.式に小数,分数をまぜない。\n\n5.χだけの項は1か-1を入力。');return false;}function check(z){if ((z.match(/[^0-9/\.\-]/)) || (!z.match(/[0-9]/)) || (z.match(/\/{2}/)) || (z.match(/\.{2}/))){NG = "1";return NG;}else if ((z.match(/\..\./)) || (z.match(/^\//)) || (z.match(/\/$/)) || (z.match(/\-$/)) || (z.match(/\/.\//))){NG = "1";return NG;}else if ((z.match(/\./)) && (z.match(/\//))){NG = "1";return NG;}}function p1(){if((a=="0") || (b<=0)){plus1="";}else{plus1="+";}if((c=="0") || (d<=0)){plus3="";}else{plus3="+";};}function p2(){if((a=="0") || (c<=0)){plus2="";}else{plus2="+";}if((b=="0") || (d<=0)){plus3="";}else{plus3="+";};}function zoro(){if(a==0){a="";ax="";}if(b==0){b="";}if(c==0){c="";cx="";}if(d==0){d="";}}function ac(){if (a == "1"){p = "";}else if (a == "-1"){p = "-";}else{p = a;}if (c == "1"){q = "";}else if (c == "-1"){q = "-";}else{q = c;}}function text_p(b){if(b.value.match(/\+/)){b.value = b.value.split('+').join('');alert('この + は自動的につきます。\n\n入れなくても大丈夫です。');}if (b.value > 0){b.value = "+" + b.value;}}function text_n(ac){if(ac.value.match(/\+/)){ac.value = ac.value.split('+').join('');alert('ここに + は入りません。');}}function conv(t){t.value = t.value.split('／').join('/');t.value = t.value.split('－').join('-');t.value = t.value.split('．').join('.');t.value = t.value.split('１').join('1');t.value = t.value.split('２').join('2');t.value = t.value.split('３').join('3');t.value = t.value.split('４').join('4');t.value = t.value.split('５').join('5');t.value = t.value.split('６').join('6');t.value = t.value.split('７').join('7');t.value = t.value.split('８').join('8');t.value = t.value.split('９').join('9');t.value = t.value.split('０').join('0');}function sol(){a=1;a2=1;ax="χ ";b=0;b2=1;c=1;c2=1;cx="χ ";d=0;d2=1;e=1;f=1;bflag=0; flag=0;NG = "";nothing = 1;a = document.forms[0].elements[0].value;b = document.forms[0].elements[1].value.split('+').join('');c = document.forms[0].elements[2].value;d = document.forms[0].elements[3].value.split('+').join('');if ((!a) && (!b) && (!c) && (!d)){nothing = "";}if (nothing){if (a == ""){a = "1";}if (a == "-"){a = "-1";};}check(a);if (NG){return myalert();}if (a.match(/\//)){if (a.match(/\./)){myalert();}anum = a.split("/");a2=anum[1];bflag=1;}else if (a.match(/\./)){anum = a.split("\.");a2=anum[1];len = a2.length; if(len>=3){myalert();} if((len==1) && (flag<1)){flag=1;} if((len==2) && (flag<2)){flag=2;};}a = eval(a);if (nothing){if (b == ""){b = "0";};}check(b);if (NG){return myalert();}if (b.match(/\//)){if (b.match(/\./)){return myalert();}bnum = b.split("/");b2=bnum[1];bflag=1;}else if (b.match(/\./)){bnum = b.split("\.");b2=bnum[1];len = b2.length; if(len>=3){return myalert();} if((len==1) && (flag<1)){flag=1;} if((len==2) && (flag<2)){flag=2;};}b = eval(b);if (nothing){if (c == ""){c = "1";}if (c == "-"){c = "-1";};}check(c);if (NG){return myalert();}if (c.match(/\//)){if (c.match(/\./)){return myalert();}cnum = c.split("/");c2=cnum[1];bflag=1;}else if (c.match(/\./)){cnum = c.split("\.");c2=cnum[1];len = c2.length; if(len>=3){return myalert();} if((len==1) && (flag<1)){flag=1;} if((len==2) && (flag<2)){flag=2;};}c = eval(c);if (nothing){if (d == ""){d = "0";};}check(d);if (NG){return myalert();}if (d.match(/\//)){if (d.match(/\./)){return myalert();}dnum = d.split("/");d2=dnum[1];bflag=1;}else if (d.match(/\./)){dnum = d.split("\.");d2=dnum[1];len = d2.length; if(len>=3){return myalert();} if((len==1) && (flag<1)){flag=1;} if((len==2) && (flag<2)){flag=2;};}d = eval(d);if(bflag==1){if((flag==1) || (flag==2)){return myalert();};}com = "";if(bflag==1){cal(a2,b2);e=myLcm;cal(e,c2);f=myLcm;cal(f,d2);com = "<span class='color1'>両辺を" + myLcm + "倍して整数の式にする。<\/span><br>";a=a*myLcm;b=b*myLcm;c=c*myLcm;d=d*myLcm;p1();zoro();ac();com += p + ax + plus1 + b + " = " + q + cx + plus3 + d + "<br>";}if(flag==1){com = "<span class='color1'>両辺を10倍して整数の式にする。<\/span><br>";a=Math.round(a*10);b=Math.round(b*10);c=Math.round(c*10);d=Math.round(d*10);p1();zoro();ac();com += p + ax + plus1 + b + " = " + q + cx + plus3 + d + "<br>";}if(flag==2){com = "<span class='color1'>両辺を100倍して整数の式にする。<\/span><br>";a=Math.round(a*100);b=Math.round(b*100);c=Math.round(c*100);d=Math.round(d*100);p1();zoro();ac();com += p + ax + plus1 + b + " = " + q + cx + plus3 + d + "<br>";}b=b*-1;c=c*-1;p2();zoro();ac();com += p + ax + plus2 + q + cx + "= " + b + " " + plus3 + d + "<br>";num1 = a+c;num2 = b+d;if(num2/num1 < 0){mai="<td>-<\/td>";}else{mai="";}if(num1==1){com += "χ = " + num2;}else if(num1=="-1"){com += "-χ = " + num2 + "<br>";com += "χ = " + num2*-1;}else if(num1==0){com += num1+ " = " + num2 + "<br><span class='color1'>この問題は解けません。</span>";}else{com += num1+ "χ = " + num2 + "<br>";if(num2/num1 == Math.floor(num2/num1)){com += "χ = " + num2/num1;}else{r = Math.abs(num2);s = Math.abs(num1);bwidth(r,s);com += "<table><tr><td>χ =</td><td width=1></td>" + mai + "<td class='bun'>" + r + bw + s + "</td></tr></table>";cal(r,s);if (myGcd > 1){rr = r/myGcd;ss = s/myGcd;bwidth(rr,ss);com += "<table><tr><td>χ =</td><td width=1></td>" + mai + "<td class='bun'>" + rr + bw + ss + "</td></tr></table>";}}}document.getElementById('kaito').innerHTML = com;}
