Download presentation
Presentation is loading. Please wait.
Published by磁儡 伍 Modified 7年之前
1
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件<windows.h>
2
声音实例1 #include <windows.h> void main() { Beep(1000, 1000); }
3
音乐中1,2,3,4,5,6,7,i的发音 原理参见网络课程《数学大观》第3讲
1,2,3,4,5,6,7,i的发音由振动频率决定,它们成等比数列,音阶间比值k=2(1/12) 假定1的频率是277,那么他们的频率分布如下: 1的频率=277*K0, 2的频率=277*K2, 3的频率=277*k4, 4的频率=277*k5, 5的频率=277*k7, 6的频率=277*k9, 7的频率=277*k11, i的频率=277*k12,
4
声音实例2,求音乐中1,2,3,4,5,6,7,i的频率。
#include <windows.h> #include <math.h> #include <iostream.h> void main() { double k=pow(2,1.0/12.0); int F[8]; int a=277; F[0]=a; F[1]=a*pow(k,2); F[2]=a*pow(k,4); F[3]=a*pow(k,5); F[4]=a*pow(k,7); F[5]=a*pow(k,9); F[6]=a*pow(k,11); F[7]=a*pow(k,12); for(int i=0;i<8;i++) cout<<i+1<<“的频率是”<<F[i]<<endl; }
5
声音实例3,因此输出音乐中1,2,3,4,5,6,7,i的发音。
#include <windows.h> #include <math.h> #include <iostream.h> void main() { int F[8]={277,310,348,369,415,465,522,554}; for(int i=0;i<8;i++) Beep(F[i],1000); Sleep(100); }
6
练习 依据这8个音的频率,自行创作一首音乐,然后通过程序定义一个二维数组,分别存储每个音调和它的发声持续时间,用程序播放。
7
字符串数组练习 1: 编写一个程序,从键盘输入两个字符串s1和s2,然后从s1中删除所有与s2串中重复的字符,然后输出s1。
2: 编写一个程序,从键盘输入两个字符串s1和s2,其中s1的长度是30,s2的长度是2,统计串s2在s1中出现的次数。
Similar presentations