登陆注册
15875100000071

第71章 怎样用BASIC语言演奏音乐

下面是用BASIC语言编写的音乐程序。

10REM CEC—I音乐程序

20READ X,Y

30IF X<0 THEN END

40MUSIC X,Y

50GOTO 20

60DATA 192,70,172,70,152,70,144,70,128,70,114,70,102,70,96,70

500DATA-1,-1

这个程序可以演奏C调的一个八度音程。

20语句行的定义符READ,叫做读数。60语句行的定义符DATA,叫做置数,这两条语句结合在一起是给变量提供数据的第三种方法(前两种分别是LET和INPUT)。这种方法特别适宜给变量提供批量数据。

DATA语句为READ语句准备所需要的数据,READ语句将这些数据依次赋给变量。DATA语句是非执行语句,它可以放在程序的任何地方。一般习惯将DATA语句放在其它语句的后面,END语句之前。

本程序第一次执行20语句后,X的值是192,Y的值是70。

40语句行的定义符MUSIC,是中华学习机特有的定音语句。这个语句行的意思是,按照X决定的音高,Y决定的音长响一声。

声音有4个特性:①音高(频率、音调)②音长(声音持续的时间)③音量(响度)④音色(音品,由谐音决定)。通过程序,一般只能控制计算机喇叭的音高和音长,不能控制音量和音色。

因此,MUSIC后面的语句体只有X,Y两个数据,X中存决定音高的音阶码,Y中存音长码。

下面是C调的音阶代码表。

音符56

7123456代码255228204192

172152

144128114

音符71·2·3·4·5·6·7·0代码10

2968676726457511(代码1表示休止符)

下面是音长代码表(参考值)

节拍1/4拍1/2拍1拍2拍

代码3070160225

当程序第一次执行20语句时,将奏出C调“1”,并延续半拍。

执行50语句行,使程序转回20语句行,再次读X,Y的值。这时将读到DATA语句中的第2组数据,分别把172和70赋给X,Y。再次执行40语句时,将按照172决定的音高、70决定的音长响一声,也就是奏出“2”,并延续半拍。如此反复进行,直到读到两个—1,因为30语句的条件被满足,所以程序结束。

怎样用BASIC语言绘图

绘图主要有两种方式,一种叫低分辨率绘图,另一种叫高分辨率绘图。下面各举一例,并作说明。

程序1

10REM流水(低分辨率绘图)

20GR

30COLOR=15

40FOR S=1 TO 6

50READ X1,X2,Y

60HLIN X1,X2,AT Y

70NEXT S

80DATA 4,14,13,15,31,4,15,29,6,15,19,10,14,17,12,34,39

90FOR S=1 TO 8

100READ Y1,Y2,X

110VLIN Y1,Y2,AT X

120NEXT S

130DATA 2,13,4,4,2,4,14,6,10,14,6,34,29,4,34,31,30,39,9,30,39,35,10,13,19

140FOR S=1 TO 5

150READ X,Y

160PLOT X,Y

170NEXT S

180DATA,3,2,15,2,17,13,8,30,36,30

190FOR M=1 TO 14

200COLOR=M

210FOR I=12 TO 6 STEP-1

220HLIN 5,13 AT

230NEXT I

240FOR I=38 TO 35 STEP-1

250HLIN 10,34 AT I

260NEXT I

270FOR I=34 TO 32 STEP-1

280HLIN 10,28 AT I

290NEXT I

300FOR I=34 TO 32 STEP-1

310HLIN 32,34 AT I

320NEXT I

330HLIN 14,18 AT 11

340VLIN 32,34 AT 30

350X=18:Y=12:XU=0:YU=3

360NX=X+XU:NY=Y+YU

370IF NY>32 THEN NX=30:NY=32:XU=0:YU=-3

380IF NY<7 THEN XU=-1:YU=0

390COLOR 0:PLOT=14,5

400IF NX<14 THEN 450

410COLOR=M:PLOT NX,NY420COLOR=0:PLOT X,Y430X=NX:Y=NY

440GOTO 360

450NEXT M

460END

这个程序比较长,建议:

一、先把低分辨率作图的基本命令搞清楚。

二、分段输入这个程序,每输入一段,运行一下程序,体会这段程序的功能并学习它的编程方法。这样化整为零学习起来就不难了。

首先,介绍低分辨率绘图用到的基本命令。

一、GR(见20语句行)

这个命令使屏幕进入低分辨率图形和文本显示的混合状态。在屏幕的底部留出四行作为文本显示区。文本区之上为图形显示区,可以显示40行(0—39)、40列(0—39)小色块。

二、COLOR(见30语句行)

COLOR语句的功能是设定颜色。COLOR的值可以取0—15(若超过15,则按16的模处理,但不得超过255),分别代表16种不同的颜色。

下面是颜色的代码表

012345黑色品红深蓝紫色深绿深灰

67891011天蓝淡蓝褐色橙色灰色粉红12131415绿色黄色湖蓝白色

三、PLOT(见160语句行)

PLOT语句的功能是,在屏幕(X,Y)坐标决定的位置上绘出一个小色块。这里X是横坐标,Y是纵坐标。

四、HLIN(见60语句行)

HLIN语句的功能是,在屏幕上绘出一条从点(X1,Y)到点(X2,Y)的水平色条。

五、VLIN(见110语句行)

VLIN语句的功能是,在屏幕上绘出一条从点(X,Y1)到点(X,Y2)的竖直色条。

以上这些定义符在本程序中都用到了,可以分段运行,体会它们的作用。

第一段10——80语句

第二段90——130语句

第三段140——180语句

第四段190——450语句。本段还可以分为几个小段(应先输入450语句)

①200——230语句

②240——260语句

③270——340语句

④350——440语句

如果在400和430语句行之间加上以下两个语句行,你将不仅看到流水的画面,而且能听到水滴的声音。

424LF NY=32 AND YU=-3 THEN POKE 6,250:POKE 7,50:CALL 800

428IF YU<>0 THEN POKE 6,NY+30:POKE 7,30:CALL 800

程序2

10REM风景(高分辨率绘图)

20HGR2

30HCOLOR=3

40HPLOT 10,190 TO 270,190

50HPLOT 50,190,TO 50,140 TO,20,140 TO 45,100 TO 25,100 TO 50,60 TO 30

,60 TO 55,30

60HPLOT TO 80,60 TO 60,60 TO85,100 TO 65,100 TO 90,140 TO 64,140 TO 60,90

70READ X1,Y1,X2,Y2

80IF X1=-1 THEN END

90HPLOT X1,Y1 TO X2,Y2

100GOTO 70

110DATA 150,90,230,90,150,90,125,130,125,130,255,130,230,90,205

,130,230,90,255,130

120DATA 130,130,130,190,200,130,200,190,250,130,250,190

130DATA 160,150,160,190,160,150,180,150,180,190

140DATA 200,140,220,155,220,140,235,140,235,155,220,155,235,155

200DATA-1,-1,-1,-1

运行本程序将在屏幕上出现一棵树和一座小房子。下面对程序2做简要说明。

20语句行的定义符HGR2,其功能是置屏幕为高分辨率第二页绘图状态。在比状态下屏幕可以显示192行(0——191),280列(0——279)个小色点。

30语句行的定义符HCOLOR是设定颜色,颜色码规定如下:0123456

黑绿紫白黑红蓝白

40、50、60、90语句行中的HPLOT,是高分辨率作图语句的定义符。它有三种格式:①HPLOT X1,Y1

②HPLOT TO X1,Y2

③HPLOT X1,Y1 TO X2,Y2 TO X3,Y3……

格式①是在(X1,Y1)坐标处画一个点。格式②是从已绘图形最后一点到点(X2,Y2)绘出一条线。格式③绘出从点(X1,Y1)到点(X2,Y2)到点(X3,Y3)……一组线段。

建议分段运行程序2:

第1段10——40语句行,画出地平线

第2段50—60语句行,画出一棵树,其中,50语句行画出树的左半部分,60语句行画出树的右半部分。

第3段70——200语句行,画出小房子。输入本段程序时,可以把70——100及200语句行先输进去。然后每输入一个DATA语句,就运行一下程序,看看这组数据是画小房子的哪一部分的。这样做将有助于读懂程序。

同类推荐
  • 不可思议的流行风尚(青少年探索发现丛书)

    不可思议的流行风尚(青少年探索发现丛书)

    本丛书是青少年探究历史,了解自身,探索大自然的一套不可多得的知识图典。本书精选人类历史上最不可思议的流行风尚,以独特的视角,趣味横生的语言,绘声绘色地讲述了某些历史时期,某些地区曾经流行百年甚至千年的怪异风尚,这些现象在当时别的地区的人们眼中简直就是奇闻怪谈,在我们现代人看来,更是不可思议、荒诞离奋……
  • 低碳农业

    低碳农业

    《低碳农业——引领农业新时尚(典藏版)》由徐帮学主编,旨在引导新时代的青少年一起行动起来,为了我们共同的家园,用自己的实际行动把生活耗用能量降到最低,从而减少二氧化碳的排放,实现绿色低碳生活。低碳生活是一种态度,也是一种责任,更是一种爱,让我们的爱更宽广,更包容,更细致吧!营造一个低碳的交通环境不仅是为了我们自己,更是为了造福后代。低碳减排,从我做起,从身边小事做起吧。
  • 求知文库-能源的形势与现状

    求知文库-能源的形势与现状

    当我们翻开人类社会的发展史,便可以发现能源与人类社会的进步结下了不解之缘。火的利用,使人类结束了茹毛饮血的原始生活,火不但改造了人类自身,使人脑更聪明、体魄更强健,而且推动了社会生产力的发展和社会结构的变革。
  • 孩子最爱问的经典科学迷题

    孩子最爱问的经典科学迷题

    孩子的好奇心是与生俱来的,孩子眼中的世界是神奇而又陌生的。在孩子渐渐长大的过程中,应该让他们发挥自己爱问问题的本性,使他们在探知尚未熟悉的世界的过程中成长心智,使他们充分享受到破解迷惑的无穷乐趣,让他们的眼睛永远闪烁智慧与灵性的光芒,让世界在孩子们的眼中揭开一层层神秘的面纱。科普书,尤其是给孩子看的科普书更应该特别用心去写,要了解孩子的心理,从他们感兴趣的角度叙述。鉴于此,我们编写了这本汇集人体、动物、科技、宇宙、自然等各方面经典科学谜题的科普书,以期让孩子了解科学、爱上科学!
  • 求知文库-气象科学与观测

    求知文库-气象科学与观测

    我们居住的地球被一层大气圈所包围,大气圈随地球一道转动,形成一个整体。如果我们从星际空间去看地球,大气圈就像一层淡蓝色的薄幕紧裹着地球,透过这层薄幕,可以清晰地看到地面上的山脉、海洋等。如果把大气圈看作气体的海洋,我们就生活在这个海洋的底部。
热门推荐
  • 原力崛起

    原力崛起

    他天潢贵胄,却与卑微为伍。他天赋超凡,却宁抛弃荣耀。当梦想早已成为传说的字眼,他仍朴素地坚信,有梦就会有未来
  • 请你等我回来

    请你等我回来

    玲珑:星辰哥哥你要去哪,可以带上我吗?星辰:不可以太危险了玲珑:星辰哥哥你就带我去吧。只要你带我去,我一定不给你添麻烦,我会跟紧你的。星辰:不行太危险了玲珑:星辰哥哥星辰:好了,不要再说了玲珑:我就要去星辰:好吧玲珑:真的吗。。。趁机星辰将玲珑打晕。。。。
  • 修罗煞女:极品召唤师

    修罗煞女:极品召唤师

    某天,黑帮帮主——夜璃,脑袋秀逗了,跑去盗墓。结果正好碰上了盗墓第一高手,两人就斗起来了,难舍难分。然后捏,夜璃偷袭,毒死了盗墓高手,结果也毒死了自己……之后,重生到了一枚刚被嫡姐害死的天才萝莉,嗯哼,开始了她的虐渣人生。错爱上对她有救命之恩的逗逼美男,却被他伤的伤痕累累,而某个傲娇兽尊向她表达了爱意,但素,那个傲娇的神兽奶包跑哪去了,怎么多了一个一脸无良的翩翩美少年!!妈呀,虽说姐爱美男但素绝对不喜欢兽兽啊!!
  • 网游之一方霸主

    网游之一方霸主

    请关注新书《刀斩狂潮》!世界末日即将来临,各国政府集结在一起组成“地球联盟”,集合全国顶级科学家用了10年时间建造出了“诺亚方舟”。《新世界》一款史诗级的虚拟网络游戏,以诺亚方舟的超级智能电脑为主系统,进入游戏必须舍弃身体,让意识永远留在游戏中,只有这样才能解决诺亚方舟的容纳人数难题。
  • TFboys那个十年

    TFboys那个十年

    她是孤儿,却因为他的出现而一改冷冰,甚至为了能配上他而趟上了演艺圈这趟浑水。他是巨星,却因为她的出现而变的温柔体贴,他不在意她的身份,他只要她好,他自己就好。“易烊千玺,你是我的,你永远都是我的。”某女霸道的说。“好,我是你的。”某男宠溺的说。“哼!谁知道你说的话...
  • 豪门盛爱,总裁的隐婚妻

    豪门盛爱,总裁的隐婚妻

    苏清茉跟自己的死对头一起演戏,对方借着拍掌掴她的戏份,把她的一边脸给划了一道深深的划痕,鲜血直流,险些毁容!这一次她不能再忍受了,对着那个站在顶端的男人,她曾经的初恋说:“我接受你之前提出的要求,我陪你一晚,你让我的演艺事业从此顺风顺水。”他神色淡淡的看着她,而后唇角轻勾,一抹玩味的笑意:“我现在改变主意了。”在他看到她失落的眼神时,再次开口:“我要你陪我一辈子。”“一辈子就一辈子,谁怕谁?”“那好,等你的脸好了,带上户口本来找我。”“你要我的户口本干什么?”她满眼疑惑的看着他,他这是要搞人口普查吗?“去民政局缺少了户口本有些事情会不太好办。”
  • tfboys之苦涩的明天

    tfboys之苦涩的明天

    “小莫我爱你”少年羞涩的说。“我知道!!!”少女微笑着,“当我女朋友好吗???”“对不起,我已经嫁人了!!!”少女关上了门也关上了少年的心??“我很,爱你”“不要,走”男生抱住了女生,“对不起!!!你跟着我就只要痛苦!!!”女生推开了男生,“不要,走”男生再次抱住了女生,“我讨厌你,在这个世界上我最讨厌的就是你!!!”男生不肯放手“媳妇儿~可是,我很,爱你”
  • 锦绣糖果屋

    锦绣糖果屋

    她是叶之魔女莉莉丝,她是魔界女王白颜夕,她是东方晓……
  • 大世葬星

    大世葬星

    待我仗剑归山日,定让血染半边天!异世大陆,主宰沉浮!
  • 北桉浅谈

    北桉浅谈

    我们都有自己别样的青春。愿你们青春已不再迷茫。