关于用c语言演奏《天空之城》那些事

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 关于用c语言演奏《天空之城》那些事

前言


     最近挖库存挖到了一个刚刚学习编程的时候用C语言写的生日祝福代码,其中用C语言代码用Beep函数控制蜂鸣器根据音调高低的不同演奏了一曲《天空之城》,满满都是怀念的感觉啊!


       或许这没有什么技术难度,但是却是为了学习编程培养了浓厚的兴趣,记得当时我还用C语言实现了炫屏功能、琢磨出如何用C语言打印出十八种爱心和演奏了生日快乐歌等等,hahaha~还是挺好玩的。


谱子:


       琴谱:


   image.png


       代码谱:    

 

#include<iostream>
#include <windows.h>
#include<string>
#include<math.h>
#include<stdlib.h>
#include <cstdio>
void Tiansing(){
  const int qdo=262;
      const int qre=294;
      const int qmi=330;    //q前缀为低音,1后缀为高音,s前缀为半音阶
      const int qfa=349;
      const int qso=392;
      const int qla=440;
      const int qsi=494;
      const int d=523;
      const int re=578;
      const int mi=659;
      const int fa=698;
      const int so=784;
      const int la=880;
      const int si=988;
      const int do1=1046;
      const int re1=1175;
      const int  mi1=1318;
      const int  fa1=1480;
      const int  so1=1568;
      const int  la1=1760;
      const int  si1=1976;
    const int sqdo=277;
      const int  sqre=311;
      const int  sqfa=370;
      const int  sqso=415;
      const int  sqla=466;
      const int  sdo=554;
      const int  sre=622;
      const int  sfa=740;
      const int  sso=831;
      const int  sla=932;
      const int  sdol=1046;
      const int  sre1=1245;
      const int  sfa1=1480;
      const int  sso1=1661;
      const int  sla1=1865;
      int pai=400,ban=200;
    int ting=128;
    Sleep(1000);
    Beep(la,ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai+ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(si,3*pai);
    Sleep(ting);
    Beep(mi,ban);
    Beep(mi,ban);
    Beep(la,ban+pai);
    Beep(so,ban);
    Sleep(ting);
    Beep(la,pai);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(so,2*pai);
    Sleep(ting);
    Sleep(pai);
    Beep(mi,ban);
    Sleep(ting/2);
    Beep(mi,ban);
    Sleep(ting/2);
    Beep(fa,pai+ban);
    Beep(mi,ban);
    Sleep(ting);
    Beep(fa,ban);
    Beep(do1,ban+pai);
    Sleep(ting);
    Beep(mi,2*pai);
    Sleep(ting);
    Sleep(ban);
    Beep(do1,ban);
    Sleep(ting/2);
    Beep(do1,ban);
    Sleep(ting/2);
    Beep(do1,ban);
    Sleep(ting/2);
    Beep(si,ban+pai);
    Beep(sfa,ban);
    Sleep(ting);
    Beep(sfa,pai);
    Beep(si,pai);
    Sleep(ting);
    Beep(si,2*pai);
    Sleep(ting);
    Sleep(pai);
    Beep(la,ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai+ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(si,2*pai);
    Sleep(ting);
    Sleep(pai);
    Beep(mi,ban);
    Sleep(20);
    Beep(mi,ban);
    Sleep(ting);
    Beep(la,pai+ban);
    Beep(so,ban);
    Sleep(ting);
    Beep(la,pai);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(so,3*pai);
    Sleep(ting+ban);
    Beep(mi,ban);
    Sleep(ting/2);
    Beep(fa,pai);
    Sleep(ting);
    Beep(do1,ban);
    Beep(si,ban);
    Sleep(20);
    Beep(si,pai);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(re1,ban);
    Sleep(20);
    Beep(re1,ban);
    Sleep(20);
    Beep(mi1,ban);
    Sleep(ting/2);
    Beep(do1,pai);
    Sleep(ting+pai);
    Beep(do1,pai);
    Beep(si,ban);
    Sleep(ting);
    Beep(la,ban);
    Sleep(20);
    Beep(la,ban);
    Sleep(ting);
    Beep(si,pai);
    Sleep(ting);
    Beep(sso,pai);
    Sleep(ting);
    Beep(sso,2*pai);
    Sleep(ting+pai);
    Beep(do1,ban);
    Beep(re1,ban);
    Sleep(ting);
    Beep(mi1,pai+ban);
    Beep(re1,ban);
    Sleep(ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(fa1,pai);
    Sleep(ting);
    Beep(re1,2*pai);
    Sleep(pai+ting);
    Beep(so,ban);
    Sleep(20);
    Beep(so,ban);
    Sleep(ting);
    Beep(do1,ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(mi1,2*pai);
    Sleep(ting+2*pai);
    Beep(la,ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(si,pai);
    Sleep(ting);
    Beep(re1,ban);
    Sleep(20);
    Beep(re1,ban);
    Sleep(ting);
    Beep(do1,pai+ban);
    Beep(so,ban);
    Sleep(20);
    Beep(so,pai);
    Sleep(pai+ting);
    Beep(fa1,pai);
    Sleep(ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(re1,pai);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(mi1,4*pai);
    Beep(mi1,pai*2);
    Sleep(pai+ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(la1,2*pai);
    Sleep(ting);
    Beep(so1,pai);
    Sleep(ting);
    Beep(so1,pai);
    Sleep(ting);
    Beep(mi1,ban);
    Sleep(ting/2);
    Beep(re1,ban);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting+ban);
    Beep(do1,ban);
    Sleep(ting);
    Beep(re1,pai);
    Sleep(ting);
    Beep(do1,ban);
    Beep(re1,ban);
    Sleep(20);
    Beep(re1,ban);
    Sleep(ting);
    Beep(so1,pai);
    Sleep(ting);
    Beep(mi1,2*pai);
    Sleep(ting+pai);
    Beep(mi,pai);
    Sleep(ting);
    Beep(la1,2*pai);
    Sleep(ting);
    Beep(so1,2*pai);
    Sleep(ting);
    Beep(mi1,ban);
    Beep(re1,ban);
    Sleep(ting);
    Beep(do1,2*pai);
    Sleep(ting+ban);
    Beep(do1,ban);
    Sleep(ting);
    Beep(re1,pai);
    Sleep(ting);
    Beep(do1,ban);
    Beep(re1,ban);
    Sleep(20);
    Beep(re1,ban);
    Sleep(ting);
    Beep(si,pai);
    Sleep(ting);
    Beep(la,2*pai);
    Sleep(ting);
    Beep(la,ban);
    Beep(si,ban);
    Beep(do1,pai+ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(si,3*pai);
    Sleep(ting);
    Beep(mi,ban);
    Beep(mi,ban);
    Beep(la,ban+pai);
    Beep(so,ban);
    Sleep(ting);
    Beep(la,pai);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(so,2*pai);
    Sleep(ting);
    Sleep(pai);
    Beep(mi,ban);
    Sleep(ting/2);
    Beep(mi,ban);
    Sleep(ting/2);
    Beep(fa,pai+ban);
    Beep(mi,ban);
    Sleep(ting);
    Beep(fa,ban);
    Beep(do1,ban+pai);
    Sleep(ting);
    Beep(mi,2*pai);
    Sleep(ting);
    Sleep(ban);
    Beep(do1,ban);
    Sleep(ting/2);
    Beep(do1,ban);
    Sleep(ting/2);
    Beep(do1,ban);
    Sleep(ting/2);
    Beep(si,ban+pai);
    Beep(sfa,ban);
    Sleep(ting);
    Beep(sfa,pai);
    Beep(si,pai);
    Sleep(ting);
    Beep(si,2*pai);
    Sleep(ting);
    Sleep(pai);
    Beep(la,ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai+ban);
    Beep(si,ban);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(mi1,pai);
    Sleep(ting);
    Beep(si,2*pai);
    Sleep(ting);
    Sleep(pai);
    Beep(mi,ban);
    Sleep(20);
    Beep(mi,ban);
    Sleep(ting);
    Beep(la,pai+ban);
    Beep(so,ban);
    Sleep(ting);
    Beep(la,pai);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(so,3*pai);
    Sleep(ting+ban);
    Beep(mi,ban);
    Sleep(ting/2);
    Beep(fa,pai);
    Sleep(ting);
    Beep(do1,ban);
    Beep(si,ban);
    Sleep(20);
    Beep(si,pai);
    Sleep(ting);
    Beep(do1,pai);
    Sleep(ting);
    Beep(re1,ban);
    Sleep(20);
    Beep(re1,ban);
    Sleep(20);
    Beep(mi1,ban);
    Sleep(ting/2);
    Beep(do1,pai);
    Sleep(ting+pai);
    Beep(la,4*pai);
    Sleep(1000);
}
int mian(){
  Tiansing();
  return 0;
}
 番外:
#include <stdio.h>
int main()
{
int n;
int b=20;
for(n=0;n<21;n++)
{
printf("\a\a");
printf("%d",b-n);
}
getchar();
return 0;
}

Question:


       书上说\a这个字符可以使电脑发出声音,试了下果然,大约是是1秒钟滴2下,然后我就编了个类似于倒计时的小程序,但发现这根本行不通,数字刷一下出来完了,声音还是一下一下响(估计这个响的声音与输出bel字符是不相符的),而且程序老崩溃。请问这是怎么回事啊?怎么才能做到,响两声后,在输出b的值呢?


Reply:


       你是想声音和数字都慢慢的出来吗?你的程序太短小,在一瞬间就执行完了,其实声音可能响了20下,但是是在一瞬间同时发出来的,你分辨不出来而已。可以包含windows头文件,调用sleep函数延迟发声和打印,就可以出现有节奏的效果。一次发声只需要打印一个'\a'就可以了。


#include <stdio.h>
#include<windows.h>    // 包含windows头文件
int main()
{
    int n;
    int b=20;
    for(n=0;n<21;n++)
    {
相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
19天前
|
存储 编译器 程序员
C语言调试大作战:与VS编译器共舞,上演一场“捉虫记”的艺术与科学
C语言调试大作战:与VS编译器共舞,上演一场“捉虫记”的艺术与科学
|
19天前
|
安全 程序员 编译器
前言:穿越迷雾,探索C语言指针的奇幻之旅
前言:穿越迷雾,探索C语言指针的奇幻之旅
|
19天前
|
存储 关系型数据库 MySQL
C语言/C++雷霆战机代码(终极版)
C语言/C++雷霆战机代码(终极版)
|
19天前
|
存储 关系型数据库 MySQL
经典C语言/C++项目,雷霆战机
经典C语言/C++项目,雷霆战机
|
7月前
|
算法 编译器 程序员
【C语言航路】第三站:函数(二)
【C语言航路】第三站:函数(二)
38 0
|
7月前
|
程序员 C语言 C++
【C语言航路】第三站:函数(一)
【C语言航路】第三站:函数(一)
53 0
|
8月前
|
XML 算法 Java
|
12月前
|
C语言
【C语言—零基础第九课】函数中的爱恨情仇
我们举个例子,你现在是老板你要求你的秘书去完成一项任务你可以给他说让他去做某一项任务,也可以不给他说让他去做某一项任务(暗示他)当然你得是老板。只要你是老板你就可以无限次的让秘书去做某一项任务,并且他没有怨言。
35 0
|
程序员 C语言
C语言 圣诞树(程序员的浪漫)
C语言 圣诞树(程序员的浪漫)
85 0
C语言 圣诞树(程序员的浪漫)
|
程序员 C语言
C语言 画心形 程序员的简单浪漫
C语言 画心形 程序员的简单浪漫
103 0
C语言 画心形 程序员的简单浪漫