音圧[Pa]を入力してください。:2(enter) 音圧レベルは100 dBです。 |
#include <math.h>
#include <stdio.h>
double ptod(double pa)
{
return ( 20 * log10(pa / 0.00002));
}
int main(void)
{
double pa;
printf("音圧[Pa]を入力してください。:"); scanf("%lf", &pa);
printf("音圧レベルは%.2f dBです。\n", ptod(pa));
return(0);
}
#include<stdio.h>
#include<math.h>
#define P 0.00002
main(){
double sp;
double spl;
printf("音圧[Pa]を入力して下さい:");
scanf("%lf", &sp);
spl = 20 * log10(sp/P);
printf("音圧レベルは%lf[dB]です。\n", spl);
return 0;
}
/* Pa→dB変換 */
#include <math.h>
#include <stdio.h>
double func(double pa){
double po;
double ans;
po = 2.0 * pow(10, -5);
ans = 20.0 * log10(pa / po);
return(ans);
}
int main(void){
double pa;
printf("音圧[Pa]を入力してください。:"); scanf("%lf", &pa);
printf("音圧レベルは%.3f[dB]です。\n", func(pa));
return(0);
}
#include<stdio.h>
#include<math.h>
double loga(double x)/* この関数はわざわざ自作する意味はないか(log()を呼んでいるだけなので) */
{
return(log(x));/* log()は自然対数(10ではなくてeを底とする対数)です。注意! */
}
int main()
{
double pa;
printf("音圧[Pa]を入力してください。:");scanf("%lf",&pa);
printf("音圧レベルは%6fdBです。\n",20*loga(pa/0.00002));
return(0);
}
音圧レベル[dB]を入力してください。:100(enter) 音圧は2 Paです。 |
#include<stdio.h>
#include<math.h>
#define P 0.00002
main(){
double sp;
double spl;
printf("音圧レベル[dB]を入力して下さい:");
scanf("%lf", &spl);
sp = P * pow(10,spl/20);
printf("音圧は%lf[Pa]です。\n", sp);
return 0;
}
#include <math.h>
#include <stdio.h>
double p(double db)
{
return (pow(10, db / 20));
}
int main(void)
{
double db;
printf("音圧レベル[dB]を入力してください。:"); scanf("%lf", &db);
printf("音圧は%.2fPaです。\n", 0.00002 * p(db));/* 小数点以下2桁までしか表示しないと,約40 dB以下が0.00 Paと表示されてしまいます。注意! */
/* ついでに . . .音響理論演習IIの復習 !
120 dBは,20 Pa
100 dBは,2 Pa
80 dBは,0.2 Pa
60 dBは,0.02 Pa
40 dBは,0.002 Pa
*/
return(0);
}
#include <stdio.h>
#include <math.h>
/* macro definition of constants */
#define RRR 8.314 /* 気体定数[J/mol K] */
#define AIR 28.91 /* 空気の分子量 */
#define GANMA 1.41 /* 空気の比熱比 */
#define ATM 101325 /* 1気圧[N/m2] */
#define KEL 273.15 /* 絶対温度 */
int main(void)
{
int t ;
double c, T, row, extc ;
for(t=-100; t<=100; t+=4){
c = 331.45 + 0.607*t ; /* 音速の近似式 */
T = (double)t + KEL ; /* 絶対温度 */
row = ATM*AIR / (RRR*T) * 1e-3 ; /* 空気の密度 */
extc = sqrt( GANMA*ATM / row ) ; /* 音速の厳密式 */
printf("温度:%3d 度 音速(近似):%7.2f m/s 音速(厳密):%7.2f m/s 誤差:%7.2f m/s\n", t, c, extc, c-extc) ;
}
return 0;
}
#include<math.h>
#include<stdio.h>
#define m 28.91 /* まず,物理定数をマクロ定義して... */
#define R 8.314
#define ganma 1.41
#define P 1013125
double c(double t) /* 音速の厳密値を計算する関数をここで定義している。 */
{
double row;
row = 0.001 * (P * m) / (R * t);
return( sqrt((ganma * P) / row));
}
int main(void)
{
short i;
double C, t;
for( i = 0; i <= 40; i += 2)
{
t = 0;
t = 273.15 + i;
C = 0; /* ここで0を代入する必要なないか(直後にc(t)を代入することになるので) */
C = c(t);
printf("温度%d[℃]の音速は%f[m/s]。\n",i, C);
}
return(0);
}