首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

绘制余弦曲线中for(y=1;y>=-1;y-=0.1)//改成for(y=10;y>=1;y-=0.1)如何改

2012-04-09 
绘制余弦曲线中for(y1y-1y-0.1)//改成for(y10y1y-0.1)怎么改!1.绘制余弦曲线在屏幕上用“*”显

绘制余弦曲线中for(y=1;y>=-1;y-=0.1)//改成for(y=10;y>=1;y-=0.1)怎么改!
1.绘制余弦曲线 
在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线 
*问题分析与算法设计
如果在程序中使用数组,这个问题十分简单。但若规定不能使用数组,问题就变得不容易了。
关键在于余弦曲线在0~360度的区间内,一行中要显示两个点,而对一般的显示器来说,只能按行输出,即:输出第一行信息后,只能向下一行输出,不能再返回到上一行。为了获得本文要求的图形就必须在一行中一次输出两个“*”。
为了同时得到余弦函数cos(x)图形在一行上的两个点,考虑利用cos(x)的左右对称性。将屏幕的行方向定义为x,列方向定义为y,则0~180度的图形与180~360度的图形是左右对称的,若定义图形的总宽度为62列,计算出x行0~180度时y点的坐标m,那么在同一行与之对称的180~360度的y点的坐标就 应为62-m。程序中利用反余弦函数acos计算坐标(x,y)的对应关系。

C/C++ code
#include<stdio.h>#include<math.h>int main(){double y;int x,m;for(y=1;y>=-1;y-=0.1) /*y为列方向,值从1到-1,步长为0.1*/{m=acos(y)*10; /*计算出y对应的弧度m,乘以10为图形放大倍数*/for(x=1;x<m;x++) printf(" ");printf("*"); /*控制打印左侧的 * 号*/for(;x<62-m;x++)printf(" ");printf("*\n"); /*控制打印同一行中对称的右侧*号*/} return 0; }


[解决办法]
3.1415....
探讨
兀是多大的数?


引用:

任务: 用 * 在屏幕上绘出 [0, 2兀] 的 cos()的图像, 不能使用数组。

热点排行