经典算法100道(1)-绘制余弦曲线

来源:互联网 发布:利用软件漏洞赚钱 编辑:程序博客网 时间:2024/06/05 08:14

题目:在屏幕上用“*”显示“0~360”的余弦cos(x)曲线。

 

问题分析和算法设计:

    在0~360度中,一行显示两个点,而在一般的显示器中只能按行输出,即先显示一行在显示另一行,不能再返回到上一行输出。为此,我们必须在一行中同时显示两个“*”。

    要同时一行打印两个点,需要利用到cos(x)的左右对称性质。将屏幕的行方向定义为x列方向定义为y,则0~180度的图形和180~360度的图形是左右对称的。若定义图形的总宽度为62列,计算出x行0~180度时y点的坐标m,那么在同一行与之对此的180~360度的y点的坐标就应该为62-m。程序中利用反余弦函数计算坐标(x,y)的对应关系。

 

以下是本人编写的程序:

 

// 100(1)余弦曲线.cpp : Defines the entry point for the console application.
/*
利用余弦的反函数来实现x轴的打印,利用y的区间(-1,1)的值域来实现y轴的打印。
在同一x轴上使用对称的特点,使用x轴有*号和没有*号的分开打印。在一个for循环中实现。
*/

#include "stdafx.h"
#include<stdio.h>
#include<math.h>

int main(int argc, char* argv[])
{
 double y;
 int x,m;
 for(y=1;y>=-1;y-=0.1)
 {
  m=acos(y)*10;
  for(x=0;x<=64;x++)
  {
   if(x==m||x==(64-m))
    printf(" * ");
   else
    printf(" ");
  }
  printf("/n");
 }
 return 0;

 

下面是运行的结果:


}

原创粉丝点击