![三维图形化C++趣味编程](https://wfqqreader-1252317822.image.myqcloud.com/cover/599/24172599/b_24172599.jpg)
第三章 抑扬顿挫,余音绕梁
奏高山流水
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P40_1.jpg?sign=1738811452-qhHmQNHdAm7Z089flFo5kh70ADqFQcPX-0-f4ccc111a8b28610b30dae43e9d83667)
传说先秦的琴师伯牙一次在荒山野地弹琴,樵夫钟子期竟能领会琴意,赞道:“峨峨兮若泰山,洋洋兮若江河。”伯牙惊道:“善哉,子之心而与吾心同。”故有高山流水之曲,比喻知己或知音,也比喻乐曲高妙。
Dev-C++智能开发平台也可以编程演奏音乐。
【例3.1】Windows系统自带了几种声音效果,编程让计算机喇叭输出这些声音效果。
参考程序如下所示。
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P40_2.jpg?sign=1738811452-PG0wLwVaQQSsu3HcOj2OhIN7tv0HsU5a-0-41aaabd5dff17831c3015a211262b885)
系统自带音效可以用beep(1)、beep(2)、beep(3)、beep(4)来表示。
如果暂停一段时间,例如播放两个音符的中间暂停10毫秒(1000毫秒=1秒),可以用Sleep(10);显然暂停0.5秒为Sleep(500)。
开始学音乐时,老师都会教我们唱do re mi fa so la si,在音乐中它们是非常重要的七个音,而最基本的C大调音阶就是靠它们组成的,如图3.1所示。
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P41_1.jpg?sign=1738811452-xjXdoj3gK908n2rvpZiJhr6CrRxyvI58-0-869942fb8d4707259fb1901c396f3d36)
图3.1
Dev-C++智能开发平台可以编程将这七个音用高音、中音、低音的方式来播放。高音、中音、低音分别用1,0,-1来表示,而do re mi fa so la si分别用1,2,3,4,5,6,7来表示。
例如Sound(1,0,0.5);表示do音用中音来播放,时长为0.5秒。Sound(2,-1,0.8);表示re音用低音来播放,时长为0.8秒。
【例3.2】试编程播放《两只老虎》的乐曲。《两只老虎》的简谱如图3.2所示。
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P41_2.jpg?sign=1738811452-6VMwGHNqC9cF6ejRbIcvmbgzZNKPl3JK-0-130f2e78f0dd842f24c00b5b389d6577)
图3.2
参考代码如下所示:
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P42_1.jpg?sign=1738811452-GFlzRgjut8UHasEIYd6J1x8GzCSu72y6-0-2c5b7cc021cf13eac9be247edd68c53c)
程序中第2行用#define定义常量T的值为1.3,常量的值在程序运行时不会被改变,此后凡是在该源文件中出现的T都代表1.3。
注意该行语句末尾是没有分号的。
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P18_2.jpg?sign=1738811452-lmnjRIoLGBSnGNgj6WvV10N5hFbbvlWX-0-aa498c2fb810d67330b6da3305c1aa86)
我看明白了,因为代码中Sound语句里的播放时间均为一个数值与T的乘积,所以,如果我改变T的值,乐曲的弹奏速度也会随之发生变化。它的好处是一改全改。
任务 【题3.1】请从网络上选择一个自己喜欢的曲谱,试通过编程的方式播放该曲谱,例如《祝你生日快乐》的简谱如图3.3所示。
![](https://epubservercos.yuewen.com/8F749A/13043252003826606/epubprivate/OEBPS/Images/Figure-P43_1.jpg?sign=1738811452-wn61U2yxQs1JOx12HmrzEItBDnlumCxu-0-8f600f51438516c44f7a4aed42035342)
图3.3