`

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++语言经典、实用、趣味程序设计编程

    C/C++语言经典、实用、趣味程序设计编程的特点是使用C/C++语言设计和实现经典、实用、趣味的程序,涵盖了多个领域,例如绘制余弦曲线、绘制余弦曲线和直线、绘制圆等。这些程序设计编程不仅可以帮助学习者掌握C/C++...

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

    ### C++语言经典实用趣味程序设计编程百例精解 #### 1. 绘制余弦曲线 **知识点概述:** 本例通过C++程序在命令行界面中绘制0到360度之间的余弦曲线。为了实现这一目标,程序采用了一些巧妙的方法来克服输出限制。...

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

    1. 绘制余弦曲线 此例展示了如何在控制台上用星号(*)来绘制0到360度的余弦曲线。关键在于利用余弦函数的左右对称性。程序通过反余弦函数acos计算坐标,然后通过两个for循环分别处理0到180度和180到360度的点。这个...

    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趣味程序百例Word版

    1. 绘制余弦曲线 在C语言中,我们可以利用数学库中的`cos()`函数和`acos()`函数来计算余弦曲线。余弦曲线在0~360度的区间内具有左右对称性,因此我们可以通过计算0~180度的点,然后推导出对称的180~360度的点。程序...

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

    1. 绘制余弦曲线 这个例子展示了如何在终端上用星号(*)模拟0到360度的余弦曲线。在不使用数组的情况下,程序员巧妙地利用了余弦函数的对称性。程序首先定义了屏幕的行(x)和列(y)方向,然后通过反余弦函数acos计算...

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

    1. 绘制余弦曲线 这个例子展示了如何在命令行界面用“*”字符绘制余弦曲线。通过使用反余弦函数`acos()`,我们可以找到对应的弧度,并基于屏幕宽度调整输出。在不使用数组的情况下,程序通过计算余弦函数的左右对称...

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

    1. 程序设计:本文讲解了多个程序设计的例子,包括绘制余弦曲线、绘制余弦曲线和直线的迭加图形、绘制圆等。 2. 算法设计:本文讨论了多个算法设计的思路和方法,包括使用数学函数 acos 和 printf 函数来实现图形的...

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

    《C语言经典实用趣味程序设计编程百例精解》中的第一个例子便是绘制余弦曲线,这不仅考验了编程者的逻辑思维,同时也涉及到了数学知识的应用。 **问题分析与算法设计** 绘制余弦曲线的关键在于理解余弦函数的周期...

    百味编程趣味编程百例

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

    C语言趣味程序百例C语言趣味程序百例.doc

    1. **绘制余弦曲线**: - 使用C语言的`&lt;stdio.h&gt;`和`&lt;math.h&gt;`库,`&lt;math.h&gt;`库提供了数学函数如`acos`(反余弦函数)。 - 利用余弦函数的左右对称性,以行x和列y定义屏幕坐标,0~180度的余弦曲线与180~360度的...

    C/C++语言经典、实用、趣味设计教程精例

    1. 绘制余弦曲线: - 余弦曲线通常用数学公式`cos(x)`表示,其中`x`是角度。在0至360度的范围内,余弦值的变化范围是-1到1。 - 在不使用数组的情况下,通过循环和计算来逐点输出图形。这里利用了余弦函数的左右...

    CC++语言程序百例.rar

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

    c趣味百例 doc格式

    1. 绘制余弦曲线: 在这个例子中,我们使用C语言来在屏幕上用“*”字符表示0到360度的余弦函数cos(x)曲线。关键在于利用余弦函数的左右对称性,不使用数组的情况下,一次输出一行中的两个点。程序通过计算每一行...

Global site tag (gtag.js) - Google Analytics