[政史地]b例题循环ppt课件_第1页
[政史地]b例题循环ppt课件_第2页
[政史地]b例题循环ppt课件_第3页
[政史地]b例题循环ppt课件_第4页
[政史地]b例题循环ppt课件_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022-5-91我国古代数学家张丘建在我国古代数学家张丘建在“算经算经”里提出里提出一个世界数学史上有名的百鸡问题:鸡一个世界数学史上有名的百鸡问题:鸡翁一、值钱五翁一、值钱五, 鸡母一、值钱三,鸡雏三、鸡母一、值钱三,鸡雏三、值钱一,百钱买百鸡,问鸡翁、母、雏值钱一,百钱买百鸡,问鸡翁、母、雏各几何?各几何? 分析:若公鸡分析:若公鸡x只,母鸡只,母鸡y只,小鸡只,小鸡z只,只,依题意可以列出以下方程组:依题意可以列出以下方程组:100335100 xyxzyx2022-5-92 在上面的两个方程中,有在上面的两个方程中,有3个未知个未知数,属于不定方程,无法直接求解。下数,属于不定方程,

2、无法直接求解。下面我们用面我们用“穷举法穷举法”求解。穷举法是将求解。穷举法是将各种可能的组合全部一一测试,将符合各种可能的组合全部一一测试,将符合条件的组合输出。这里使用二层循环结条件的组合输出。这里使用二层循环结构。即将公鸡数从构。即将公鸡数从1变化到变化到100,母鸡数,母鸡数也从也从1变化到变化到100,对于每一组公鸡和母,对于每一组公鸡和母鸡数,从鸡数,从100中减去公鸡和母鸡数就得到中减去公鸡和母鸡数就得到小鸡的个数,然后再计算买三种鸡的总小鸡的个数,然后再计算买三种鸡的总钱数是否为钱数是否为100元。若是就得到一组解,元。若是就得到一组解,然后再继续。然后再继续。 2022-5-

3、93 再仔细分析一下,若再仔细分析一下,若100元钱全部都买公鸡元钱全部都买公鸡最多买最多买20只,如果全部买母鸡最多买只,如果全部买母鸡最多买33只,只,所以穷举法外循环中公鸡数可从所以穷举法外循环中公鸡数可从1 变到变到19,内循环中母鸡数可从内循环中母鸡数可从1 变化到变化到33,小鸡个数,小鸡个数应应100中减去公鸡数和母鸡数得到。中减去公鸡数和母鸡数得到。工程设计步骤如下:工程设计步骤如下:(1)新建)新建“标准标准EXE”工程,在出现的窗体工程,在出现的窗体上添加四个标签、一个列表框、一个框架和上添加四个标签、一个列表框、一个框架和两个命令按钮。其中标签两个命令按钮。其中标签1是放

4、在框架内。是放在框架内。 2022-5-94(2)标签)标签1的的Caption属性设为属性设为“公鸡五公鸡五元、母鸡三元、小鸡一元钱三只。元、母鸡三元、小鸡一元钱三只。100元元钱买钱买100只鸡。问公鸡、母鸡、小鸡各多只鸡。问公鸡、母鸡、小鸡各多少只?少只?”标签标签2-标签标签4的的Caption属性分属性分别设置为别设置为“公鸡公鸡”、“母鸡母鸡”、“小小鸡鸡”。如下图所示。如下图所示。 2022-5-95(3)代码编写如下:)代码编写如下:编写单击命令按钮编写单击命令按钮“计算计算”所执行的代码如下。所执行的代码如下。Private Sub Command1_Click()List1

5、.ClearFor x = 1 To 19 外循环求公鸡数外循环求公鸡数 For y = 1 To 33 内循环求母鸡数内循环求母鸡数 z = 100 - x y 小鸡数小鸡数 If 5 * x + y * 3 + z / 3 = 100 Then p = Format(x, ) & Format(y,_ )& Format(z, ) Format 是格式化是格式化一个表达一个表达式。式。2022-5-96 Rem 把满足条件的一种情况添加到列表框中。把满足条件的一种情况添加到列表框中。 List1.AddItem p End If Next y Next xEnd Sub编写

6、单击命令按钮编写单击命令按钮“退出退出”所执行的代码如下。所执行的代码如下。Private Sub Command2_Click() EndEnd Sub在列表框中在列表框中使用使用AddItem方方法添加项目法添加项目2022-5-97(4)运行结果。按)运行结果。按F5键运行工程出现运键运行工程出现运行界面后按行界面后按“计算计算”按钮后,得到结果按钮后,得到结果如下图所示。如下图所示。 图图4-17 百钱买百鸡问题的运行结果百钱买百鸡问题的运行结果 2022-5-98在窗体上输出下列图案在窗体上输出下列图案2022-5-99问题分析:问题分析: 该图案共有十行,每行有十个星号。要该图案共

7、有十行,每行有十个星号。要想输出该图案应使用想输出该图案应使用 For 循环结构循环结构,可以先用可以先用变量变量a存放这十个星号。使用语句:存放这十个星号。使用语句: a=“*” 由于要输出的是一个平行四边形,每一由于要输出的是一个平行四边形,每一行的起始位置比上一行位置多行的起始位置比上一行位置多2列。因此要使列。因此要使用用Tab函数来确定每一行输出的起始位置。函数来确定每一行输出的起始位置。 语句语句Print Tab(2* i) ;表示从第表示从第2* i 列开列开始输出内容。编写代码如下:始输出内容。编写代码如下:2022-5-910Option ExplicitPrivate S

8、ub Command1_Click()Dim a As String, i As Integer, j As Integera = *Form1.FontSize = 14 For i = 1 To 10 Print Tab(2 * i); Print a Next iEnd Sub 表示从每表示从每一行的第一行的第2* i 列开列开始输出变始输出变量量a的值。的值。2022-5-911 在窗体上输出下列图案在窗体上输出下列图案2022-5-912问题分析:问题分析: 该图案共有十行,每行有不同的星号。该图案共有十行,每行有不同的星号。第一行有一个第一行有一个“*”,第二行有三个,第二行有三个

9、“*”,第三行有五个第三行有五个“*”,要想输出该图案,要想输出该图案应使用双层应使用双层 For 循环结构循环结构,外层循环决定输出外层循环决定输出的行数,内层循环决定每行输出的星号数。的行数,内层循环决定每行输出的星号数。可以先用变量可以先用变量a存放一个星号。使用语句:存放一个星号。使用语句: a=“*” 由于要输出的是一个等腰三角形,每一由于要输出的是一个等腰三角形,每一行的起始位置比上一行位置少一列。因此要行的起始位置比上一行位置少一列。因此要使用使用Tab函数来确定每一行的起始位置。函数来确定每一行的起始位置。 语句语句Print Tab(18- i) ;表示从第表示从第18-i

10、列开始列开始输出内容。编写代码如下:输出内容。编写代码如下:2022-5-913编写代码如下:编写代码如下:Option ExplicitPrivate Sub Form_Click() Dim a As String Dim i As Integer, j As Integer a = * Form1.FontSize = 14 2022-5-914For i = 1 To 10 Print Tab(18 - i); For j = 1 To 2 * i - 1 Print a; Next j Print Next iEnd Sub外循环决定外循环决定共输出几行共输出几行内循环决定每行共内循

11、环决定每行共有几个有几个“*”第一行第一行是是1个个“*”,第二,第二行是行是3个个“*”,第第n是是2*n-1个个“*”。输出的位置输出的位置2022-5-915在窗体上输出乘法九九表在窗体上输出乘法九九表2022-5-916Option ExplicitPrivate Sub Form_Click() Dim i As Integer, j As Integer, k As Integer Dim m As Integer FontSize = 12 Print Tab(25); 乘法九九表乘法九九表 Print: Print Print * ; For i = 1 To 9 Print

12、Tab(i * 6); i; Next i Print 输出表头输出表头2022-5-917 For j = 1 To 9 Print j; ; For k = 1 To j Print Tab(k * 6); j * k; ; Next k Print Next j End Sub内循环决定输出乘积及个数外循环决定共输出几行2022-5-918打印下列图案打印下列图案 分析:上面的图案可分成两个等腰三角形。分析:上面的图案可分成两个等腰三角形。上面的三角形有上面的三角形有5行第行第1行为一个行为一个“*”,第,第2行为三个行为三个“*”,第,第3行为五个行为五个第第5行行有有2*5-1个个“

13、*”。代码编写如下页所示。代码编写如下页所示。2022-5-919Option ExplicitPrivate Sub Form_Click() Dim i As Integer, j As Integer Dim a As String For i = 1 To 5 Print Tab(20 - i); For j = 1 To 2 * i - 1 Print *; Next j Print Next i 输出上三角形2022-5-920 For i = 4 To 1 Step -1 Print Tab(20 - i); For j = 1 To 2 * i - 1 Print *; Nex

14、t j Print Next i End Sub输出下三角形2022-5-921任意输入一个自然数,编程输出其各任意输入一个自然数,编程输出其各个因子。工程设计步骤如下:个因子。工程设计步骤如下:(1)新建)新建“标准标准EXE”工程,在出现工程,在出现的界面上添加三个标签、一个文本的界面上添加三个标签、一个文本框、和两个命令按钮如图框、和两个命令按钮如图4-18所示。所示。 2022-5-922(2)设置窗体及控件的属性。标签)设置窗体及控件的属性。标签1的的Caption属性为属性为“请输入一个自然请输入一个自然数数”;标签;标签2的的Caption属性为属性为“N的的因子是:因子是:”;

15、标签;标签3的的Caption属性为属性为空,在运行时赋值。另外标签空,在运行时赋值。另外标签3的的Autosize属性为属性为True,以便在运行时,以便在运行时赋值能根据实际内容自动适应。其赋值能根据实际内容自动适应。其他属性如下页图他属性如下页图4-18所示。所示。 2022-5-923图图4-18求自然数因子的工程界面及属性设置求自然数因子的工程界面及属性设置2022-5-924输入一个数输入一个数y图图4- 19 输出某个自然数输出某个自然数y的所有因子流程图的所有因子流程图i=2y Mod i=0While y 1输出输出 iy =y ii = i +1YN2022-5-925(3

16、)编写代码如下:)编写代码如下:编写单击命令按钮编写单击命令按钮“计算计算”所执行的代码所执行的代码Private Sub Command1_Click() Dim x As String, y As Single y = Val(Text1.Text) i = 2 x = 2022-5-926Do While y 1 If y Mod i = 0 Then x = x & * & Str(i) & Chr(13) y = y i Else i = i + 1 End IfLoop Label3.Caption = x Label2.Caption = Text1.Te

17、xt & 的因子是的因子是:End Sub为找下一个为找下一个因子做准备。因子做准备。2022-5-927(4)运行结果。按)运行结果。按F5执行工程,当执行工程,当出现运行界面时,从文本中输入一出现运行界面时,从文本中输入一个自然数,然后单击命令按钮个自然数,然后单击命令按钮“计计算算”就会得到如图就会得到如图4-20所示的结果。所示的结果。即在标签即在标签3中输出了自然数的各个因中输出了自然数的各个因子相乘的结果;另外,标签子相乘的结果;另外,标签2的内容的内容也根据输入的数自动改变如图也根据输入的数自动改变如图4-20所示。所示。 2022-5-928 图图4-20 求自然数因子

18、的运行结果求自然数因子的运行结果 2022-5-929用牛顿迭代法求方程的根。所求的方程为:用牛顿迭代法求方程的根。所求的方程为:分析:用牛顿迭代法求方程分析:用牛顿迭代法求方程f (x ) = 0在在 x0 附近的附近的实根的方法如下。实根的方法如下。(1)选一个接近)选一个接近x 的真实根的真实根x1 ;(2)通过)通过x1 求出求出f( x1 )。在几何中就是作。在几何中就是作x = x1 ,交交f (x )于于 f ( x1 )见图见图4-21所示。所示。(3)过)过f( x1 )作作f (x )的切线,交的切线,交x 轴于轴于 x2,可以,可以用公式求出用公式求出x2。由于。由于 2

19、111)()( xxxfxf0 xex2022-5-930)( )(1112xfxfxx(4)通过)通过x2 求出求出f( x2 )。(5)再通过)再通过f( x2 )作作f (x )的切线,交的切线,交x 轴于轴于 x3 。 (6)再通过)再通过x3 求出求出f( x3 )。再通过。再通过f( x3 )作作f (x )的切线,交的切线,交x 轴于轴于 x4 。一直求下去,直一直求下去,直到接近真正的根。当两次求出的根之差到接近真正的根。当两次求出的根之差 | xn+1-xn |就认为就认为xn+1足够接近于真实的根。足够接近于真实的根。故故2022-5-931牛顿迭代公式是牛顿迭代公式是:

20、)( )(1nnnnxfxfxxf(x)x1x2x3x4f(x1)f(x2)f(x3)f(x4)yx图图4-21牛顿迭代法几何原理图牛顿迭代法几何原理图 2022-5-932工程设计步骤如下:工程设计步骤如下:(1)新建)新建“标准标准EXE”工程,在出现的界面上工程,在出现的界面上添加两个标签、一个文本框、一个图片框和添加两个标签、一个文本框、一个图片框和两个命令按钮。如图两个命令按钮。如图4-22左图所示。左图所示。(2)设置窗体及控件的属性如图)设置窗体及控件的属性如图4-22左图所示。左图所示。 4-22牛顿迭代法求方程根工程界面设计及运行结果牛顿迭代法求方程根工程界面设计及运行结果

21、2022-5-933(3)编写代码如下)编写代码如下编写单击编写单击Command1命令按钮命令按钮“求根求根”所执所执行的代码行的代码 Private Sub Command1_Click() Dim f As Double, f1 As Double Const eps = 0.0001 Dim x0 As Double, x1 As Double x1 = Val(Text1.Text)2022-5-934 Do x0 = x1 f = Exp(-x0) - x0 f1 = -Exp(-x0) - 1 x1 = x0 - f / f1 Loop While (x1 - x0) eps Picture1.Cls Picture1.Print x1End Sub 根从图片根从图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论