C/C++编程:绘制余弦曲线与直线的趣味程序设计

5星 · 超过95%的资源 需积分: 13 26 下载量 44 浏览量 更新于2024-11-23 收藏 367KB DOC 举报
"C/C++语言经典、实用、趣味程序设计编程百例精解,包含绘制余弦曲线、实现图形迭加等编程实践" 在C/C++编程领域,理解和掌握基本的数据结构、算法以及图形绘制是非常重要的技能。本资料提供了一个经典实例——用“*”绘制0~360度的余弦曲线,这既是一个实用的编程练习,也具有一定的趣味性。下面我们将详细解析这个程序设计问题及其解决方案。 首先,我们分析问题和设计算法。在不使用数组的情况下,绘制余弦曲线的挑战在于如何在一行中一次输出两个点,因为通常情况下,显示器只能逐行输出。为了解决这个问题,我们可以利用余弦函数的左右对称性。将屏幕的行方向定义为x,列方向定义为y,0~180度和180~360度的图形是对称的。通过计算0~180度时y点的坐标m,可以得到同一行中对称的180~360度的y点坐标为62-m。程序中使用反余弦函数acos来计算弧度并将其放大以适应屏幕宽度。 以下为程序的说明和注释: ```c++ #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; } ``` 接下来是思考题,如何显示0~360度的正弦曲线,以及如何迭加余弦曲线和直线f(x)=45*(y-1)+31。绘制正弦曲线的方法类似,只是将余弦函数替换为正弦函数sin。至于迭加图形,我们需要先计算出两图形在同一行的交点,然后根据交点位置分别输出“*”和“+”,在交点处同时输出。 在实际编程中,这种问题解决方式展示了如何灵活运用数学知识和编程技巧来实现特定的图形效果。通过对这些实例的学习,程序员可以加深对C/C++语言的理解,提高编程能力和解决问题的能力。 此外,这个资料对于初学者来说,不仅可以提供编程实践的机会,还能帮助他们在学习过程中保持兴趣,从而更好地掌握C/C++编程。通过这样的练习,程序员可以逐步提升自己的编程思维,为解决更复杂的编程问题打下坚实的基础。
2008-07-21 上传
C/C++语言经典实用趣味程序设计编程百例精解C/C++语言经典实用趣味程序设计编程百例精解(1)1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 7.阶乘尾数零的个数 8.借书方案知多少 9.杨辉三角形 10.数制转换 C/C++语言经典实用趣味程序设计编程百例精解(2)11.打鱼还是晒网 12.抓交通肇事犯 13.该存多少钱 14.怎样存钱利最大 15.捕鱼和分鱼 16.出售金鱼 17.平分七筐鱼 18.有限5位数 19.8除不尽的自然数 20.一个奇异的三位数C/C++语言经典实用趣味程序设计编程百例精解(3)21.4位反序数 22.求车速 23.由两个平方三位数获得三个平方二位数 24.阿姆斯特朗数 25.完全数 26.亲密数 27.自守数 28.回文数 29.求具有abcd=(ab+cd)2性质的四位数 30.求素数 C/C++语言经典实用趣味程序设计编程百例精解(4)31.歌德巴赫猜想 32.可逆素数 33.回文素数 34.要发就发 35.素数幻方 36.百钱百鸡问题 37.爱因斯坦的数学题 38.换分币 39.年龄几何 40.三色球问题C/C++语言经典实用趣味程序设计编程百例精解(5)41.马克思手稿中的数学题 42.最大公约数和最小公倍数 43.分数比较 44.分数之和 45.将真分数分解为埃及分数 46.列出真分数序列 47.计算分数的精确值 48.新娘和新郞 49.委派任务 50.谁在说谎 C/C++语言经典实用趣味程序设计编程百例精解(6)51.谁是窃贼 52.黑与白 53.迷语博士的难题(1) 54.迷语博士的难题(2) 55.哪个大夫哪天值班 56.区分旅客国籍 57.谁家孩子跑最慢 58.拉丁方阵 59.填表格 60.1~9分成1:2:3的三个3位数 C/C++语言经典实用趣味程序设计编程百例精解(7)61.1~9组成三个3位的平方数 62.由8个整数形成奇特的立方体 63.减式还原 64.乘式还原 65.乘式还原(2) 66.除式还原(1) 67.除式还原(2) 68.九位累进可除数 69.魔术师的猜牌术(1) 70.魔术师的猜牌术(2) C/C++语言经典实用趣味程序设计编程百例精解(8)71.约瑟夫问题 72.邮票组合 73.和数能表示1~23的5个正整数 74.可称1~40磅的4块砝码 75.10个小孩分糖果 76.小明买书 77.波松瓦酒的分酒趣题 78.求π的近似值 79.求π的近似值(2) 80.奇数平方的一个有趣性质 C/C++语言经典实用趣味程序设计编程百例精解(9)81.角谷猜想 82.四方定理 83.卡布列克常数 84.尼科彻斯定理 85.回文数的形成 86.自动发牌 87.黑白子交换 88.常胜将军 89.抢30 90.搬山游戏 C/C++语言经典实用趣味程序设计编程百例精解(10)91.人机猜数游戏 92.人机猜数游戏(2) 93.汉诺塔 94.兎子产子 95.将阿拉伯数字转换为罗马数字 96.选美比赛 97.满足特异条件的数列 98.八皇后问题 99.超长正整数的加法 100.数字移动