登陆注册
45421700000071

第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语句,就运行一下程序,看看这组数据是画小房子的哪一部分的。这样做将有助于读懂程序。

同类推荐
  • 科普知识百科全书——《植物知识篇》(上)

    科普知识百科全书——《植物知识篇》(上)

    本书结合当前最新的知识理论,根据青少年的成长和发展特点,向青少年即全面又具有重点的介绍了宇宙、太空、地理、数、理、化、交通、能源、微生物、人体、动物、植物等多方面、多领域、多学科、大角度、大范围的基础知识。
  • 科普新课堂——人体密码

    科普新课堂——人体密码

    细胞是构成人体结构和表现生理功能的基本单位。万丈高楼平地起。高楼由水泥、砂石、木材和钢筋、玻璃等建筑材料构架而成。无论从结构、功能、生命需要等方方面面来看,人体结构之精巧、安排之紧密、功能协调之完美、外表匀称之美感,在大自然中都是无与伦比的。
  • 开拓学生视野的传奇故事:会跳舞的花

    开拓学生视野的传奇故事:会跳舞的花

    《开阔学生视野的传奇故事:会跳舞的花》中的一个个传奇故事,融中外奇闻于一体,汇古今奇趣于一书,内容翔实,洋洋大观。《开阔学生视野的传奇故事:会跳舞的花》中的一个个传奇故事,虽奇而不荒诞,虽趣而不俗,虽神而不虚假。读罢这些故事,你会觉得既离奇神秘,又真实可信,一册在手,神游世界,探古寻幽,自有乐趣。你还能从这些精彩的故事中学到知识,增长见识,明白事理,陶冶性情。
  • 低碳服装

    低碳服装

    地球是我们共同的家园,白云蓝天,雾霭流岚、花香鸟语、蝶舞莺飞……如此美丽的环境需要我们共同的呵护。不要让小河的水总是恶臭,不要让机动车的尾气令人掩住口鼻,不要让草丛里的塑料袋不计其数……让我们牵起手,从一点一滴的小事做起,使我们的地球更美丽,更精彩。《低碳服装--让你穿得舒服又健康(典藏版)》(作者徐帮学)旨在引导新时代的青少年一起行动起来,为了我们共同的家园,用自己的实际行动把生活耗用能量降到最低,从而减少二氧化碳的排放,实现绿色低碳生活。这本《低碳服装--让你穿得舒服又健康(典藏版)》是“低碳科普馆”系列之一。
  • 外星秘密百科(奥秘世界百科)

    外星秘密百科(奥秘世界百科)

    宇宙天地和自然世界真是丰富多彩、纷繁庞杂,使我们对于那许许多多的难解之谜,不得不密切关注和发出疑问。人们总是不断地去认识它,勇敢地去探索它。虽然今天科学技术日新月异,达到了很高程度,但对于许多奥秘还是难以圆满解答。人们都希望发现天机,破解奥秘。古今中外许许多多的科学先驱不断奋斗,一个个奥秘不断解开,推进了科学技术的大发展,但又发现了许多新的奥秘现象,又不得不向新的问题发起挑战。正如达尔文所说:“我们认识自然界的固有规律越多,这种奇妙对于我们就更加不可思议。”科学技术不断发展,人类探索永无止境,解决旧问题,探索新领域,这就是人类一步一步发展的足迹。
热门推荐
  • 陈冬念的故事

    陈冬念的故事

    琐碎的小事,向上看向下看,向左走向右走,生活兜兜转转又回到了从前
  • 恰逢三月恰逢你

    恰逢三月恰逢你

    娱乐圈一直流传一段佳话,李影帝和苏影后,喜结连理,占据各大媒体热搜榜单。苏夭夭:“喂喂喂,采访一下,自己养了十八年的媳妇儿跟别人跑了有何感受?”女孩星星眼看着对面的男人。男人抬头望了她一眼,“气。但,她很有自知之明的回来了。”苏夭夭:……李盛泽:“没有抛夫弃子。”苏夭夭:……“那她进娱乐圈,你对此有何看法。”李盛泽轻笑,“我陪她一起啊,她当影后,我当影帝,帝后天生一对。”苏夭夭:“你夫人真幸福呀。”李盛泽托腮看着她,“是啊我夫人真幸福啊,还有一对龙凤胎呢。”男人一步一步朝女孩靠近,“是啊,你以后会更幸福的。”唔……
  • 那个夏天我遇见了你

    那个夏天我遇见了你

    当三个美女碰上三个帅哥,当16岁的老师碰上18岁的学生时,会迸发出怎样的火花呢?
  • 撩个青梅伴竹马

    撩个青梅伴竹马

    “嫁给我,我给你整个世界。”那是个温柔的陷阱,陷进去,便再出不来。他宠她入骨,但那种宠爱却有着别样的目的。“陆子安,你会后悔的。”那时她挺着大肚子,怀着他的孩子,当着他的面,纵身投入那无尽的大海。十年的缘分,在这一瞬消失殆尽。失去的那一刻,他幡然醒悟,只可惜,为时已晚……当青梅枯萎,竹马老去,从此我爱的都像你。他们的心中,其实从没有忘记过彼此,只不过,上天要给他们一场考验而已。--情节虚构,请勿模仿
  • 混沌巨斧

    混沌巨斧

    一个四世轮回之人,牵涉一件神兵混沌巨斧。随着修炼的进阶,迷雾逐渐清晰,为何唯独第二世扑所迷离?就连身边人也是三缄其口?到底第二世经历了什么?这一世对现在有什么影响?带着混沌巨斧,他能坐做些什么?看少年吴江如何在修炼的世界里如何揭开迷雾,如何一步步实现心中的梦!
  • 邪王追妻:呆萌律师俏王妃

    邪王追妻:呆萌律师俏王妃

    顾清溪表示自己穿越第一天就遇到偷窥狂不说,这偷窥狂还偷窥上瘾了,怎么哪都看的到他。要不,逃吧!王爷王妃又逃了!无妨再过些时候自然就回来了。某妖孽淡淡的说道。君墨寒!你还是个男人嘛,一天24小时形影不离算个鬼啊,有本事让我走!你知不知道跟踪是犯法的!更何况你还侵犯我!别以为自己是个王爷就了不起死了,老娘还是律师呢!——某女n次出逃失败后。相公的本事向来不是用在这里的~某王爷邪邪的道
  • 陈念慕深

    陈念慕深

    他死了,本以为我能像他救赎我一样去救赎他,可是最后我还是失败了,当我再一次执行任务时不幸牺牲,我在梦里再一次见到了他。
  • 闪婚老公契约妻

    闪婚老公契约妻

    从小被后妈嫌弃,奶奶不待见,被妹妹欺负,却连亲生父亲也要抛弃了她,选择妹妹。一场火海,面目全非,阔别十八年,从豪门之女变成腹黑复仇女,在她拉开复仇的序幕,却上演选错房,上错床的误会,计划已久的开端,倒变的滑稽可笑。知错能改,不愿逗留,可明明自己吃亏,对方倒是一副不肯放过她的架势……怪她错惹黑帮恶少!
  • 恶魔在纪元

    恶魔在纪元

    联邦纪元8050年天灾降临,人们吸收星力战胜恐惧,星星之火尚可燎原,我王行也可逆天而行。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!