程序设计的三大结构一、程序设计的顺序结构顺序结构:代码按照由上到下的顺序一行一行地执行。
程序执行过程中没有分支、没有重复,这种结构称为顺序结构。
例题:1、简单的顺序结构计算题目Private Sub Command1_Click()Dim a,b,c as integera=1b=2c=a+(2*a-b)Print cEnd Sub2、交换两个变量中的数据。
Private Sub Command1_Click()Dim x As Single, y As SingleDim m As Singlex = 6y = 12m = xx = yy = mPrint xPrint yEnd Sub相关题解单选题1、以下是一段VB程序:a = 1b = a + 1b = a + bc=a+b它的基本结构属于(A )A、顺序结构B、选择结构C、循环结构D、树型结构2、下列VB程序运行后,变量x的值为( A ).x=2Print x+lPrint x+2A、2B、3C、5D、8二、程序设计的分支结构格式一:If条件Then语句执行这种形式的If语句时,首先对条件进行判断。
若条件成立,则执行Then后面的语句;若条件不成立,则执行If语句后继程序行的语句。
格式二:If条件Then 语句 1 Else 语句2执行这种形式的If语句时,首先对条件进行判断。
若条件成立,则执行Then后面的语句1;若条件不成立,则执行else后面的语句2。
然后再顺序执行分支结构以后的语句。
例题:1、输入三个不相同的数,求出其中最小数。
Private Sub Form_Click()Dim a As Single, b As Single, c As SingleDim Min As Singlea = InputBox("输入a", "输入框")b = InputBox("输入b", "输入框")c = InputBox("输入c", "输入框")If a < b Then Min = a Else Min = bIf c < Min Then Min = cPrint "最小数="; MinEnd Sub执行这种形式的语句时,先进行判断。
若条件成立,则执行语句1;否则执行语句2。
格式三:If 条件Then语句块End If例题:当从输入一个数时,当该数大于或等于60时显示"及格",该数小于60时显示"不及格"。
Private Sub Command1_Click()Dim a As Singlea = Val(Text1.Text)If a >= 60 ThenLabel1.Caption = "及格"End IfIf a < 60 ThenLabel1.Caption = "不及格"End IfEnd Sub格式四:If 条件Then语句块1Else语句块2End If例题:编写程序,求函数Y的值(当x≤0时,y=3x+1;当x>0时,y=4x+1)。
Private Sub Form_Click()Dim x As SingleDim y As Singlex = Val(InputBox("请输入变量x"))If x <= 0 Theny = 3 * x + 1Elsey = 4 * x + 1End IfPrint "y="; yEnd Sub相关题解单选题1、以下是一段Visual Basic程序:If I=1 ThenX=X+1ElseX=X*2End If它的基本结构属于( A ).A、选择结构B、循环结构C、顺序结构D、树型结构2、下列程序段运行后,变量Value的值是(A )x = 20If x >= 10 ThenValue = 5 * xElseValue = 4 * xEnd IfA、100B、80C、90D、70综合分析1、如要完成:从键盘输入一个正整数,判断是否是奇数,如是就在屏幕上显示。
比较好的算法是( D )。
A、①输人的数存人n变量②f=(n/2=Int(n/2))③如果f中的值为True就显示n中值B、①输人的数存人n变量②f=(n/2=Int(n/2))③如果f中的值为False就显示n中值C、①输人的数存人n变量②如果n/2=Int(n/2)成立,就显示n中值D、①输人的数存人n变量②如果n/2=Int(n/2)不成立,就显示n中值2、下面是判断变量x是不是能被5整除的偶数的程序,横线上的逻辑表达式应为( AB ) Private Sub commandl_Click()Dim x As Integerx=Val(Text1. Text)If ____ = 0 ThenLabell.Caption=这个数是能被5整除的偶数ElseLabell.Caption=这个数不是能被5整除的偶数End If选项:A、(x Mod 5) = 0 And (x Mod 2 ) = 0B、x Mod 10 = 0C、x Mod 5 = 0D、x Mod 2 = 03、如要完成:从键盘输入一个正整数,判断是否是偶数,如是就在屏幕上显示。
比较好的算法是( C )。
A、①输入的数存人n变量②f=(n/2=Int(n/2))③如果f中的值为True就显示n中值B、①输入的数存人n变量②f=(n/2=Int(n/2))③如果f中的值为False就显示n中值C、①输入的数存人n变量②如果n/2=Int(n/2)成立,就显示n中值D、①输入的数存人n变量②如果n/2=Int(n/2)不成立,就显示n中值4、如要完成:从键盘输入一个正整数,判断是否是奇数,如是就在屏幕上显示。
比较好的算法是( D )。
A、①输入的数存人n变量②f=(n/2=Int(n/2))③如果f中的值为True就显示n中值B、①输入的数存人n变量②f=(n/2=Int(n/2))③如果f中的值为False就显示n中值C、①输入的数存人n变量②如果n/2=Int(n/2)成立,就显示n中值D、①输入的数存人n变量②如果n/2=Int(n/2)不成立,就显示n中值5、下列程序段运行后,m的值为( A )A=2: b=1: c=5If A < b Then m = A Else m = bIf c < m Then m = c选项:A、1B、2C、5D、提示错误,无答案三、程序设计的循环结构一、For-Next循环For循环变量一般形式是:For 循环变量=初值To终值Step循环变量增量循环体Next 循环变量例题1:求s=1+2+3+4.....+100Private Sub Form_Click()Dim i As IntegerDim sum As Integersum = 0For i = 1 To 100sum = sum + i ' 循环体Next iPrint "sum="; sumEnd Sub例题2:Step循环变量增量Private Sub Form_Click()For j = 3 To 15 Step 2Print jNext jEnd Sub循环变量的初值、终值、循环变量增量都是数值型。
其中要重复执行的操作称为循环体,增量可正可负,如果没有设置Step,则增量的缺省值为11、循环变量取初值;2、循环变量与终值比较,没有超过终值转3,否则循结束,接着执行循环语句的后继语句;3、执行一次循环体4、循环变量增加一个增量5、重复步骤2~4。
以上可以看出,For-Next循环变量是一种当型循环。
说明(a)For语句与Next语句必须成对出现,而且它们当中的“循环变量”必须是同一个变量,如上例中均为I。
(b)当循环变量为正时,循环变量超过终值,是指循环变量的值大于终值;若为负,则是指循环变量的值小于终值。
二、Do-Loop循环For-Next循环的次数是确定的,但是有的问题只知道循环结束的条件,重复执行的次数事先并不知道,这是需要Do-Loop循环格式一:Do While 条件循环体Loop例题:求最大公约数Private Sub Command1_Click()Dim a As IntegerDim b As IntegerDim r As Integera = Val(Text1.Text)b = Val(Text2.Text)r = a Mod bDo While r <> 0a = bb = rr = a Mod bLoopText3.Text = Str(b)End SubPrivate Sub Command2_Click()EndEnd Sub当VB执行Do While-Loop循环时,先判断指定的条件是否为真,若条件为真,执行循环体,条件为假时退出循环。
格式二:Do循环体Loop Until条件这种循环的执行过程如图所示。
进入循环体后,先执行一次循环体A,然后再检查条件P 是否成立。
如果不成立,就重复执行循环体A,直到条件P成立退出循环体。
例题:如果我国人口每年以平均1.5%的速度增长,问多少年后我国人口达到或超过15亿?设现在人口为12.3亿。
Private Sub Form_Click()Dim p As SingleDim r As SingleDim n As Integerp = 1230000000#r = 0.015n = 0Dop = p * (1 + r)n = n + 1Loop Until p >= 1500000000#Print n; "年后", "人口="; pEnd Sub1、下列流程图表示的是程序的( B )基本结构的算法。
A 其它三项都不是B 循环结构C 选择结构D 顺序结构2、在VB中,以下程序段:x=0Do While x<50x=(x+2)*(x+3)Loop执行后,x的值为:( ).A、168B、50C、72D、03、阅读下面程序,当单击窗体之后,窗体上输出的是( )Private Sub Form_Click()Dim i As Integer:Dim s As Integers = 0For i = 1 To 5s = s + iNext iPrint s,iEnd SubA、15 6B、s=15 i=6C、6 5D、s=6 i=54、要求计算机打印出100至200之问所有偶数的平方根值。