程 序 源 代 码


芭蕾舞曲《四小天鹅》
    说明:QBASIC语言具有两种音乐编程功能。一种是用SOUND语句,后面加上音调的频率和持续的时间;另一种是用PLAY语句,后面加上置于双引号里的表示八度音程区和音阶的字母以及表示音长的数字。如果引号里的内容多处重复,可用一表示字符串的变量名来替代。如本程序第30行的变量A$即表示:八度音程区为O0,音阶为A,音长为8分音符,接着是8度音程为O1,音阶为E,音长又为8分音符。第35行表示将第30行A$所表示的两个音符连续重复演奏4次。第20行表示节拍速度。本程序即为用QBASIC语言的后一种功能编程演奏的芭蕾舞剧《天鹅湖》中的一首乐曲。
 
5 CLS
10 LOCATE 12, 25: PRINT "芭蕾舞曲《四小天鹅》"
20 PLAY "T100"
30 a$ = "O0A8O1E8"
35 PLAY a$ + a$ + a$ + a$
40 FOR i = 1 TO 2
45 IF i = 2 OR b = 1 THEN 55
50 PLAY "P8O3C8C8C8": b = 0: GOTO 60
55 PLAY "O2A8O3C8C8C8"
60 PLAY "C8.O2B32O3C32D8C8 "
65 PLAY "O2B8O3D8D8D8D8.C32D32E8D8"
70 PLAY "C8E8A8G#8E8O2B8O3E16D16C16O2B16"
80 PLAY "O2A8O3E8A8G#8O3E8O2B8O3E16D16C16O2B16"
90 NEXT
100 IF b = 1 THEN 230
110 FOR i = 1 TO 2: a = 0
120 PLAY "O2A8O3E8E8E8"
125 PLAY "E8E8A16G16F16E16 "
130 PLAY "D8E4F4C#4D8D8D8D8D8D8D8G16F16E16D16"
140 IF a = 1 THEN 180
150 PLAY "C8G8B16A16G16F16E8B8O4D16C16O3B16A16"
160 PLAY "O3G8E8E8E8"
170 a = 1: GOTO 125
180 PLAY "O3C8O2A8B16O3C16D16D#16E8O2E8F16F#16G16G#16"
190 NEXT
220 b = 1: GOTO 40
230 FOR i = 1 TO 2
240 PLAY "O2A8O3E8D8E16D16C8E8D8E16D16"
250 PLAY "C8E4D4C4O2B8"
260 NEXT
270 PLAY "O2A8O3G#8A4"
280 END