Code_流苏 2022-01-15 22:29:28 115 收藏 2
版权
趣味 C 语言系列
同时被 2 个专栏收录
6 篇文章 0 订阅
订阅专栏
C/C++ 语言入门学习(精讲系列)
39 篇文章 9 订阅
订阅专栏
趣味 C 语言系列 01-- 绘制余弦曲线
前言: 一起来感受编程之美吧!
本篇内容简介: 一, 概念说明 -->二, 问题呈现 -->三, 源码实现 (+ 注释)--> 四, 输出结果展示 -->五, 简要解释
C 语言趣味系列计划: 目的: 巩固练习 C 语言, 增强上机, 动手实践能力, 交流学习! 然后既然是趣味系列, 自然是为了增加编程的趣味性, 感受编程之美!
C Programming Language
趣味 C 语言系列 01-- 绘制余弦曲线
一, 概念说明
1.1 余弦曲线的定义
1.2 简单补充说明
1.3 余弦曲线图样
二, 问题呈现
三, 源码实现(+ 注释)
四, 输出结果展示
4.1 输出结果
4.2 输出结果(图示版)
五, 简要解释
5.1 解题关键
5.2 细节理解
5.3 小提示
一, 概念说明
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) 的对应关系.
acos 定义在 math 数学函数库(math.h).
附: math.h 头文件中声明了常用的一些数学运算, 比如乘方, 开方运算等等.
5.3 小提示
用这种方法编出的程序可能看起来比较精简, 但是需要一定的技巧在里面. 自然, 方法不止这一种, 也可以采用数组去实现, 借助数组可能会更简单一些.
作者: Code_流苏(一个喜欢古诗词和编程的 Coder)
★喜欢的话, 还请多多点赞与关注! 感谢支持!
C 语言趣味系列会穿插在 100 题练习计划的更新计划中, 提升编程能力的同时, 见证编程之美, 欢迎评论交流学习!
来源: https://blog.csdn.net/qq_51646682/article/details/122517112