• 高中信息技术《算法与程序设计VB(选修)》知识要点


    原博主:

    http://blog.sina.com.cn/buyanshibai

    【转载】

    (一)算法

    1.定义

    相关题解:

    1算法:就是解决问题的方法和步骤。算法是程序设计的“灵魂”,算法+数据结构=程序。

    单选题

    1、运用计算机程序解决实际问题时,合理的步骤是(B)。

    A、设计算法→分析问题→编写程序→调试程序

    B、分析问题→设计算法→编写程序→调试程序

    C、分析问题→编写程序→设计算法→调试程序

    D、设计算法→编写程序→分析问题→调试程序

    2.算法的描述方法:

    1算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。

    2自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。

    3流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。

    4伪代码描述法:是介于自然语言和计算机程序语言之间的一种算法描述。是专业软件开发人员常用方法。

    相关题解:

    单选题

    1、图形符号" 菱形  "在算法流程图描述中表示(  B  ).

    A 处理或运算的功能    B 输入输出操作

    C 用来判断条件是否满足需求     D 算法的开始或结束

    2、图形符号" 矩形 "在算法流程图描述中表示(  A  ).

    A 处理或运算的功能 B 输入输出操作

    C 用来判断条件是否满足需求D 算法的开始或结束

    3、以下哪个是算法的描述方法?(  A   )

    A 流程图描述法 B 枚举法 C 顺序法   D 列表法

    4、以下哪个是算法的描述方法?(  D  )

    A 顺序法B 列表法C 集合法D 自然语言描述法

    介于自然语言和计算机语言之间的一种算法描述是下列哪个选项?(  )

    A、伪代码

    B、流程图

    C、高级语言

    D、VB 程序设计语言

    (二)程序设计基础

    (1)常用高级编程语言:BASIC、VB、Pascal、C、C++、Java

    1面向对象的程序设计语言:其中的对象主要是系统设计好的对象,包括窗体等、控件等

    2控件:是指工具箱中的工具在窗体中画出的、能实现一定功能的部件,如文本框,命令按钮等。

    常用控件

    控件

    对象的类型

    前缀

    名字举例

    窗体

    Form

    frm

    frmfind

    命令按钮

    Command button

    cmd

    cmdok

    标签

    Label

    lbl

    lblinput

    文本框

    TextBox

    tmr

    tmrClock

    若命令按钮(Command)的Enabled属性设置为True时按钮有效,设置为False时按钮无效

    3对象的属性、方法和事件

    1属性

     属性

    Name

    设置对象的名称

    Caption

    决定控件中显示的内容(文字)

    Text

    决定窗体中文本框中显示的内容(初始为空白)

    Height

    决定控件高度

    Width

    决定控件宽度

    TOP

    决定控件的靠顶部位置

    Left

    决定控件的靠左边位置

    Font

    设置控件中字体格式

    BackColor

    设置控件背景色

    ForeColor

    设置控件的前景色

    BorderStyle

    设置控件的边框风格

    Alignment

    即标签文字对齐属性:(0)Left Justify时文本左对齐;(1)Right Justify时文本右对齐;设置为(2)Center时文本居中。

    AutoSize

    设置为False时输入控件Caption中文字超过控件宽度时超出部分被裁剪掉,设置为True时,控件可水平扩充,以适应控件Caption属性。

    Visible

    决定控件是否可见

    Enabled

    决定控件运行时是否有效

    对象.属性=属性值

    对象中属性可以在设计界面时通过属性窗中设置,也可以在运行时通过程序代码设置,方法如下

    例:给文本框“Txt123”的“Text”属性赋值为字符串“20”,代码如下

    Txt123.text =”20”

    变量=对象.属性

    如果要获取对象的状态或特性,这时就要读取对象的属性值,方法如下

    例:读取文本框“txt123”的“Text”属性的代码如下

    a = txt123.text

    2方法

    [对象].方法[参数名表]

    例:form.print ”欢迎使用”

    该语句使用print方法在form1窗体中显示字符串“欢迎使用”

    3事件及事件驱动

    事件是对象对外部操作的响应,如在程序执行时,单击命令按钮会产生一个Click事件。如需要命令按钮响应Click事件,就把完成Click事件功能的代码写到Click事件的事件过程中,与事件一一对应。

    事件过程的形式如下:

    Private Sub 对象_事件名( )

    ……………(事件过程代码)

    End Sub

    一个简单的VB程序

    求圆的周长和面积

    Private Sub Command1_Click()

    Dim r As Single  '定义r为单精度型

    Dim c As Single  '定义c为单精度型

    Dim s As Single  '定义s为单精度型

    r = Val(Text1.Text) '输入半径r

    c = 2 * 3.14159 * r  '计算周长

    s = 3.14159 * r * r  '计算面积

    Text2.Text = c       '输出周长

    Text3.Text = s       '输出面积

    End Sub

    Private Sub Command2_Click()

    End                 '退出

    End Sub

    相关题解:

    单选题

    1、下列关于程序设计说法正确的是(  B  )。

    A、程序设计语言的发展经历了机器语言、汇编语言到高级语言的过程,比

    较流行的高级语言是PASCAL, FORTRAN, EXCEL, C++等

    B、程序设计就是寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程

    C、程序设计语言和计算机语言是同一个概念的两个方面

    D、程序设计就是指示计算机如何去解决间题或完成一组可执行指令的过程

    2、下列说法错误的是( D ).

    A、程序设计就是寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程

    B、程序设计语言的发展经历了机器语言、汇编语言、高级语言的过程

    C、计算机程序就是指计算机如何去解决间题或完成一组可执行指令的过程

    D、程序设计语言和计算机语言是同一概念的两个方面

    3、下列不属于程序设计语言中高级语言的是(C)。

    A、BASIC  B、C语言  C、汇编语言  D、PASCAL

    4、程序设计语言的发展历程中,不包括( A )。

    A、自然语言 B、机器语言 C、汇编语言 D、高级语言

    5、介于自然语言和计算机语言之间的一种算法描述是下列哪个选项?( A )

    A、伪代码

    B、流程图

    C、高级语言

    D、VB 程序设计语言

    一、常量:批在程序进行过程中不变的量在VB中一般分数值常量与字符常量两种

    数值常量:就是数学中说的常数,分整型常量和实型常量两种

    整型常量:即整数,指不带小数点的数值如1、0、、-10、+35等都是合法的整数

    实型常量:即实数,指带小数点的数值。

    实型常量又分为定点数和浮点数两种。

    例:定点数:3.14159和-6.8,1.99

    浮点数:2E6、1E5、88E

    例:1.2345×103 可表示为1.2345E3,字母E表示底数10

    浮点数就是数学上的科学计数法。

    字符串常量:被一对双引号括起来的若干个合法的字符称为字符串常量。例如:”China”、”Visual Basic”、”18”、”3.1415”等,双引号中字符,不包括双引号本身。 

    符号常量:如果多次用到同一个常量,则可用一个有意义的名字表示这个常量。

    二、变量:在程序执行过程中,其值可以改变的量称为变量

    变量命名注意要点:

    1、必须以字母开头,不能以数字或其他字符开头。

    2、只能由字母、汉字、数字学或下划线组成,不能含有小数点、空格等字符。

    3、最长不超过255个字符

    4、不能以VB保留字作变量名,如语句定义符、函数名等。

    5、VB不区分变量名中字母大小写。如HELLO和Hello是同一个变量。

    数据及运算

    (1)常用数据类型:(整型)Integer、(长整型)Long、(单精度型)Single、(双精度型)Double、(字符串型)String、(布尔型)Boolean、(日期型)Date

    其中(整型)Integer、(长整型)Long、(单精度型)Single、(双精度型)Double属于数值型

    表示范围:

    (整型)Integer (-32768 —— 32767,存储为 16 位 , 2 个字节)

    (长整型)Long(-21亿 —— 21亿,可以表示人口数量)

     

    (布尔型)Boolean(True 真、是 或 False假、非)

    (字符串型)String(定长字符串:0——65535个字符,不定长字符串:0——20亿个字符)

                字符串型数据是指用 “ ”括起来的一串字符。如“欢迎进入VB世界!”、“ Visual Basic” 、“1234 ”都是字符串类型。

    (日期型)Date(100/1/1——9999/12/31)

             日期型数据专门用来处理日期和时间。VB采用一对“#”把日期和时间的值括起来,如#2003/08/20#表示2003年8月20日。

    (2)常量和变量的命名、声明及赋值

    符号常量的声明:Const 常量名 [As 常量类型] = 常量值(表达式)

    如:Const  pi  As  Single = 3.14159  常量名为pi

    变量的声明:

    Dim <变量名 >As <变量类型>

         如:Dim  a  As  Integer 定义一个整型变量,变量名为a

    变量的赋值

     VB中使用Let语句给变量赋值,其形式如下:

    [Let] 变量 = 表达式 其中,方括号[ ]表示这部分内容是可选的,通常可以省略该关键字。

    例题

    Private Sub Form_Click()

        Dim a As Integer, b As Integer, c As Integer

        Dim str As String

        Let a = 54

        Let b = 114

        c = a + b

        str = "Hello  World"

        Print "a="; a, "b="; b, "c="; c

        Print str

    End Sub

     

    VB语言中,下列数据类型说明符中表示整型的是(B)。

    A、Boolean

    B、Integer

    C、Date

    D、String

    数据的输出

    程序中运算得到的结果,除可以使用文本框和标签显示外,对于大批量的数据更适合用Pint方法输出,格式如下

    [对象] . Pint [表达式列表]

    例题:

    Private Sub Form_Click()

      Dim x As Single, y As Single

      Form1.Print -61; -34

      Form1.Print 9 * 2; 12

      Form1.Print "This is"; "a book"

      x = 3: y = 4

      Print "x="; x, "y="; y

    End Sub

    注意:Print 方法

    相关题解:

    单选题

    在VB 语言中,下列合法的变量名是(B)。

    A、34ab  B、ab34   C、*abc   D、cc

    下列选项中属于字符串常量的是(  )。

    A、ab  B、a+b   C、"1235"    D、1235

    在VB 语言中,下列合法的变量名是(  )。

    A、aa  B、a*b  C、7ab   D、dim

    运算符

    1、  算术运算:

    + 加   -- 减   *乘

    ^ 指数        例:2^2 = 4

    /  (浮点)除    例:5 / 2 = 2.5

       整除       例: 5 2 = 2

    Mod 求余数     例:5 Mod 2 = 1

    相关题解

    单选题

    1、分析下列程序:

        Private Sub Form_Click()

              s=113 + 11 Mod 3

          Print s

        End Sub

    当单击窗体时s的值是(  A  ).

    A、5   B、6   C、4    D、3

    关系运算

    =   赋值 、    <  小于号

    <>  不等于      >  大于号

    >=  大于等于号    <  =小于等于号

    注意:关系表达式的运算结果为布尔值True 或 False

    例:3 > 2 结果为 True(真或是)

    相关题解

    单选题

    1、下面表达式的值是false的有(  C  ).

    A、"969" < "n97"    B、Int(4.99) <> len("basic")   C、str(2000) < "1997"D、3 > 2

    逻辑运算

    Not(取反)And(与) Or(或)

    运算结果为布尔型(Boolean)True 或 False

    逻辑运算符的优先级为:No > And > Or

    1、下列逻辑表达式的值为“假”的是(A)。

    A、2 + 4 > 8   B、3 + 12 = 15   C、5 > 0 And 4 > 3   D、10 / 5 <3

    2、下列逻辑表达式的值为“假”的是(D)。

    A、3 + 5 > 7  B、8 / 4 < 4  C、5 > 3 And 3 > 2    D、4 + 11 > 20

    3、已知A,B,C,D 是简单变量,且都已有互不相同的值,执行语句A=C: D=B 后,下列

    关系表达式逻辑值为“真”的是(A)。

    A、C=A   B、A=B    C、D=C     D、B=C

    日期运算符与日期表达式

    日期表达式是用日期运算符“+”或“-”将算式表达式、日期型常量、日期型变量、日期函数等连接起来的式子,如表达式“#2003/09/01# +30”的运算结果是“2003-10-1”;表达式“#2003/10/20# - #2003/10/10#”的运算结果为整数10

    相关题解

    单选题

    1、设a=2, b=3,在VB中,表达式a>b Or b>3值是:(  B  )

    A、False   B、True   C、-1   D、1

    字符运算

    字符串连接符为“+”和“&”

    “123” + “45” = “12345”

    “123” & “45” = “12345”

    123 + “45” = 168

    “123” + 45 = 168

    相关题解

    单选题

    VB的字符串运算符是“&”,该运算符主要用于连接两个或更多的字符串。如:"abcd" &

    "efg"  连接后的运算结果为:"abcdefg"。那么,"1+2" & "3"的运算结果为:(C)。

    A、33  B、6   C、"1+23"    D、True

    运算符的执行顺序

    VB中,当一个表达式中同时出现多种运算符时,运算次序由运算符的优先级决定,优先级高的运算符先运算,优先级相同的从左向右进行运算。不同性质的运算符优先级如下。

    算术运算符 > 字符串运算符 关系运算符 >  逻辑运算符

    相关题解

    单选题

    在VB语言中,表示“a大于0且b小于12”的正确表达式是(D)。

    A、b<12 or a > 0

    B、b > 12 And a < 0

    C、a > 12 Or a < 0

    D、a > 0 And b < 12

    常用函数

    数学函数

    Abs(x) 求x 的绝对值,例:abs(-3.6) = 3.6

    Sqr(x) 求 x 的平方根,例:sqr(100) = 10

    Int(x)求≤x的最大整数  例:int(3.6) = 3   int(--3.6) = --4

    Rnd(x)产生[0,1)之间的随机数(不包括1)

    Sin(x)

    Cos(x)

    Tan(x)

    Atn(x)

    Exp(x)

    Log(x)

    使用三角函数时,参数应是弧度,如数学中sin300应写为:sin(30*3.14159/180)

    字符串函数

    Len(字符串) 求字符串的长度 ,例:Len(“hello”) = 5

    Left(字符串,截取长度) 截取字符串左边部分,例:Left(“hello”,2) = “he”

    Mid(字符串,起始位置,截取长度) ,例:Mid(“hello”,2,2) = “el”

    Right (字符串,长度)

    截取字符串右边部分。例: Right (“hello”,2) = “lo”

    String(数值,字符)生成指定长度与指定字符的字符串,例:String(3,”9”) = ”999”

    函数mid (C,N1,N2)的作用是从字符串C中N1位开始取出长度为N2 的子串。那么,

    Mid ("aBcDeFg", 3, 3)的值为(D)。

    A、aBc  B、cde   C、eFg   D、cDe

     

     

    常用转换函数

    Val(字符串) 将字符串转换为数值

    Str(数值) 将数值转换为字符串

    Chr(字符代码)

    Asc(字符)

    Tab定位函数的使用

    例题

    Private Sub Form_Click( )

        Dim a  As Integer

        Dim b  As Integer

        a = 4: b = 9

        Print Tab(1); "数"; Tab(9); "平方"; Tab(18); "立方"; Tab(27); "平方根"

        Print Tab(1); a; Tab(9); a * a; Tab(18); a * a * a; Tab(27); Sqr(a)

        Print Tab(1); b; Tab(9); b * b; Tab(18); b * b * b; Tab(27); Sqr(b)

    End Sub

    用户交互函数

    VB提供InputBox( )MsgBox( )函数用于人机交互

    InputBox( )其语法格式为:

    InputBox( 提示[,标题][,默认值][,X坐标][Y坐标])

    MsgBox( ) 其语法格式为:

    MsgBox(提示信息[,按钮][,标题] )

    相关题解

    单选题

    1、Visual Basic中,下列(  A  )函数是求绝对值的。

    A、ABS(X)  B、SQR(X)  C、INT(X)  D、GN(X)

    2、表达式Abs(-3.6)*sqr(100)的值是(  C  )。

    A、-36   B、360    C、36   D、-360

    3、下列(  A  )数据类型不是数值型。

    A、Date         B、Single       C、Double       D、Integer

    4、下列函数中,返回值是字符串的是 (  A  ).

    A、Mid        B、Instr        C、Val        D、Len

    5、下列(  A  )函数返回系统的当前时间。

    A、time()        B、date()        C、day()        D、year()

    6、代数表达式 表达式后错误的是(  D  )

    A、g*t*t/2        B、1/2*g*t^2        C、g*t^2/2        D、gt^2/2

    7、数学式子 在VB中的正确写法是:(    )

    A、 (2*a+b)/4*a   B 、(2*a+b)/(4ab)  C 、(2a+b)(4ab)  D 、(2*a+b)/(4*a*b)

    8、判断x是否在区间[a,  b]上,在VB中以哪个逻辑表达式是正确的?(  C  )

    A 、a<x  and  x<=b   B、 a<x<=b   C、a<x and x≤b   D 、a>x and x<=b

    综合分析

    1、向n变量存入1个2位整数,要使此2位数十位和个位上的值分别存入x, y变量。正确的算法是(  D   )。

    选项:

    x、①x=Left(n,  1) ②y=n-x*10 ③Print x:Print y

    B、①x=Left(n,  1) ②y=Right(n,  1) ③Print x:Print y

    C、①x=n/10 ②y=n-x*10 ③Print x:Print y

    D、①x=Int(n/10) ②y=n-x*10 ③Print x:Print y

    2、向x变量中输入任意一个小写字母,再将x变量中的小写字母转成大写字母。正确的算法是(  A  ).

    选项:

    A、①输人字母到x ②a=Asc(x)-32 ③x=chr(x) ④Print x

    B、①输人字母到x ②a=Asc(x)+32 ③x=chr(x) ④Print x

    C、①输人字母到x ②a=Val(x)一32 ③x=Chr(x) ④Print x

    D、①输人字母到x ②a=Val(x)+32 ③x=Chr(x) ④Print x

    程序设计的顺序结构

    顺序结构:代码按照由上到下的顺序一行一行地执行。程序执行过程中没有分支、没有重复,这种结构称为顺序结构。

    例题:交换两个变量中的数据。

    Private Sub cmdSwap_Click()

      Dim x As Single, y As Single

      Dim m As Single

      x = Val(txtsx.Text)

      y = Val(txtsy.Text)

      m = x: x = y: y = m   '交换数据

      txtdx.Text = Str(x)

      txtdy.Text = Str(y)

    End Sub

    Private Sub cmdEnd_Click()

      End

    End Sub

    相关题解

    单选题

    1、以下是一段VB程序:

    a = 1

    b = a + 1

    c = a + b

    它的基本结构属于( A )

    A、顺序结构  B、选择结构   C、循环结构   D、树型结构

    2、下列VB程序运行后,变量x的值为(  A   ).

    x=2

    Print x+l

    Print x+2

    A、2      B、3        C、5        D、8

    程序设计的分支结构

    If语句

    行If是指在一行中写完的If语句。其一般格式为:

    格式一:If条件Then语句

    执行这种形式的If语句时,首先对条件进行判断。若条件成立,则执行Then后面的语句;若条件不成立,则执行If语句后继程序行的语句

    格式二:If条件 Then 语句 1  Else 语句 2

    例题:输入三个不相同的数,求出其中最小数。

    Private Sub Form_Click()

        Dim a   As Single, b  As Single, c   As Single

        Dim Min   As Single

        a = InputBox("输入a", "输入框")

        b = InputBox("输入b", "输入框")

        c = InputBox("输入c", "输入框")

        If a < b Then Min = a Else Min = b

        If c < Min Then Min = c

        Print "最小数="; Min

    End Sub

    执行这种形式的语句时,先进行判断。若条件成立,则执行语句1;否则执行语句2。

    If语句

    上述If-then语句只能根据条件的真假是否执行一条语句,当Then部分和Else部分包含的内容较多时,则可选用“块If语句”结构。

    格式三:If 条件 Then

              语句块

              End If

    例题:当从输入一个数时,当该数大于或等于60时显示"及格",该数小于60时显示"不及格"。

    Private Sub Command1_Click()

      Dim a As Single

      a = Val(Text1.Text)

      If a >= 60 Then

    Label1.Caption = "及格"

      End If

    If a < 60 Then

    Label1.Caption = "不及格"

      End If

    End Sub

    格式四:If 条件 Then

              语句块1

              Else

              语句块2

              End If

    例题:编写程序,求函数Y的值(当x≤0时,y=3x+1;当x>0时,y=4x+1)。

    Private Sub Form_Click()

    Dim x As Single

    Dim y As Single

    x = Val(InputBox("请输入变量x"))

    If x <= 0 Then

       y = 3 * x + 1

    Else

       y = 4 * x + 1

    End If

    Print "y="; y

    End Sub

    相关题解

    单选题

    1、以下是一段Visual Basic程序:

          If I=1 Then

              X=X+1

          Else

              X=X*2

          End If

    它的基本结构属于( A ).

    A、选择结构 B、循环结构C、顺序结构D、树型结构

    2、下列程序段运行后,变量Value的值是( A )

    x = 20

    If x >= 10 Then

      Value = 5 * x

    Else

      Value = 4 * x

    End If

    A、100   B、80   C、90    D、70

    综合分析

    1、如要完成:从键盘输入一个正整数,判断是否是奇数,如是就在屏幕上显示。比较好

    的算法是(  B 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 Integer

      x=Val(Text1. Text)

      If  ____ = 0 Then

        Labell.Caption=这个数是能被5整除的偶数

      Else

        Labell.Caption=这个数不是能被5整除的偶数

      End If

    选项:

    A、(x Mod 5) = 0 And (x Mod 2 ) = 0

    B、x Mod 10 = 0

    C、x Mod 5 = 0

    D、x Mod 2 = 0

    3、如要完成:从键盘输入一个正整数,判断是否是偶数,如是就在屏幕上显示。比较好

    的算法是(  AC   )。

    选项:

    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、下列程序段运行后,m的值为(  A  )

    A=2: b=1: c=5

    If A < b Then m = A Else m = b

    If c < m Then m = c

    选项:

    A、1

    B、2

    C、5

    D、提示错误,无答案

    程序设计的循环结构

    一、For-Next循环

    For循环变量一般形式是:

    For循环变量=初值To终值Step循环变量增量

       循环体

    Nxt循环变量

    例题1:求s1+2+3+4.....+100

    Private Sub Form_Click()

        Dim i As Integer

        Dim sum   As Integer

            sum = 0

        For i = 1 To 100

            sum = sum + i   ' 循环体

        Next i

        Print "sum="; sum

    End Sub

    例题2Step循环变量增量

    Private Sub Form_Click()

    For j = 3 To 15 Step 2

    Print j

    Next j

    End Sub

    循环变量的初值、终值、循环变量增量都是数值型。其中要重复执行的操作称为循环体,增量可正可负,如果没有设置Step,则增量的缺省值为1

    1、  循环变量取初值;

    2、  循环变量与终值比较,没有超过终值转3,否则循结束,接着执行循环语句的后继语句;

    3、  执行一次循环体

    4、  循环变量增加一个增量

    5、  重复步骤2~4。

    以上可以看出,For-Next循环变量是一种当型循环。说明

    (a)       For语句与Next语句必须成对出现,而且它们当中的“循环变量”必须是同一个变量,如上例中均为I。

    (b)       当循环变量为正时,循环变量超过终值,是指循环变量的值大于终值时;若为负,则是指循环变量的值小于终值。

    A

     

    P

     

    入口

    出口


    二、Do-Loop循环

    For-Next循环的次数是确定的,但是有的问题只知道循环结束的条件,重复执行的次数事先并不知道,这是需要Do-Loop循环

    格式一: Do While 条件

           循环体

           Loop

    例题:求最大公约数

    Private Sub Command1_Click()

        Dim a As Integer

        Dim b As Integer

        Dim r As Integer

       

        a = Val(Text1.Text)

        b = Val(Text2.Text)

        r = a Mod b

        Do While r <> 0

            a = b

            b = r

            r = a Mod b

        Loop

        Text3.Text = Str(b)

    End Sub

    Private Sub Command2_Click()

        End

    End Sub

    VB执行Do While-Loop循环时,先判断指定的条件是否为真,若条件为真,执行循环体,条件为假时退出循环。

    格式二: Do

               循环体

        Loop Until条件

    这种循环的执行过程如图所示。进入循环体后,先执行一次循环体A,然后再检查条件P是否成立。如果不成立,就重复执行循环体A,直到条件P成立退出循环体。

    A

    P

    N

    例题:如果我国人口每年以平均1.5%的速度增长,问多少年后我国人口达到或超过15亿?设现在人口为12.3亿。

    Private Sub Form_Click()

        Dim p  As Single

        Dim r  As Single

        Dim n  As Integer

        p = 1230000000#

        r = 0.015

        n = 0

        Do

          p = p * (1 + r)

          n = n + 1

        Loop Until p >= 1500000000#

        Print n; "年后", "人口="; p

    End Sub

    下列程序段执行结束后,变量y的值是(C)。

    y=2

    Do while y<=6

        y=y+y

    Loop

    A、2  B、6  C、8  D、16

    分析程序,写出执行结果。

    Private Sub command1_click()

    Dim S As Integer,I As Integer

          S=0

          For i=1 to 10 Step 2

                S=S+i

          Next i

          Print “S=”;s

    End Sub

    答案:S= 25

    (三)算法与问题解决

    1、解析法

    2、穷举法

    3、递归法

    综合分析

    1、有5人,问第5人年龄,说比前面第4人小3岁,问第4. 3. 2人,都说比前面人小3岁,问第1人,说他的年龄为38岁。问第5人的年龄多大。用递归法解决此问题的正确步骤是(  B  )。

    选项:

    A、①定义age (n)函数 ②函数中当n>1时返回函数值为age (n-1)当n=1返回函数值为38

    B、①定义age (n)函数 ②函数中当n>1时返回函数值为age (n-1)-3当n=1返回函数值为38

    C、①定义age (n)函数 ②函数中不断地调用age (n-1)-3

    D、①定义age (n)函数 ②函数中不断地调用age (n)函数自己

    4、排序与查找数据

    四、应用程序设计

    1、程序设计的一般步骤

    2、 简单程序设计

    综合分析

    1、a,b,c三变量存放不同的数,值a 最大,b 第二,比较好的算法是(   )

    A、①定义一个max(x,y)函数(值为 x,y 中的大值)② a = max(max(a,b),c)

    B、①如a < b就a = b  ②如 a < c 就 a = c  l如 b <c 就 b = c

    C、①如a > b就a = b  ②如 a > c 就 a = c  l如 b >c 就 b = c

    D、①如a < b就两变量交换  ②如 a < c 就两变量交换   l如 b <c 就两变量交换

    2、求2! +3! +4! +5!……+10!的值。能完成此运算,并且比较好的算法是( A  )。

    选项:

    A、①定义求阶乘的函数用j c(n) ②主程序中用一个循环9次调用j c(n)函数进行累加

    B、用一个程序完成:每一项阶乘用一个For/Next循环完成,整个程序包括9个循环

    C、用解析法:s=1*2+1*2*3+1*2*3*4+…+1*2*3*4*5*6*7*8*9*10

    D、不必定义函数,只要用一个单重循环就能完成

    3、要求打印 100 至 200之间所有偶数的平方根( C  )

    A、① i = 100  ② Do While i < 200:Print i,Sqr(i):loop

    B、① i = 100  ② Do While i < 200:Print i,Sqr(i):i = i + 1:loop

    C、① For i = 100 to 200 step 2:Print i,Sqr(i) : Next i

    D、① For i = 100 to 200:Print i,Sqr(i):Next i

    编程题

    必修1_15、编写程序,使能打印下面所示的图案。

    *

    **

    ***

    **

    *

    程序:

    Private Sub Form Click()

    Dim i As Integer '定义i为整型变量

    Dim j As Integer '定义j为整型变量

          For i = -3 To 3

            Print Tab(Abs(i)+5)

                  For j=1 To (4-Abs(i))-1

                    Print "*";

              Next j

            Print   '换行

          Next i

    End Sub

    必修2_15、编写程序,使能打印下面所示的图案。

    *

    ***

    *****

      ***

       *

    程序:

    Private Sub Form Click()

    Dim i As Integer '定义i为整型变量

    Dim j As Integer '定义j为整型变量

          For i = -3 To 3

            Print Tab(Abs(i)+5);

                  For j=1 To 2*(3-Abs(i))-1

                    Print "*";

              Next j

            Print   '换行

          Next i

    End Sub

    必修3_15、编写程序,使能打印下面所示的图案。

    @

    @@

    @@@

    @@@@

    @@@@@

    @@@@@@

    程序:

    Private Sub Form_Click()

       Dim i As Integer

       Dim j As Integer

       For i = 1 To 6

          Print Tab(10);

          For j = 1 To i

            Print “@”;

          Next j

          Print

       Next i

    End Sub

    必修4_15、完善显示按钮的click程序,将代码段中“变量1“、“变量2.“变量

    3、处换成正确的变量名,使当单击该按钮时,Labell. Label2分别

    显示30、10,

    完成所有操作后,诸按“Ctrl+S”保存。

    Private Sub Command_Click(  )

       x = 10

       y = 30

       If x < y Then

         t = x

         x = y

         y = t 

       End If

       Label1.Caption = x

          Label2.Caption = y

    End Sub

    必修5_15、完善"判断"按钮的click程序,使当从Textl中输入一个数时,当该数

    大于或等于60时在Lebell中显示"及格",该数小于60时在Labell中显

    示"不及格"。

    完成所有操作后,诸按“Ctrl+S”保存。

    Private Sub Command1_Click( )

       Dim a As Single

       a = Val(Text1.Text)

       If a>=60 Then

         Label1.Caption = “及格”

       End If

       If a < 60 Then

         Label1.Caption = “不及格”

       End If

    End Sub

    必修1_16、编写程序,求函数y的值(当x<=0时,y=3x+1;当x>0时,y=4x+1)。

    程序:

    Private Sub Form Click()

    Dim x As Single '定义x为单精度型变量

    Dim y As Single '定义y为单精度型变量

    x = Val(InputBox("请输入变量x"))

    If x <=0 Then

          y = 3 * x + 1

    Else

          y = 4 * x + 1

    End If

    Print "y=";y

    End Sub

    必修2_16、编写程序,求y=6x-5的值。(x的值在程序中调用InputBox函数,在

    弹出的标准输入对话框中输入)

    程序:

    Private Sub Form_Click()

    Dim x As Single

    Dim y As Single

    x = Val(InputBox(“请输入变量x”))

    y = 6*x – 5

    Print “y=”;

    End Sub

    必修3_16、一只猴子摘了一堆桃子,它每天吃当天桃子数的一半,每次忍不住多

    吃了一个。这样到第十天时只有一个桃子可以吃了,编程计算猴子最

    初共有多少个桃子。

    完成所有操作后,诸按“Ctrl+S”保存。

    程序:

    Private Sub Form_Click()

      Dim i As Integer

      Dim s As Integer

      s = 1

      For i =1 To  9

         s = (s + 1)*2

      Next

      Print “s=”;s

    End Sub

    必修4_16、完善按钮“计算7!”的Click事件程序,当单击命令按钮时Text1显示7!的值。

    Private Sub Command1_Click(  )

    Dim a As Integer

    Dim i As Integer

    a = 1

    For i = 1 To 7

       a = a * i

    Next i

    Text1.Text = a

    End Sub

    必修5_16、请将按钮"计算1+2+……+100"的Click事件程序中的"常量"和"变量"换成

    正确的常量和变量,当单击命令按钮时Text1显示1+2+"""+100的

    值。

    完成所有操作后,诸按“Ctrl+S”保存。

    Private Sub Command1_Click(  )

       Dim a As Integer

       Dim I As Integer

       a = 0

       For i = 1 To 100

          a = a + i

       Next i

       Text1.Text = a

    必修4_18、编写程序,当在Textl中输入x的值后,单击计算按钮,求 y = |3x - 5|的值。

    Private Sub Command1_Click(  )

       Dim x As Single

       Dim y As Single

       x = Text1.Text

       y = Abs(3*x-5)

       Text2.Text = y

    End Sub

    必修5_18、在打开的窗体Forml中,在窗体中增加一个文本框Text3,在完整按

    钮中的程序,使当单击"计算"按钮时,计算b*b一4ec的值,并在Text3

    中显示出来。

    Private Sub Command1_Click(  )

      Dim b As Single

      Dim c As Single

      Dim x As Single

      b = Text1.Text

      c = Text2.Text

      x = b * b – 4 * c

      Text3.Text = x

    End Sub

    必修1_17、编程计算 s=1-2+3-4+5-……+99-100

    程序:

    Private Sub Form Click()

    Dim s As Integer '定义变量s为整型变量

    Dim i As Integer '定义循环变量

    s = 0

    For i=1 To 100

       if int(i/2) <> i/2 Then

          s = s + i

       Else

          s = s - i

       End

    Next i

    Print "s=";s

    End Sub

    必修2_17、编写程序,求I+2+…+n>=500中最小的n

    程序:

    Private Sub Form_Click( )

    Dim s As Integer

    Dim n As Integer

    s = 0

    n = 0

    Do

      n = n + 1

      s = s + n

    Loop Until s > 500

    Print “n=”;n

    End Sub

    必修3_17、编程计算s = 1*2+2*3+3*4+……+n*(n+1)的值,其中n =10

    Private Sub Form_Click()

       Dim s As Single

       Dim i As Integer

       s = 0

       For i = 1 To 10

          s = s + i * (i +1);

       Next i

       Print “s=”;s

    End Sub

    必修1_18、编程求:鸡和兔在一个笼里,共有腿100条,头40个,问鸡有几只,兔有几只?

    程序:

    Private Sub Form Click()

    Dim Ji As Integer '鸡

    Dim Tu As Integer '兔

    Dim Leg  As Integer '腿数

    Dim Head  As Integer '头数

    For Ji=1 To 50

      For Tu=1 To 25

        Leg = Ji*2 + Tu*4  '计算腿

        Head= Ji + Tu  '计算头

        If Leg = 100 And Head = 40 Then

           Print "鸡=";Ji;"只", "兔=";Tu;"只"

        End If

      Next Tu

    Next Ji

    End Sub

    必修2_18、编写递归函数求5!的值。

    Public Function s(n As Integer) As Long

    If n = 1 Then

      s = 1

    Else

      s=n * s(n-1)

    End If

    End Function

    Private Sub Form_Click()

    Print “s(5)=”;s(5)

    End Sub

    必修3_18、编写递归函数求10!的值。

    Public Function s(n As Integer) As Long

    If n = 1 Then

      s = 1

    Else

      s=n * s(n-1)

    End If

    End Function

    Private Sub Form_Click()

    Print “s(10)=”;s(10)

    End Sub

  • 相关阅读:
    Coursera Algorithm II PA2 Q2
    Coursera Algorithm Part II PA2
    实现 memcpy 函数
    超人
    Proxy 模式
    【6】锋利的 jQuery 笔记
    【3】Chrome 的一些常用操作
    HTML 待解决与已解决问题
    CSS 待解决问题
    JS 一些常用技巧
  • 原文地址:https://www.cnblogs.com/vacation/p/5043895.html
Copyright © 2020-2023  润新知