云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 第五章 循环结构程序设计

第五章 循环结构程序设计

  • 62 次阅读
  • 3 次下载
  • 2025/6/1 17:25:40

编写窗体的Load事件过程,设置控件有关的属性。代码如下: Private Sub Form_Load()

Frame1.Caption = \求下述数列前n项之和:\ Frame2.Caption = \输入项数n\

Label1.Caption = \ Label2.Caption = \

Command1.Caption = \计算\ Text1.Text = \ Show

Text1.SetFocus End Sub

编写“计算”命令按钮Command1的Click事件过程,实现求数列前n项和的算法,并通过标签Label2输出计算的结果。代码如下:

Private Sub Command1_Click()

Dim n as Integer, k As Integer Dim x as Single, s As Single n = Val(Text1.Text) x = 2: s = 0: k = 1 Do While k <= n x = 1 + 1 / x s = s + x k = k + 1 Loop

Label2.Caption = \前\项和等于:\ Text1.SelStart = 0

Text1.SelLength = Len(Text1.Text) Text1.SetFocus End Sub

程序运行情况如图5-23所示。程序中,以数列的第1项2为起点,通过递推公式,计算出了数列中以后的各项。

例5-18 牛顿切线法求根。求方程x?e?2的根。

算法:对方程f(x)?0给定一个初值x0作为方程的近似根,即迭代计算的初值,经过若干次迭代后,可以得到方程较高精度的近似根。牛顿切线法迭代公式为:

xxi?1?xi?f(xi) 'f(xi)其中:f'(xi)是f(xi)的导数,当xi?1?xi??时,xi?1就作为方程的近似解。 由数学理论可知,牛顿切线法的实质是逐步以切线与x轴的交点来作为曲线与x轴交点的近似值。

根据题目可知:f(x)?x?e?2,从而f(x)?1?e。可得流程图,如图5-24所示。 设计步骤如下:

⑴创建一个工程,在窗体上添加一个框架Frame1,一个命令按钮Command1和一个标签Label1(输出计算的近似根)。程序用户界面如图5-25所示。

⑵编写程序代码。

编写窗体的Load事件过程,设置控件的有关属性。代码如下: Private Sub Form_Load()

Frame1.Caption = \求方程:x=Exp(x)-2的根\ Command1.Caption = \求解根近似值\ Label1.Caption = \

x'xEnd Sub

编写“求解根近似值”按钮Command1的Click事件过程,输入0次近似根,输入小数点后的有效位数,完成迭代计算,求出指定精度的近似根。代码如下:

Private Sub Command1_Click()

Dim y As Single, x As Single, Err As Single, n As Integer y = Val(InputBox(\请输入0次近似根\输入近似根\

n = Val(InputBox(\请输入小数点后的有效位数\输入允许误差\ Err = 10 ^ -n Do

x = y

f = x - Exp(x) + 2 d = 1 - Exp(x) y = x - f / d

Loop Until Abs(x - y) < Err

Label1.Caption = \根的近似值=\End Sub

图5-24 牛顿切线法求根流程图 图5-25 牛顿迭代法求方程的根

程序运行情况如图5-25所示。

1例 5-19 数值积分。求定积分sin(x)dx的值。

0?2算法:数值积分是用近似计算方法,解决定积分计算问题。常用的方法有矩形法、梯形法、抛物线法等,按积分划分的区间,又有定长和变长的不同实现方法。若用定长梯形法计

b算定积分

?af(x)dx的思想是:将积分区间[a,b]n等分,小区间的长度为h?b?a ,第in块微梯形的近似面积为:si?S??f(x)dx??ai?1bnf(xi)?f(xi?1)?h,积分的结果为所有微面积的和:

2n?1f(xi)?f(xi?1)?1??h??(f(a)?f(b))??f(xi)??h

2i?1?2?当n越大,求出的面积值越接近于积分值。

设计步骤如下:

⑴创建一个工程,在窗体上添加一个框架Frame1,一个命令按钮Command1和一个标签Label1(输出计算结果)。程序用户界面如图5-26所示。

图5-26 求定积分的值

⑵编写程序代码。

编写窗体的Load事件过程,设置控件的有关属性。代码如下: Private Sub Form_Load()

Frame1.Caption = \求[0,1]区间的定积分:∫sin(x*x)dx\ Command1.Caption = \求定积分近似值\ Label1.Caption = \End Sub

编写命令按钮Command1的Click事件过程,输入区间等分数,计算积分和。代码如下: Private Sub Command1_Click()

Dim sum As Single, h As Single, x As Single, n As Integer

n = Val(InputBox(\请输入区间的等分数\输入区间等分数\ h = (1 - 0) / n

sum = (Sin(1 * 1) + Sin(0 * 0)) / 2 For i = 1 To n - 1 x = 0 + i * h

sum = sum + Sin(x * x) Next

sum = sum * h

Label1.Caption = \根的近似值=\End Sub

程序运行情况如图5-26所示。

例5-20 穷举法解不定方程。在“算经”里有一百鸡问题:鸡翁一值钱五,鸡母一值钱三,鸡雏值钱一,百钱买百鸡。问鸡翁、鸡母、鸡雏各几何?

分析:设公鸡x只,母鸡y只,小鸡z只,依题义可以列出方程组:

?x?y?z?100??5x?3y?z?100 ?3?在这2个方程中,有3个未知数,属于不定方程,无法直接求解。可以用穷举法,对各种可能的变量组合进行测试,将符合条件的组合输出,即为可能的解。

由题目可知,x可以由1变到100,对x的每一个取值,y又可以由1变到100,根据第1个方程,z=100-x-y,这样可以得到x、y、z的所有组合,对其中的每一组取值组合都带到第2个方程中去测试,不满足的就放弃,满足的便是解。这个测试过程容易用双重for循环实现。

设计步骤如下:

⑴创建一个工程,在窗体上添加一个框架Frame1,一个命令按钮Command1,一个标签Label1和一个列表框list1(输出计算结果)。程序用户界面如图5-27所示。

图5-27 百钱买百鸡

⑵编写程序代码。

编写窗体的Load事件过程,设置控件的有关属性。代码如下: Private Sub Form_Load()

Frame1.Caption = \百鸡问题\

Label1.Caption = \公鸡 母鸡 小鸡\ Command1.Caption = \求解百钱买百鸡\End Sub

编写命令按钮Command1的Click事件过程,完成计算,并输出结果。代码如下: Private Sub Command1_Click()

Dim x As Integer, y As Integer, z As Integer List1.Clear

For x = 1 To 100 For y = 1 To 100 z = 100 - x - y

If 5 * x + 3 * y + z / 3 = 100 Then

List1.AddItem x & \ End If Next Next End Sub

程序运行情况如图5-27所示。

习题5

一.单选题

1.下列循环语句所确定的循环次数是 。

搜索更多关于: 第五章 循环结构程序设计 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

编写窗体的Load事件过程,设置控件有关的属性。代码如下: Private Sub Form_Load() Frame1.Caption = \求下述数列前n项之和:\ Frame2.Caption = \输入项数n\ Label1.Caption = \ Label2.Caption = \ Command1.Caption = \计算\ Text1.Text = \ Show Text1.SetFocus End Sub 编写“计算”命令按钮Command1的Click事件过程,实现求数列前n项和的算法,并通过标签Label2输出计算的结果。代码如下: Private Sub Command1_Click() Dim n as Integer, k As I

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com