大家好,欢迎来到IT知识分享网。
名人说:莫愁千里路,自有到来风。 ——钱珝
创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)
本篇内容简介:一、概念说明-->二、问题呈现-->三、源码实现(+注释)-->四、输出结果展示-->五、简要解释
一、概念说明
1.1余弦曲线的定义
余弦曲线一般指余弦波。 余弦曲线或余弦波(cosinwave)是一种来自数学三角函数中的正弦比例的曲线。也是模拟信号的代表,与代表数字信号的方波相对。
1.2简单补充说明
余弦曲线的形状就像完美的海上波浪般,以三角函数余弦比例改变而形成。
标准的纯余弦函数公式为:
1.3余弦曲线图样
二、问题呈现
Problem Description:
在屏幕上用字符“*”显示0°~360°的余弦函数cos(x)曲线。
Input
无
Output
用字符“*”显示的0°~360°的余弦函数cos(x)曲线
Sample Input
无
Sample Output
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
三、源码实现(+注释)
#include<stdio.h> #include<math.h> int main(){
double y;//y为列方向 int x,m;//定义两个整形变量 x为行(横)方向,m代表弧度 //y为列方向,值从1到-1,步长为0.1 for(y=1;y>=-1;y-=0.1) {
//计算出y对应的弧度m,10为图形放大的倍数 m = acos(y)*10; //控制打印左侧的*号 for(x=1;x<m;x++) printf(" "); printf("*"); //控制打印同一行中对称的右侧*号 for(;x<62-m;x++) printf(" "); printf("*\n"); } return 0; }
四、输出结果展示
4.1输出结果
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** -------------------------------- Process exited after 0.2912 seconds with return value 0 请按任意键继续. . .
4.2输出结果(图示版)
五、简要解释
5.1解题关键
关键在于余弦曲线在0°~360°的区间内。
注释:在这区间内意味着什么呢?一行中要显示两个点,而对一般的显示器来说, 只能按行输出,即:输出第一行信息后,向下一行输出,不可再到上一行。因此为了满足本题要求的图形,就必须在一行中一次顺序输出两个字符“ * ”,这样才能在一行中显示两个点。
5.2细节理解
- 为了得到余弦函数cos(x)图形在一行上的两个点,同时要考虑利用cos(x)的左右对称性。将屏幕的行方向定义为 x、列方向定义为 y,则 0°~180°的图形与 180°~ 360°的图形是左右对称的。
- 定义图形的总宽度为62列,计算出x行0°~180°时y点的坐标m,那么在同一行与之对称的180°…360°的y点的坐标就应为62-m。程序中利用反余弦函数(arccos)acos计算坐标(x,y)的对应关系。
-
附: math.h头文件中声明了常用的一些数学运算,比如乘方,开方运算等等。
acos定义在math数学函数库(math.h)。
5.3小提示
用这种方法编出的程序可能看起来比较精简,但是需要一定的技巧在里面。自然,方法不止这一种,也可以采用数组去实现,借助数组可能会更简单一些。
很感谢你能看到这里,如有相关疑问,还请下方评论留言。
Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)
希望本篇内容能对大家有所帮助,如果大家喜欢的话,请动动手点个赞和关注吧,非常感谢你们的支持!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/135281.html