实验六:选择结构程序设计
一、实验目的:
掌握选择结构程序设计方法,要求学生掌握用合适的语句实现多分支选择结构的技巧。 二、实验步骤:
1. 启动计算机;
2. 进入QBASIC编辑状态;
3. 按下列公式写出计算函数值的程序。
Y=[ (sinX+cosX)/2 X≥0
(sinX—cosX)/2 X<0
程序清单:
INPUT x
If x < 0 Then y = (Sin(x) - Cos(x)) / 2 If x >= 0 Then y = (Sin(x) + Cos(x)) / 2 Print y End
运行结果:x=0 y=0
x=1 y=0.6
4. 有一分段函数:
0 X≤0
0.15 0 (1) 写出用IF结构实现的程序段。 程序清单: INPUT x If x <= 0 Then y = 0 If x > 0 And x <= 10 Then y = 0.15 * x If x > 10 And x <= 20 Then y = 1.5 + 0.31 * (x - 10) If x > 20 Then y = 1.5 + 0.45 * (x - 20) Print y End (2) 若用SELECT CASE结构,写出程序段。 程序清单: INPUT x Select Case x 11 Case Is <= 0 y = 0 Case Is <= 10 y = 0.15 * x Case Is <= 20 y = 1.5 + 0.31 * (x - 10) Case Is > 20 y = 1.5 + 0.45 * (x - 20) End Select Print \ End (3)X输入值分别为0,3,17,50,写出输出结果。输入语句用INPUT。 运行结果:x=0 y=0 x=3 y=0.45 x=17 y=3.67 x=50 y=15 12 实验七:循环结构程序设计 一、实验目的: 掌握选择结构程序设计方法,要求学生会用FOR循环、WHILE 循环编制程序。 二、实验步骤: 1. 启动计算机; 2. 进入QBASIC编辑状态; 3. 编程并运行,把正确的程序存入软盘。 ① 求∑n/(n+1),分别用FOR-NEXT 循环和WHILE-WEND 循环实现(其中n取值从1到20) FOR-NEXT循环程序如下: For i = 1 To 20 y = y + i / (i + 1) Next i Print \ End 运行结果:y=17.35464 WHILE-WEND循环程序如下: n = 1: y = 0 While n <= 20 y = n / (n + 1) + y n = n + 1 Wend Print \ End 运行结果:y=17.35464 ② 从键盘输入一个偶数n,将它分解为两个奇数之和(要所有第一个奇数小于等于第二个 奇数的分解式) 程序如下: INPUT n j = (n / 2) – 1 k = (n / 2) + 1 s = j + k If j / 2 = Int(j / 2) Then j = j - 1 k = k + 1 End If Print s; \ 运行结果:n=8 s=3+5 End n=20 s=9+11 13 ③ 编写并运行程序,求s=1+2+3+n<1000时,最大的n和s。 n = 1 s = 0 While s + n < 1000 n = n + 1 s = s + n Wend Print \ End 运行结果:s=989 n=44 14 实验八:循环结构程序设计 一、实验目的: 掌握全部循环语句和结构及多重循环程序设计方法,提高解决问题的能力。 二、实验步骤: 1. 启动计算机; 2. 进入QBASIC编辑状态; 3. 做下列各题并将测试好的程序存入软盘。 (1)编写程序并打印出如下图形。 (A) * (B) ***** *** ***** ***** ***** ******* ***** ********* ***** (C) ***** (D) *** ***** ***** ***** ******* ***** ***** ***** *** 程序: (A)FOR I=1 TO 5 (B)FOR I=1 TO 5 PRINT TAB(35-I); PRINT TAB(30) FOR J=1 TO 2*I-1 FOR J=1 TO 5 PRINT “*”; PRINT “*”; NEXT J NEXT J PRINT PRINT NEXT I NEXT I END END (C)FOR I=1 TO 5 (D)CLS PRINT TAB(30+I); FOR I=-3 TO 2 FOR J=1 TO 5 PRINT TAB(35+ABS(I)); PRINT “*”; FOR J=2*ABS(I)+1 TO 7 NEXT J PRINT “*”; PRINT NEXT J NEXT I PRINT END NEXT I END (2)1!+2!+3!+??10! 15