//////////////////// KETlib //////////////////// use("KetCindyPlugin"); Dircdy=loaddirectory; setdirectory(gethome()); import("ketcindy.ini"); setdirectory(Dircdy); import("ketcindylibkey.cs"); import("keynamelib.txt"); //import("ucreate.txt"); //create(["Text0"],"EditableText",[[5,5,1]]); Seteditable(0,["0","Size=18","Width=200"]); Text0.xy=[6,6.8];//関数式の入力窓 wflg=0; rflg=0; ky=""; ansflg=0; fnflg=0; detflg=0; stage=0; Str=""; Strnow=""; M1strnq=""; M2strnq=""; ky=""; flg=-1; Pxy=[8.2,5.33]; Bx=[1.16,0]; By=[0,-0.91]; //Ucreate("Text20");Ucreate("Text21");Ucreate("Text22");;Ucreate("Text23");;Ucreate("Text24"); //Ucreate("Text30");Ucreate("Text31");Ucreate("Text32");;Ucreate("Text33");;Ucreate("Text34"); //Ucreate("Text35");Ucreate("Text36");Ucreate("Text37");;Ucreate("Text38");;Ucreate("Text39"); //Ucreate("Text40");Ucreate("Text41");Ucreate("Text42");;Ucreate("Text43");;Ucreate("Text44"); //Ucreate("Text45");Ucreate("Text46");Ucreate("Text47");;Ucreate("Text48");;Ucreate("Text49"); //Ucreate("Text50");Ucreate("Text51");Ucreate("Text52");;Ucreate("Text53");;Ucreate("Text54"); inspect(Text20,"button.script","funflg=1;name="+Dq+"Delete()"+Dq+";"); Text20.xy=Pxy; inspect(Text21,"button.script","funflg=1;name="+Dq+"Allclear()"+Dq+";"); Text21.xy=Pxy+Bx; inspect(Text22,"button.script","funflg=1;name="+Dq+"Left()"+Dq+";"); Text22.xy=Pxy+Bx*2; inspect(Text23,"button.script","funflg=1;name="+Dq+"Right()"+Dq+";"); Text23.xy=Pxy+Bx*3; inspect(Text23,"button.script","funflg=1;name="+Dq+"RRight()"+Dq+";"); Text24.xy=Pxy+Bx*4; inspect(Text30,"button.script","funflg=1;name="+Dq+"^("+Dq+";"); Text30.xy=Pxy+By; inspect(Text31,"button.script","funflg=1;name="+Dq+"sin("+Dq+";"); Text31.xy=Pxy+By+Bx; inspect(Text32,"button.script","funflg=1;name="+Dq+"cos("+Dq+";"); Text32.xy=Pxy+By+Bx*2; inspect(Text33,"button.script","funflg=1;name="+Dq+"("+Dq+";"); Text33.xy=Pxy+By+Bx*3; inspect(Text34,"button.script","funflg=1;name="+Dq+")"+Dq+";"); Text34.xy=Pxy+By+Bx*4; inspect(Text35,"button.script","funflg=1;name="+Dq+"7"+Dq+";"); Text35.xy=Pxy+By*2; inspect(Text36,"button.script","funflg=1;name="+Dq+"8"+Dq+";"); Text36.xy=Pxy+By*2+Bx; inspect(Text37,"button.script","funflg=1;name="+Dq+"9"+Dq+";"); Text37.xy=Pxy+By*2+Bx*2; inspect(Text38,"button.script","funflg=1;name="+Dq+"x"+Dq+";"); Text38.xy=Pxy+By*2+Bx*3; inspect(Text39,"button.script","funflg=1;name="+Dq+"t"+Dq+";"); Text39.xy=Pxy+By*2+Bx*4; inspect(Text40,"button.script","funflg=1;name="+Dq+"4"+Dq+";"); Text40.xy=Pxy+By*3; inspect(Text41,"button.script","funflg=1;name="+Dq+"5"+Dq+";"); Text41.xy=Pxy+By*3+Bx; inspect(Text42,"button.script","funflg=1;name="+Dq+"6"+Dq+";"); Text42.xy=Pxy+By*3+Bx*2; inspect(Text43,"button.script","funflg=1;name="+Dq+"+"+Dq+";"); Text43.xy=Pxy+By*3+Bx*3; inspect(Text44,"button.script","funflg=1;name="+Dq+"-"+Dq+";"); Text44.xy=Pxy+By*3+Bx*4; inspect(Text45,"button.script","funflg=1;name="+Dq+"1"+Dq+";"); Text45.xy=Pxy+By*4; inspect(Text46,"button.script","funflg=1;name="+Dq+"2"+Dq+";"); Text46.xy=Pxy+By*4+Bx; inspect(Text47,"button.script","funflg=1;name="+Dq+"3"+Dq+";"); Text47.xy=Pxy+By*4+Bx*2; inspect(Text48,"button.script","funflg=1;name="+Dq+"*"+Dq+";"); Text48.xy=Pxy+By*4+Bx*3; inspect(Text49,"button.script","funflg=1;name="+Dq+"/"+Dq+";"); Text49.xy=Pxy+By*4+Bx*4; inspect(Text50,"button.script","funflg=1;name="+Dq+"0"+Dq+";"); Text50.xy=Pxy+By*5; inspect(Text51,"button.script","funflg=1;name="+Dq+"pi"+Dq+";"); Text51.xy=Pxy+By*5+Bx; inspect(Text52,"button.script","funflg=1;name="+Dq+"e"+Dq+";"); Text52.xy=Pxy+By*5+Bx*2; inspect(Text53,"button.script","funflg=1;name="+Dq+"fr("+Dq+";"); Text53.xy=Pxy+By*5+Bx*3; inspect(Text54,"button.script","funflg=1;name="+Dq+","+Dq+";"); Text54.xy=Pxy+By*5+Bx*4; //////////////////// Draw/figures ///////////////////////// Ketinit(1.5); Setketcindyjs(["Sc=1.2","Color=offwhite"]); Setwindow([-0.5,10],[-5.5,5.5]); Setscaling(0.1); Setax(["","t","","x","","",""]); //Addax(0); /////////////// キーボード入力 ////////////// nameL1=[["BS","AC","<",">",">>"]]; Keytable(5,11.6,1,9,[8,5.1],[0,1,0],nameL1,[0,-0.2],20); nameL2=Keyname(); Keytable(5,11.6,5,9,[8,0.58],[1,1,0],nameL2,[0,-0.2],20); if(funflg==1, if(contains(Manifun,name), parse(name+";"); , tmp=indexof(Str,"?"); if(tmp>0,npos=tmp,npos=length(Str)); out=Addfunstr(name,npos,Str); tmp=length(out_1)-length(Str); npos=npos+tmp; Str=out_1; //npos=out_2; if(npos0, rr=replace(Rcdystr,"t","x"); eq1="y''=-aa*y'-bb*y+"+rr; eq1=Assign(eq1,["aa",aa,"bb",bb]); Setscaling(1/60); Deqplot("1",eq1,"x=[0,XMAX]",0,[C1.y,C2.y],["Num=1000"]); Htickmark([5,"5",10,"10"]); Vtickmark([-5*60,"-300",5*60,"300"]); ); ////////////// 微分方程式の表示 ///////////// Setscaling(1); Letter([-3,9],"e","定数係数線形微分方程式",["Size=1.5"]); Expreq(eq):=( regional(str); str=eq; str=replace(str,"x","t"); str=replace(str,"y''","\frac{d^{2}x}{dt^2}"); str=replace(str,"y'","\frac{dx}{dt}"); str=replace(str,"y","x"); str=replace(str,"*",""); str=replace(str,"(",""); str=replace(str,")",""); str=replace(str,"+-","-"); str=replace(str,"-1","-"); str=replace(str,"+0x",""); str=replace(str,"+1x","+x"); str="\displaystyle "+str; str; ); if(length(Rstr)>0, eq2="y''+aa*y'+bb*y="; eq2=Assign(eq2,["aa",aa,"bb",bb]); str0=Expreq(eq2)+Rtexstr; Expr([[3,7.8],"e",str0],["size->20"]); ); str1="x(0)="+format(C1.y,2); Expr([[-3,7.8],"e",str1],["size->20"]); str2="\dfrac{dx}{dt}(0)="+format(C2.y,2); Expr([[-0.5,7.8],"e",str2],["size->20"]); Windispg();