循环结构习题

上传人:M****1 文档编号:571379811 上传时间:2024-08-10 格式:PPT 页数:22 大小:226.50KB
返回 下载 相关 举报
循环结构习题_第1页
第1页 / 共22页
循环结构习题_第2页
第2页 / 共22页
循环结构习题_第3页
第3页 / 共22页
循环结构习题_第4页
第4页 / 共22页
循环结构习题_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《循环结构习题》由会员分享,可在线阅读,更多相关《循环结构习题(22页珍藏版)》请在金锄头文库上搜索。

1、 素数是一个大于素数是一个大于2,且,且不能被不能被1和本身以外的和本身以外的整数整除的数。整数整除的数。 判别某数判别某数m是否为素数最简单的方法是是否为素数最简单的方法是: 对于对于m, 从从 i=2,3, ,判别判别m能能否被否被i整除,只要有一个能整除,整除,只要有一个能整除,m不是素数,不是素数,否则否则m是素数。是素数。 求素数求素数求求100以内素数以内素数在循环语句中如何表示一个数是否为素数?在循环语句中如何表示一个数是否为素数? 定义一个定义一个Boolean型型变量变量Flag, Flag=true表示表示一个数为素数,一个数为素数, Flag=false表示一个数不是素数

2、。表示一个数不是素数。解题思路:解题思路:(1)如何判断一个数)如何判断一个数m是否为素数;(是否为素数;(m除以除以i=2 ).(2)使用循环语句找出使用循环语句找出1100之间所有的素数。之间所有的素数。Private Sub Command1_Click() Dim i As Integer, m As Integer, n as integer Dim flag As Boolean : n=0 For m = 2 To 100 flag = True If flag=true Then print m ; ” ” ; n=n+1 if n mod 10 = 0 then Print

3、End if Next mEnd Sub判断一数是否判断一数是否为素数,为素数,用flag来标注假定假定m为为素数素数根据根据flag来打印素数来打印素数For i = 2 To Sqr(m) If (m Mod i) = 0 Then flag = FalseNext i 在窗体上换行输在窗体上换行输出的方法,一行出的方法,一行固定输出固定输出10数字数字常用算法常用算法1. 1. 累加、连乘累加、连乘 累加是在原有和的累加是在原有和的基础上一次一次地每次基础上一次一次地每次加一个数。加一个数。 Sum = Sum + i 连乘是在原有积的连乘是在原有积的基础上一次一次地每基础上一次一次地每

4、次乘一个数次乘一个数 。 t = t * i 算法是对某个问题求解过程的描述算法是对某个问题求解过程的描述计算计算sum 1!2!3!10!Private Sub Form_Click() Dim sum As Long Dim i As Integer Dim t As Long sum = 0: t = 1 For i = 1 To 10 t = t * i sum = sum + t Next i Print 1!+2!+3!+.+10!=; sumEnd Sub求自然对数求自然对数e e的近似值的近似值, ,要求其误差小于要求其误差小于0.000010.00001,近似公式为近似公式为

5、: : 该例题涉及两个问题:该例题涉及两个问题: (1 1)用循环结构求级数和的问题。本例)用循环结构求级数和的问题。本例根据某项值根据某项值(t)(t)的精度的精度( (要求计算精度为要求计算精度为0.000010.00001)来控制循环的结束与否。来控制循环的结束与否。 (2 2)累加:)累加:e=e+t e=e+t 循环体外对累加和的变量清零循环体外对累加和的变量清零 e=0e=0 连乘:连乘:n=n*i n=n*i 循环体外对连乘积变量置循环体外对连乘积变量置1 1 n=1n=1级数级数t连乘积连乘积n累加和累加和ePrivate Sub Form_Click()Private Sub

6、 Form_Click() Dim i%, n&, t!, e!Dim i%, n&, t!, e! e = 0: n = 1e = 0: n = 1 e e存放累加和、存放累加和、n n存放阶乘存放阶乘 i = 0: t = 1i = 0: t = 1 i i计数器、计数器、t t第第i i项的值项的值 Do While t 0.00001Do While t 0.00001 e = e + t e = e + t 累加累加 i = i + 1i = i + 1 n = n * i n = n * i 连乘连乘 t = 1.0 / nt = 1.0 / n Loop Loop Print P

7、rint 计算了计算了 ; i; ; i; 项的和是项的和是 ; e; eEnd SubEnd Sub穷举法求水仙花数穷举法求水仙花数水仙花数是一个三位数,它的每位数的水仙花数是一个三位数,它的每位数的立方和刚好等于其本身。如立方和刚好等于其本身。如 153就是水仙就是水仙花数花数 153=13+53+33思考:找出思考:找出1000之内的所有完数。之内的所有完数。完数的界定:完数的界定: 一个数恰好等于他的因子之和,这个数一个数恰好等于他的因子之和,这个数就称为完数。如数字就称为完数。如数字6,它的因子是,它的因子是1、2、3,刚好有等式:,刚好有等式: 6=1+2+3 成立,所以成立,所以

8、6就是一个完数。就是一个完数。回文数:第一位数与最后一位数相等,第二位回文数:第一位数与最后一位数相等,第二位数与倒数第二位数相等数与倒数第二位数相等第第N位数与倒数第位数与倒数第N位位数相等数相等Private Sub Command1_Click()Dim n As IntegerDim i As IntegerDim sum As IntegerFor n = 1 To 1000 sum = 0 For i = 1 To n - 1 If n Mod i = 0 Then sum = sum + i Next i If sum = n Then Text1.Text = Text1.Te

9、xt & n & vbCrLf End IfNext n End Sub完完数数Private Sub Command1_Click()Dim num As StringDim str As StringDim i As Integernum = Text1.Textstr = For i = 1 To Len(num) str = Mid(num, i, 1) & strNext iIf str = num Then Label2.Caption = num & 是回文数是回文数Else Label2.Caption = num & 不是回文数不是回文数End IfEnd Sub回回文文数数

10、 “递推法递推法”又称为又称为“迭代法迭代法”,其基本思想是把一个复杂的计算过程转化,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都从旧值的基础上递推出新值,并由新值为简单过程的多次重复。每次重复都从旧值的基础上递推出新值,并由新值代替旧值。代替旧值。 实验实验D第第7题题:4.4.递推法递推法在在若若干干个个数数中中求求最最大大值值,一一般般先先假假设设一一个个较较小小的的数数为为最最大大值值的的初初值值,若若无无法法估估计计较较小小的的值值,则则取取第第一一个个数数为为最最大大值值的的初初值值;然然后后将将每每一一个个数数与与最最大大值值比比较较,若若该该数数大大于于

11、最最大大值值,将将该该数数替替换换为为最最大大值值;依依次次逐逐一比较。一比较。例例 随机产生随机产生1010个个100100200200之间的数,求最大值。之间的数,求最大值。 Private Sub Command1_Click() dim max as integer,x as integer Max = 100 For i = 1 To 10 x = Int(Rnd * 101 + 100) Print x & “ ”; If x Max Then Max = x Next i Print Print 最大值最大值=; MaxEnd Sub5.5.最小、最大值最小、最大值随机输入随机输

12、入10名学生成绩,将成绩显示在窗体名学生成绩,将成绩显示在窗体中。并显示其中的最好及其序号。输入输出中。并显示其中的最好及其序号。输入输出形式自定。形式自定。例如:输入例如:输入85,74,62,37,98,77,65,77,69,81显示:显示:5号成绩最好,号成绩最好,98分分Private Sub Form_Click()Dim i As Integer, cj As IntegerDim max As Integer, maxn As Integermax = 0: maxn = 0For i = 1 To 10cj = Val(InputBox(请输入第请输入第 & i & 同学的成

13、绩同学的成绩) Print cj & ; If i Mod 5 = 0 Then Print If cj max Then max = cj: maxn = iNext iPrintPrint 第第 & maxn & 号的得分最高,为号的得分最高,为 & maxEnd Sub思考:思考:增加显示最差成绩和平均分增加显示最差成绩和平均分 4号成绩最差号成绩最差, 37分分 平均分为,平均分为,XX统计问题(一)统计问题(一)Private Sub Command1_Click() 统计按钮的事件过程统计按钮的事件过程Dim str As String:Dim zimu As Integer:Di

14、m shuzi As IntegerDim qita As Integer:Dim i As Integer:Dim ccstr As String * 1zimu = 0:shuzi = 0:qita = 0str = Text1.TextFor i = 1 To Len(str) ccstr = Mid(str, i, 1) Select Case ccstr Case A To Z, a To z zimu = zimu + 1 Case 0 To 9 shuzi = shuzi + 1 Case Else qita = qita + 1 End SelectNext iText2.Te

15、xt = zimu:Text3.Text = shuzi:Text4.Text = qitaEnd Sub统计问题(二)统计问题(二)输入一个字符串,统计其中每个字母(不区输入一个字符串,统计其中每个字母(不区分大小写)出现的频率。分大小写)出现的频率。Private Sub Text1_KeyPress(KeyAscii As Integer) Dim str$, i%, ccstr$Dim n(26) As IntegerIf KeyAscii = 13 Then str = Text1.Text For i = 1 To Len(str) ccstr = UCase(Mid(str, i

16、, 1) n(Asc(ccstr) - 65 + 1) = n(Asc(ccstr) - 65 + 1) + 1 Next i For i = 1 To 26 If n(i) 0 Then Picture1.Print Chr(i + 65 - 1) & 出现了出现了 & n(i) & 次次 End If Next i End IfEnd SubPrivate Sub Command1_Click() Picture1.Cls Text1.Text = End Sub 清屏清屏是否已经按下回车键得判断是否已经按下回车键得判断文本框得文本框得keypress事件,事件,keyascii为其参数为其参数执行下面的程序段后,输出结果为执行下面的程序段后,输出结果为_。x = 5For I = 1 To 20 Step 2 x = x + I 5Next IPrint x, I (A) 21 20 (B) 22 20 (C) 21 21 (D) 22 21以下程序段的输出结果是以下程序段的输出结果是_。 num =0Do Until num2num = num + 1Loop Print num

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题 > 初中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号