`

D语言版趣味程序 1.绘制余弦曲线

阅读更多

D语言版趣味程序 1.绘制余弦曲线

 

(说明:原文见http://www.kuqin.com/tiku/c100/,是C语言版。本人改写成D-tango版。与各位D初学者共勉。)

 

问题:

在屏幕上用“*”显示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)的对应关系。
使用这种方法编出的程序短小精炼,体现了一定的技巧。

 

import tango.io.Console,tango.math.Math;
import tango.stdc.stdlib;

int main()
{
    real y,m;
    long x;
    for(y=1;y>=-1;y-=0.1) /*y为列方向,值从1到-1,步长为0.1*/
        {
        m=acos(y)*10.0; /*计算出y对应的弧度m,乘以10为图形放大倍数*/

        for(x=1;x<m;x++)
        Cout(" ")();
        Cout("*").flush; /*控制打印左侧的 * 号*/

        for(;x<55-m;x++)
        Cout(" ").flush;
        Cout("*").newline; /*控制打印同一行中对称的右侧*号*/
        }

        system("pause");//程序执行后显示“按任意键继续”,以便观察

    return 0;
}

  

 

 

 

分享到:
评论
2 楼 ideage 2009-04-08  


有技巧.呵呵
1 楼 DavidL 2009-04-08  
不错,属于算法类的咚咚

相关推荐

    C/C++语言经典实用趣味程序设计编程百例精解

    网上找的,《C/C++语言经典实用趣味程序设计编程百例精解》 这是完整的,直到最后一例:100.数字移动 大家看着下不下吧。 前10例内容如下: 1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 ...

    C趣味程序100道

    绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 7.阶乘尾数零的个数 8.借书方案知多少 9.杨辉三角形 10.数制转换 11.打鱼还是晒网 12.抓交通肇事犯 ...

    c与c++语言经典、实用、趣味程序设计编程

    1.绘制余弦曲线 在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线 …… 11.打鱼还是晒网 中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼...

    C-C++语言程序百例

    C-C++语言程序百例 1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 。。。。。。。。。。

    经典实用趣味程序设计编程百例精解.doc(100个实例)

    1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 7.阶乘尾数零的个数 8.借书方案知多少 9.杨辉三角形 10.数制转换 11.打鱼还是晒网 12.抓交通肇事犯 13.该存...

    C趣味程序百例

    1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 7.阶乘尾数零的个数 8.借书方案知多少 9.杨辉三角形 10.数制转换

    C/C++经典实用趣味程序设计编程例子精解(DOC)

    绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 7.阶乘尾数零的个数 8.借书方案知多少 9.杨辉三角形 10.数值转换 11.打鱼还是晒网 ...

    C语言编写的六个趣味问题的程序,包括: 075 绘制余弦曲线和直线的迭加 076 计算高次方数的尾数 077 打鱼还是

    C语言编写的六个趣味问题的程序,包括: 075 绘制余弦曲线和直线的迭加 076 计算高次方数的尾数 077 打鱼还是晒网 078 怎样存钱以获取最大利息 079 阿姆斯特朗数 080 亲密数

    C++趣味程序设计编程百例精解

    1.绘制余弦曲线 3 2.绘制余弦曲线和直线 4 3.绘制圆 5 4.歌星大奖赛 5 5.求最大数 6 6.高次方数的尾数 7 7.阶乘尾数零的个数 8 8.借书方案知多少 9 9.杨辉三角形 9 10.数制转换 11

    C语言趣味程序设计编程百例精解.pdf

    C/C++语言经典、实用、趣味程序设计编程百例精解(1)2007 年06 月19 日 星期二 00:451. 绘制余弦曲线 在屏幕上用“*”显示0~360 度的余弦函数cos(x)曲线

    百味编程趣味编程百例

    C/C++语言经典实用趣味程序设计编程百例精解(1) (详解收藏在)http://www.klfd.net.cn/?p=384 1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 7.阶乘尾数零的个数 ...

    CC++语言程序百例.rar

    1.绘制余弦曲线 在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线 *问题分析与算法设计 如果在程序中使用数组,这个问题十分简单。但若规定不能使用数组,问题就变得不容易了。 关键在于余弦曲线在0~360度的区间内...

    C-C++语言趣味程序设计编程百例精解

    绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 7.阶乘尾数零的个数 8.借书方案知多少 9.杨辉三角形 10.数制转换 &lt;br&gt;C/C++语言...

    C程序百列破解C趣味题目

    趣味程序百列所有题目来自趣味百列 1 绘制余弦曲线 2绘制圆 3歌星大赛

    c++趣味程序

    c++趣味程序,TXT文档,里面包含绘制余弦曲线,圆等例子,非常适合初学者练手。

    C++语言经典、实用、趣味程序设计编程百例精解

    2. 绘制余弦曲线和直线 *问题分析与算法设计 本题可以在上题的基础上进行修改。图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。为此,可以先判断图形的交点,再分别...

    220个C语言程序源代码集合.zip

    075 绘制余弦曲线和直线的迭加 076 计算高次方数的尾数 077 打鱼还是晒网 078 怎样存钱以获取最大利息 079 阿姆斯特朗数 080 亲密数 081 自守数 082 具有abcd=(ab+cd)2性质的数 083 验证歌德巴赫猜想 084 ...

Global site tag (gtag.js) - Google Analytics