📄 10.htm
字号:
<p><span lang=EN-US>Casemark>=70 </span></p>
<p><span lang=EN-US>Print" 中 " </span></p>
<p><span lang=EN-US>Case mark>=60 </span></p>
<p><span lang=EN-US>Print" 及格 " </span></p>
<p><span lang=EN-US>Case Else </span></p>
<p><span lang=EN-US>Print" 不及格 " </span></p>
<p><span lang=EN-US>End Select </span></p>
</td>
<td width=213 valign=top style='width:159.75pt;border:solid windowtext .75pt;
padding:0cm 0cm 0cm 0cm'>
<p><span lang=EN-US>Select Case mark </span></p>
<p><span lang=EN-US>Case Is>=90 </span></p>
<p><span lang=EN-US>Print" 优 " </span></p>
<p><span lang=EN-US>Casels>=80 </span></p>
<p><span lang=EN-US>Print" 良 " </span></p>
<p><span lang=EN-US>Case Is>=70 </span></p>
<p><span lang=EN-US>Print" 中 " </span></p>
<p><span lang=EN-US>Case Is>=60 </span></p>
<p><span lang=EN-US>Prim" 及格 " </span></p>
<p><span lang=EN-US>Case Else </span></p>
<p><span lang=EN-US>Print" 不及格 " </span></p>
<p><span lang=EN-US>End Select </span></p>
</td>
<td width=213 valign=top style='width:159.75pt;border:solid windowtext .75pt;
padding:0cm 0cm 0cm 0cm'>
<p><span lang=EN-US>Select Case mark </span></p>
<p><span lang=EN-US>Case Is>=90 </span></p>
<p><span lang=EN-US>Print" 优 " </span></p>
<p><span lang=EN-US>Case 80 To 89 </span></p>
<p><span lang=EN-US>Print" 良 " </span></p>
<p><span lang=EN-US>Case 70 To 79 </span></p>
<p><span lang=EN-US>Print" 中 " </span></p>
<p><span lang=EN-US>Case 60 TO 69 </span></p>
<p><span lang=EN-US>Print" 及格 " </span></p>
<p><span lang=EN-US>Case Else </span></p>
<p><span lang=EN-US>Print" 不及格 " </span></p>
<p><span lang=EN-US>End Select </span></p>
</td>
</tr>
</table>
<p><strong><span lang=EN-US>(2) 在 " 变量或表达式 " 中不能出现多个变量。 </span></strong></p>
<p>实验三第<span lang=EN-US> 5 题对三门课程奖学金的判断,只能用 If 语句的多边选择,而不能用 SelectCase 语句实现。例如,有人用如下语句表示:
</span></p>
<p><span lang=EN-US>Select Case markl , mark2 , mark3 </span></p>
<p><span lang=EN-US>Case (markl+mark2+mark3)/3>=95 </span></p>
<p><span lang=EN-US>Print" 一等奖 " </span></p>
<p><span lang=EN-US>End Select </span></p>
<p>这样就会在<span lang=EN-US> "Select Case markl,mark2,mark3" 语句行出现编辑错误 ,
同时 </span></p>
<p><span lang=EN-US>Case (markl+mark2 +mark3)/3>=95 书写也错误。 </span></p>
<p><strong>第四章 常见错误和难点分析 </strong></p>
<p><strong><span lang=EN-US>1. 不循环或死循环的问题主要是循环条件、循环初值、循环终值、循环步长的设置有问题。 </span></strong></p>
<p>例如,以下循环语句不执行循环体: </p>
<p><span lang=EN-US>For i=10 To 20 Step-1 ' 步长为负,初值必须大于等于终值,才能循环 </span></p>
<p><span lang=EN-US>For i=20 To10 ' 步长为正,初值必须小于等于终值,才能循环 </span></p>
<p><span lang=EN-US>Do While False ' 循环条件永远不满足,不循环 </span></p>
<p>例如,以下循环语句死循环: </p>
<p><span lang=EN-US>For i=10 To 20 Step 0 ' 步长为零,死循环 </span></p>
<p><span lang=EN-US>Do While 1 ' 循环条件永远满足,死循环 </span></p>
<p><strong><span lang=EN-US>2 .循环结构中缺少配对的结束语句 </span></strong></p>
<p><span lang=EN-US>For … Next 语句没有配对的 Next 语句; Do 语句没有一个终结的 Loop 语句等。 </span></p>
<p><strong><span lang=EN-US>3 .循环嵌套时,内外循环交叉 </span></strong></p>
<p><span lang=EN-US>For I=1 to 4 </span></p>
<p><span lang=EN-US>For j=1 to 5 </span></p>
<p><span lang=EN-US>… </span></p>
<p><span lang=EN-US>Next i </span></p>
<p><span lang=EN-US>Next j </span></p>
<p>上述循环的交叉运行时显示<span lang=EN-US> " 无效的 Next 控制变量引用 " 。 </span></p>
<p><strong><span lang=EN-US>4 .累加、连乘时,存放累加、连乘结果的变量赋初值问题 </span></strong></p>
<p><strong><span lang=EN-US>(1) 一重循环 </span></strong></p>
<p>在一重循环中, 存放累加、连乘结果的变量初值设置应 在循环语句前 。 </p>
<p>例如,求<span lang=EN-US> 1 ~ 100 的 3 的倍数和,结果放入 Sum 变量中,如下程序段,输出结果如何 ? 应作如何改进 ? </span></p>
<p><span lang=EN-US>Private SubForm_Click() </span></p>
<p><span lang=EN-US>For i=3 To 100 Step 3 </span></p>
<p><span lang=EN-US>Sum=0 </span></p>
<p><span lang=EN-US>Sum=Sum+i </span></p>
<p><span lang=EN-US>Next i </span></p>
<p><span lang=EN-US>Print Sum </span></p>
<p><span lang=EN-US>End Sub </span></p>
<p><strong><span lang=EN-US>(2) 多重循环 </span></strong></p>
<p>在多重循环中 ,存放累加、连乘结果的变量初值设置放在外循环语句前,还是内循环语句前,这要视具体问题 分别对待 。 </p>
<p>例如,期末<span lang=EN-US> 30 位学生参加三门课程的考试,求每个学生的三门课程的平均成绩如下程序能否实现? </span></p>
<p><span lang=EN-US>aver=0 </span></p>
<p><span lang=EN-US>For i=1 To 30 </span></p>
<p><span lang=EN-US>For j=1 To 3 </span></p>
<p><span lang=EN-US>m=InputBox(" 输入第 "&j&" 门课的成绩 ")
</span></p>
<p><span lang=EN-US>aver=aver+m </span></p>
<p><span lang=EN-US>Next j </span></p>
<p><span lang=EN-US>aver=aver/3 </span></p>
<p><span lang=EN-US>Print aver </span></p>
<p><span lang=EN-US>Next I </span></p>
<p><strong>第五章 常见错误和难点分析 </strong></p>
<p><strong><span lang=EN-US>1 . Dim 数组声明 </span></strong></p>
<p>有时用户为了程序的通用性,声明数组的上界用变量来表示,如下程序段: </p>
<p><span lang=EN-US>n=InputBox(" 输入数组的上界 ") </span></p>
<p><span lang=EN-US>Dim a(1 To n) As Integer </span></p>
<p>程序运行时将在<span lang=EN-US> Dim 语句处显示 " 要求常数表达式 " 的出错信息。即 Dim 语句中声明的数组上,下界必须是常数,不能是变量。
</span></p>
<p>解决程序通用的问题,一是将数组声明的很大,这样浪费一些存储空间;二是利用动态数组,将上例改变如下: </p>
<p><span lang=EN-US>Dim a() As Integer </span></p>
<p><span lang=EN-US>n=InputBox (" 输入数组的上界 ") </span></p>
<p><span lang=EN-US>ReDim a(1 To n)As Integer </span></p>
<p><strong><span lang=EN-US>2 .数组下标越界 </span></strong></p>
<p>引用了不存在的数组元素,即下标比数组声明时的下标范围大或小即为越界。例如,要形成有如下<span lang=EN-US> 30 项的斐波那契数列: </span></p>
<p><span lang=EN-US>1,1,2,3,5,8,13,21,34, … ,317811 , 514229 , 832040 </span></p>
<p>正确的程序段如下: </p>
<p><span lang=EN-US>Dim a(1 To 30) As Long, i% </span></p>
<p>若将<span lang=EN-US> For i=3 To 30 改为 For i=1 To 30 ,程序运行时会显示 " 下标越界
" 的出错信息,因为开始循环时 i=l ,执行到循环体语句 a(i)=a(i-2)+a(i-1) ,数组下标 i-2 、 i-1 均小于下界 1 。
</span></p>
<p>同样若将上例:<span lang=EN-US> a(i)+a(i-2)+a(i-1) 语句改为: a(i+2)=a(i)+a(i+1) </span></p>
<p>程序运行时也会显示<span lang=EN-US> " 下标越界 " 的出错信息,这时是数组下标大于上界 30 。 </span></p>
<p><strong><span lang=EN-US>3 .数组维数错 </span></strong></p>
<p>数组声明时的维数与引用数组元素时的维数不一致。例如,下程序段为形成和显示<span lang=EN-US> 3 × 5 的矩阵: </span></p>
<p><span lang=EN-US>Dim a(3,5) As Long </span></p>
<p><span lang=EN-US>For i=1 To 3 </span></p>
<p><span lang=EN-US>For j=1 To 5 </span></p>
<p><span lang=EN-US>a(i)=i*j </span></p>
<p><span lang=EN-US>Print a(i);""; </span></p>
<p><span lang=EN-US>Next j </span></p>
<p><span lang=EN-US>Print </span></p>
<p><span lang=EN-US>Next i </span></p>
<p>程序运行到<span lang=EN-US> a(i)=i*j 语句时出现 " 维数错误 " 的信息,因为在 Dim 声明时是二维数组,引用时的一个下标。
</span></p>
<p><strong><span lang=EN-US>4 . Aarry 函数使用问题 </span></strong></p>
<p><span lang=EN-US>Aarry 函数可方便地对数组整体赋值,但此时只能声明 Variant 的变量或仅由括号括起的动态数组。赋值后的数组大小由赋值的个数决定。
</span></p>
<p>例如,要将<span lang=EN-US> 1 , 2 , 3 , 4 , 5 , 6 , 7 这些值赋值给数组 a ,下表列出了三种错误及相应正确的赋值方法。
</span></p>
<p align=center style='text-align:center'><span lang=EN-US>Aarry 函数表示方法 </span></p>
<table border=1 cellspacing=0 cellpadding=0 style='mso-cellspacing:0cm;
border:solid windowtext .5pt;mso-padding-alt:0cm 0cm 0cm 0cm'>
<tr>
<td width=295 valign=top style='width:221.25pt;border:solid windowtext .75pt;
padding:0cm 0cm 0cm 0cm'>
<p align=center style='text-align:center'>错误的<span lang=EN-US> Aarry 函数赋值 , </span></p>
</td>
<td width=288 valign=top style='width:216.0pt;border:solid windowtext .75pt;
padding:0cm 0cm 0cm 0cm'>
<p align=center style='text-align:center'>改正的<span lang=EN-US> Aarry 函数赋值 </span></p>
</td>
</tr>
<tr>
<td width=295 valign=top style='width:221.25pt;border:solid windowtext .75pt;
padding:0cm 0cm 0cm 0cm'>
<p><span lang=EN-US>Dim a(1 To 8) a=Array(1,2,3,4,5,6,7,8) </span></p>
</td>
<td width=288 valign=top style='width:216.0pt;border:solid windowtext .75pt;
padding:0cm 0cm 0cm 0cm'>
<p><span lang=EN-US>Dim a( ) a=Array(1,2,3,4,5,6,7) </span></p>
</td>
</tr>
<tr>
<td width=295 valign=top style='width:221.25pt;border:solid windowtext .75pt;
padding:0cm 0cm 0cm 0cm'>
<p><span lang=EN-US>Dim a As Integer a=Array(1,2,3,4,5,6,7) </span></p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -