Está en la página 1de 2

#include <iostream>

#include <math.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
double fRT (int i )
{
double res;
res= pow (2, i/12.);
return res;
}
void racionalAproximado (double frecuencia, int& n , int&d)
{
n=(int) (frecuencia);
d=1;
while ((fabs((n*1.0)/d/frecuencia - 1)>= 0.01) && (n<=((int) (frecuencia)*100)) )
{
d=1;
while (( fabs((n*1.0)/d/frecuencia - 1)>= 0.01) && d<100 )
{
d++ ;
}
if (( fabs((n*1.0)/d/frecuencia - 1)< 0.01) && d<100)
;
else n++;
}
if (n>((int) (frecuencia)*100))
{
n=-1;
d=1;
}
}
void frecuencias (int i, int &n, int&d, float& fRA, float&fA, float&fT )
{
int nla, dla;
float fdo, fdodiat;
fdo= 440/fRT(9);

racionalAproximado(fRT(9), nla, dla);


fdodiat=440.*dla/nla;
racionalAproximado (fRT(i), n, d);
fRA=n/(d+0.0);
fA= fdodiat* n/d;
fT= fdo* fRT(i);
}
int main ()
{
float frecuencia;
int n, d, i;
float fRA, fA, fT;
cout<< "Nota" << " " << "fT <Hz>" << "
"fRA"<< endl;
for (i=0; i<=12; i++)
{
frecuencias ( i, n, d, fRA, fA, fT);
cout << i << "
fRA << endl;
}
return 0;
}

"<< fT << "

"<< "fA <Hz>" << "

" << fA << "

" << fRT(i) << "

"<< "fRT"<< "

" <<

" << n<<"/"<<d << "=" <<

También podría gustarte