今天來學習一個小小的實例,使用C語言實現在屏幕上用“*”顯示0-360度的余弦函數cos(x)曲線。
模擬法:
#include <stdio.h>
#include <math.h>
int main(void)
...{
double i ;
int j,k;
for(i=1.0 ; i>=-0.4 ; i -=0.1)
...{
j = (int)(acos(i)*10) ;
for(k=0 ; k< j ; k++)
printf(" ");
printf("*");
for(; k < 62-j ; k++)
printf(" ");
printf("* ");
}
printf("the acos: ");
for(i=1.0 ; i>= -1.0 ; i-=0.1)
printf("%f->%f ",i,acos(i));
system("pause");
return 0 ;
}
利用余弦函數的特性(對稱性)
#include <stdio.h>
#include <math.h>
int main(void)
...{
double i,k ;
int j ;
for(i=1.0 ; i>= -1.0 ; i-= 0.1 )
...{
k = (int)(acos(i)*10) ;
for(j=0 ; j<62 ; j++)
...{
if ( j == k || j == 62 - k)
printf("*");
else
printf(" ");
}
printf(" ");
}
system("pause");
return 0 ;
}
NO.2
2.繪制正弦曲線
在屏幕上用“*”顯示0-360度的余弦函數sin(x)曲線。
1.
/*
sin() line.
62 of line width
*/
#include <stdio.h>
#include <math.h>
int main(void)
...{
int j ,k,d,h;
double i ;
for(i=1.0 ; i> 0.0; i-=0.1)
...{
k = (int)(asin(i)*10) ;
for(j=0; j< k ; j++) /**//*print the left */
printf(" ");
printf("*");
for( ; j< 31-k ; j++)
printf(" ");
printf("* ");
}
for(i=0.0 ; i>= -1.0 ; i-= 0.1)
...{
k = (int)(asin(i)*10) ;
for(j=0; j< k+33; j++)
printf(" ");
printf("*");
for(; j< 62 - k ; j++)
printf(" ");
printf("* ");
}
for(i=1.0 ; i>=-1.0 ; i-=0.1)
printf("%lf->%lf ",i,asin(i)) ;
system("pause");
return 0 ;
}
2.
#include <stdio.h>
#include <math.h>
int main(void)
...{
int j,k ;
double i ;
for(i=1.0 ; i>= -1.0 ; i -= 0.1)
...{
k = (int)(asin(i)*10);
printf("k=%d ",k);
for(j= 0 ; j<= 62 ; j++)
if ( j == k || j == 62 + k || j == 31-k ) /**//*利用對稱性和周期性求解*/
printf("*");
else
printf(" ");
printf(" ");
}
system("pause");
return 0 ;
}