数与图(6)——多项式乘法
在上一篇文章《数与图(5)》中,我们实现了合并同类项操作,而合并同类项是多项式乘法的基础,本文在此基础上,用程序实现多项式的乘法运算。
首先将上一篇文章的项目“合并同类项”另存为“多项式乘法”,将屏幕的标题修改为“多项式乘法”,然后就可以切换到编程视图,开始编写程序了。
一、修改原有程序
1、修改已有过程名称
将有返回值过程“多项式列表”的名称修改为“单项式列表”。如图1所示。这样修改的原因有两个,一是就列表本身的内容来看,其中的列表项均为单项式;二是新建程序的需要,我们将创建一个新的有返回值过程“多项式列表”,见图5。
图1 修改已有过程的名称
2、修改全局变量的名称及内容
如图2所示,将原有的全局变量“多项式”修改为“多项式题目”,并改写变量内容。
图2 修改全局变量的名称及变量值
二、新建过程
1、双多项式乘积
求两个单项式的乘积,代码如图3所示。首先求出两个单项式的系数和指数,然后将系数相乘,指数相加,最后拼写出单项式乘积字串。
图3 有返回值过程——双单项式乘积
2、双多项式乘积
求两个多项式的乘积,代码如图4所示。首先将两个多项式表达式转化为多项式列表,然后利用双重针对列表的循环,逐项求单项式的乘积。注意这时的返回结果尚未合并同类项。
图4 有返回值过程——双多项式乘积
3、多项式列表
将多项式的乘积表达式转化为多项式列表,代码如图5所示,首先用“*”将乘积表达式(形式见图2中的全局变量)分解为列表,再针对列表进行循环,将每个列表项中的左右括号去掉,最后返回一个多项式列表。注意列表项的替换操作,单纯修改列表项的值,而不执行替换操作,无法更新列表项的值。
图5 有返回值过程——多项式列表
4、求多项式的乘积
求多个多项式的乘积,代码如图6所示。首先提取出多项式列表中的第一项,命名为“前项”,然后利用针对数字的循环,逐一提取后面的列表项,命名为“后项”,将前项与后项的乘积保存到前项中。注意此时对乘积进行了合并同类项操作,以便减少运算次数。
图6 有返回值过程——多项式乘积
三、事件处理程序
在按钮1的点击事件处理程序中,用标签来显示题目及运算结果,代码如图7所示。
图7 按钮点击事件处理程序
四、测试
针对全局变量中给定的题目进行运算测试,所得结果如图8所示。这里没有针对系数作进一步的完善,请读者参照文章《数与图(4)》自行加以修改。
图8 测试结果
五、讨论
简单的多项式乘法,例如(x+3.6)*(x+2.5),对我们人类来说并不困难,但是随着多项式数量的增加,计算的难度会急剧加大,这时就显示出程序的威力。
在安卓的应用商店里可以找到“公式计算器”一类的应用,如图9所示,其实我们也可以开发出自己的公式计算器。
图9 一款公式计算器应用的用户界面
我们用三篇文章的篇幅讲解了与多项式有关的程序问题,目的是在后续文章中使用它们,也就是说,围绕着多项式,有许多的话题可以展开。