数与图(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 一款公式计算器应用的用户界面

我们用三篇文章的篇幅讲解了与多项式有关的程序问题,目的是在后续文章中使用它们,也就是说,围绕着多项式,有许多的话题可以展开。

(0)

相关推荐

  • 2.5. 运算符与表达式 |《Python 简明教程 2018》| Python 技术论坛

    运算符与表达式# 通常你所写出的程序语句(逻辑行)会包含若干表达式. 如 2 + 3 即为一个简单的表达式.表达式由运算符与操作数构成. 运算符是一些可以用 + 号或其他关键词符号替代的功能.运算符会 ...

  • 多项式

    ◎ 多项式的定义 多项式:几个单项式的和叫做多项式.多项式中,每个单项式叫做多项式的项,不含字母的项叫做常数项,这些单项式中的最高次数,就是这个多项式的次数.多项式和单项式统称为整式. ◎ 多项式的知 ...

  • 【初一】第6讲 单项式、多项式的乘法(教师版)

    (1)承蒙厚爱,先干为敬.所有课件教案均为整理版,非原题作者,若有侵权,请联系胡先森. (2)需要word版本的同学或者同行,可添加胡先森微信,注明来意,胡先森可能姗姗来迟,但不会缺席. (3)欢迎联 ...

  • 数与图(4)——多项式表达式

    在数与图(3)中,我们绘制了一次函数.二次函数及三次函数的图形,接下来我们希望绘制更为复杂的函数图形,如下式: 通过改变系数的值,来观察系数对曲线形状的影响.这项任务涉及到大量的运算,对于人类来说,即 ...

  • 数与图(7)——求多项式的值

    在上一篇<数与图(6)>中,我们实现了多项式的乘法,但是遗留了一个很重要的问题--如何验证程序的正确性呢?在这篇文章中,我们尝试给定一个x的值,用两种方法求多项式的值,即,同时将x的值带入 ...

  • 数与图(1)

    App Inventor的画布组件,相当于一个平面直角坐标系,画布上的任何一点都可以用一对坐标(x,y)加以描述,而画布具有画笔的功能,可以在指定位置绘制点.线.圆等基本图形,这就使得开发者可以用程序 ...

  • 数与图(2)

    在上一篇文章『数与图(1)』中我们遗留下一个问题,当坐标轴的原点不在画布范围内时,程序会报错,现在我们就来解决这个问题. "原点不在画布范围内"可能有三种不同的情况: (1)x轴原 ...

  • 数与图(2)修正版

    说明:此前发送的『数与图(2)』缺少图1,现将图1补上,重新发送,给您带来的不便,请多包涵. 在上一篇文章『数与图(1)』中我们遗留下一个问题,当坐标轴的原点不在画布范围内时,程序会报错,现在我们就来 ...

  • 数与图(3)

    在前两篇文章(数与图(1).数与图(2))中,我们完成了对坐标系的绘制,现在可以在坐标系中绘制函数图像了. 在高中数学课本里,函数被表示为y=f(x),在函数的定义域内,每一个x值,都有唯一的y值与其 ...

  • 数与图(5)——合并同类项

    在上一篇文章<数与图(4)>中,我们拼写出多项式表达式,其难点在于如何处理众多可能的条件分支.本篇文章继续讨论与多项式有关的代数运算--合并同类项. 拥有初中数学基础的读者都知道合并同类项 ...

  • 数与图(8)——计算的代价

    在<数与图(7)>中,我们通过求多项式的值,检查出程序的bug,于是从最靠近结果的部分开始,追溯错误产生的原因,找到并最终改正了错误.本篇文章继续讨论求值的问题,我们要来评价一下计算的代价 ...

  • 数与图(9)——幂函数曲线

    在<数与图(3)>中我们分别绘制了一次函数.二次函数及三次函数的曲线,本篇文章中,我们将绘制6次函数的曲线,函数的表达式为 y = (x+3.6)*(x+2.5)*(x+1)*(x-0.5 ...