第三篇代数运算顾名思义,《超级画板》以画为主。但数理学科中的画不是一般的画,是科学的画。动态的图像,表现出的是数量的关系。以形表数,以数御形,形数结合,是所有动态几何软件的灵魂,超级画板中这个特点尤其突出。其实,超级画板已经突破了动态几何的框架,发展成为集动态图形与动态计算于一体的逻辑动漫平台。把数和代数式的运算掌握好,有助于运用超级画板作出更具启发性的作品。在教学中也有助于把相对抽象的代数知识,用具体的图像呈现出来。一赋值语句和定义函数超级画板中的赋值语句和数学中常用的一样,用等号。要给a赋值5,可在英文输入状态键入a=5;这里,分号表示一个语句的结束。注意,在中文状态下键入的分号是不行的!执行程序的操作方法,是把鼠标的光标放在分号后面,按着Ctrl键打Enter键(这是超级画板程序工作区中执行程序的操作方法,以下只说“执行”,不再解释),计算机返回:5#(计算机执行下面的语句时,从这个#后开始阅读,所以这个#是有用的)这是计算机对所执行的程序的回答,叫做“返回”表示已经将a赋值为5.不信你再键入:a+3;执行后返回8;#这说明计算机已经知道a的当前值是5.如果要让a的值增加2,可键入a=a+2;这行命令的含义是把a的当前值加2后作为a的新值,我们知道这是赋值语句.执行后返回:7#这表明a的当前值已经改变为7.如不放心,要确认,可键入a;执行后返回7#现在将b赋值为6,键入“b=6;”,执行,于是a、b都被赋值,a=7,b=6。例1编写一段程序,使a、b交换所赋的值。解要有第3个变量作为过渡,才能实现交换.程序为:c=a;a=b;b=c;执行上述程序(鼠标的光标放在最后一行的分号后面,用Ctrl+Enter键执行),再检查一下,a和b的当前值是不是已经交换了?例2圆台上下底半径分别为a=3,b=7,高h=4;编写一段程序计算圆台体积V.解程序为a=3;b=7;h=4;V=π*(a^2+b^2+a*b)*h/3;注意,在程序语言中一般用*表示乘号,不能省略。执行后返回(316*pi)/(3)#这里pi表示圆周率π。上面有4句程序语句,前面的几句计算机只执行而不显示其返回值;最后一句才显示返回值。如果希望每一句都显示返回值,只有写一句执行一句了。《超级画板》的程序工作区在缺省情形作符号计算,把圆周率π作为符号处理。若要求出近似值来,可以执行一个做浮点计算的命令:Float(1);返回为:计算结果显示浮点数#再执行计算V的命令:V=π*(a^2+b^2+a*b)*h/3;这回的返回就是近似值:(316*pi)/(3)=330.914#想要回到符号计算,则执行:Float();返回为:计算结果不显示浮点数#这时再执行V=π*(a^2+b^2+a*b)*h/3;又会返回“(316*pi)/(3)”。上面的运行情形,保存为文件“3-1赋值语句.zjz”,如图3-1。图3-1你会想,直接键入“V=π*(3^2+7^2+3*7)*4/3;”,执行后不是一样吗,何必先给a、b、h赋值呢?先给a、b、h赋值的好处在于,如果要计算其他圆台的体积,只要复制这段程序,把前面的数据改一下就可以执行,而不必改动公式中的数据.如果所用的公式比较复杂,这样先赋值再用公式计算的优越性就很明显了.如果想再方便一些,可以把这段程序做成一个计算圆台的体积的函数.为此只要键入V(a,b,h){π*(a^2+b^2+a*b)*h/3;}执行后返回:V(a,b,h)#这说明,函数V(a,b,h)的定义已经完成.这里,V叫做函数名,a、b、h叫做变元或参数;花括弧中的语句,可以是1行或几行,叫做函数体;这是定义函数的一般方法。要使用这个函数计算上下底半径分别为a=2,b=5,高h=6的圆台的体积,只要键入V(2,5,6);执行后就会返回答案,即78*pi。例3编写一个由三角形三边a、b、c计算其面积m的函数程序.解使用海伦公式,即秦九韶的三斜求积公式,可写成下列函数程序:m(a,b,c){s=(a+b+c)/2;(s*(s-a)*(s-b)*(s-c))^(1/2);}执行后就建立了函数m(a,b,c);要计算三边长为5、6、7的三角形面积,只要键入m(5,6,7);执行即可.例4编写解二元一次方程组的程序,并用来解下列方程组。3x+2y=54x-3y=18解一般的二元一次方程组的形式是ax+by=ecx+dy=f(ad-bc≠0)用消元法解此方程组,得到ed-bfx=ad-bc,af-cey=ad-bc据此,可以分别写出计算x,y的函数程序:x(a,b,c,d,e,f){(e*d-b*f)/(a*d-b*c);}y(a,b,c,d,e,f){(a*f-c*e)/(a*d-b*c);}执行后就建立了二元一次方程组求解函数.要解例中的具体问题,只要执行:x(3,2,4,-3,5,18);就得到3,即x=3;若执行y(3,2,4,-3,5,18);则得到-2,即y=-2.上面的例子的运行结果,保存为文件“3-2定义函数”,见图3-2。图3-2我们看到,赋值语句虽然简单,用它还是可以做不少事的。上面所举的例子,都是把数字赋予字母变量.其实,也可以将字母或数学表达式赋予字母变量。如果键入a=1+y;执行后返回y+1#再键入a^3;执行后得到y3+3y2+3y+1#例5把(x+y+z)的9次方的展开式看成y的多项式,写出求其中y7项的系数的程序.解函数Coeff(f,u,k)可以求出多项式f中u的k次项的系数,使用它容易写出所要程序:p=(x+y+z)^9;Coeff(p,y,7);执行后返回36*x^2+72*x*z+36*z^2#如果要求(x+2y+xy)的9次方的展开式中x5y8项的系数,可以两次调用函数Coeff:q=(x+2*y+x*y)^9;A=Coeff(q,x,5);Coeff(A,y,8);执行后返回:10080#要注意的是,把表达式赋值给变量后,表达式中的符号的赋值并不能影响该变量。也就是说,该变量所代表的表达式得到了“保护”。例如,把变量b赋值为u+2后,再给u赋值为2,这时u+2的值为7,但变量b仍保持u+2的形式。因此,不宜通过变量赋值来作多次代换。需要作代换,可以使用定义函数的方式。下面的操作说明把表达式赋值给变量后,表达式中的符号的赋值并不能影响该变量:b=u+2;u+2#b;u+2#u=7;7#b;u+2#u+2;9#b-(u+2);u-7#这时u-7为0,但仍写成u-7,就是为了保持b的形式。如果定义B(u)=u+2,则B(x)=x+2,这是赋值和函数的不同。上面的运算过程保存为文件“3-3把表达式赋值给变量.zjz”,如图3-3。图3-3二乘幂和代数式的运算《超级画板》提供了符号计算的功能,并且把符号计算和公式书写联系在一起。使用这些功能,可以帮助学生建立有关乘幂和代数式运算的基本概念,以及验算练习题或习题的计算结果。例如,讲乘幂的概念时,在程序工作区作图3-4所示的计算,就容易理解了(参看本书配套资源中的文件3-4乘幂的运算.zjz)。图3-4图中左边是程序工作区,是实际运算的地方。双斜杠“//”表示后面一行是注解,不参加运算。运算命令要再英文输入状态下键入,用英文分号“;”结尾。鼠标的光标放在分号后,按着Ctrl键击Enter键执行运算命令,在“”号后面就是运算的结果,叫做“返回”。记住,指数前用“^”号,乘法用“*”号,除法和分数线用“/”表示。如果你找不到程序工作区,可以执行菜单命令“查看|工具栏|程序工作区”,使程序工作区显示出来。如图所示,当你在程序工作区作计算时,你输入的文字符号和计算结果,都会在作图区的一个文本框里以通常的格式显示出来。不过,“*”号仍然不变。要想把它省略或改成空格,改成普通的乘号或圆点,可以用右键单击文本框,在右键菜单中单击“属性”打开属性设置对话框,在文本栏下面选择用什么代替“*”号,如图3-5。图3-5对文本框里显示的公式可以进行编辑,或复制。直接双击文本框,也能进入编辑状态,并且也能复制。复制后,单击上方工具栏里的文本生成图标,打开新的文本输入对话框,可以将复制的内容粘贴并编辑。图3-4左下方的文本框,就是复制后粘贴编辑的结果。有时可能需要把《超级画板》生成的文本公式或图形粘贴到其它地方,例如Word文档或wps文档之中,就要用另外的复制方法了。一个方法是直接使用“屏幕拷贝”,也就是按一下“PrtSc”(PrintScreen)键,然后打开Windows的附件中的“画图”工具,执行其菜单命令“编辑|粘贴”,生成屏幕拷贝的图片(BMP或JPG格式)供剪裁备用(注:此处有一个小技巧,当按住Alt键,再按“PrintScreen”键,则只会拷贝屏幕的当前活动窗口)。。另一个方法是,先选择所要的文本或图形,再按Ctrl+C键或用鼠标单击上方工具栏里的“复制”图标,就把它变成图元格式(Emf格式)并复制到Windows的剪贴板上了。然后打开Word文档,按Ctrl+V键或用鼠标单击上方工具栏里的“粘贴”图标即可。但是,这样复制得到的公式有时会变形,不如屏幕拷贝的图片美观。使用程序工作区的符号运算功能,还可以用来说明更多的运算法则。如图3-8,这是文件3-4乘幂的运算.zjz的第二页。图中右边的文本框已经过编辑。图3-6在“程序区”里输入下面的运算式子,每输入一个式子,执行一次,最后的运行情形如图3-7所示;参看本书配套资源中的文件“3-5探索函数性质.zjz”。f(x){x^2+1;}f(2);f(-2);f(a);f(b);f(a+b);g(x){a*x^2+b*x+c;}g(0);g(1);g(-b/(2*a));图3-7图3-8[习题3-2]在课本上找更多的例题和习题,在程序工作区计算验证。三解方程和方程组(1)探索根与系数关系在“程序区”里输入下面的运算式子,每输入一个式子,执行一次,最后的运行情形如图3-8所示;参看本书配套资源中的文件“3-5探索函数性质.zjz”的第二页。F(a,b,c,x){a*x^2+b*x+c;}A=F(a,b,c,u);B=F(a,b,c,v);(A-B)/(u-v);F(a,-(a*u+a*v),c,u);(u+v)^2-4*u*v;Factor(u^2-2*u*v+v^2);p=-(u+v);q=u*v;p^2-4*q;Factor(p^2-4*q);我们假设已知u、v是a*x^2+b*x+c=0的两个根,u≠v,a≠0,该怎样来两根之积与两根之和呢?当得到a*u+a*v+b=0时,即u+v=-b/a;再将b=-(a*u+a*v)代入F(a,b,c,u)可得u*v=c/a;我们假设已知a*x^2+b*x+c=0的两根之积与两根之和分别是呢-p和q,该怎样来求两个根呢?关键就在于求出两根之差。设u、v是a*x^2+b*x+c=0的两个根,则u+v=-p,u*v=q.当求出(u-v)^2=p^2-4*q时,要注意开方有正负。(2)解二元一次方程组3254318xyxy。在“程序区”里输入下面的运算式子,每输入一个式子,执行一次,最后的运行情形如图3-9所示;参看本书配套资源中的文件“3-6解二元一次方程.zjz”。A=3*x+2*y-5;B=4*x-3*y-18;4*A-3*B;3*A+2*B;D2(a,b,c,d){a*d-b*c;}d=D2(3,2,4,-3);x=D2(5,2,18,-3)/d;y=D2(3,5,4,18)/d;图3-9上面我们用两种解法得出:y=-2,x=3。前者是利用系数相消,高等数学中的克莱姆(Cramer)法则,读者可以利用函数的嵌套计算余子式,尝试解一个三元一次方程组。(提示:D2(a,b,c,d){a*d-b*c;},D3(a1,b1,c1,a2,b2,c2,a3,b3,c3),{a1*D2(b2,c2,b3,c3)+a2*D2(b3,c3,b1,c1)+a3*D2(b1,c1,b2,c2);})。(3)方程和方程组课件制作从