C语言程序设计问题,大神进,高分悬赏。。。。初等函数曲线图形的简易绘制 150

初等函数曲线图形的简易绘制:设屏幕显示文本是25行,80列,可以用“+”和“——〉”号画坐标系,用“*”号画曲线上的点,给出初等函数,例如cos(x),ex,x3-3x+... 初等函数曲线图形的简易绘制:设屏幕显示文本是25行,80列,可以用“+”和“——〉”号画坐标系,用“*”号画曲线上的点,给出初等函数,例如cos(x),ex,x3-3x+1,等等,还要给出x的一个估计的范围,程序就画出这个初等函数的简易图形。
提示:按照屏幕行列数,例如25行84列,可以让屏幕对应一个25*84的矩阵,函数图形的计算结果先存入矩阵,再打印出来。//按25行80列可用安排。
别只有代码,大概写一下思路,谢谢了,大一的程序设计。
展开
 我来答
李磊_1
2013-04-23 · TA获得超过299个赞
知道小有建树答主
回答量:337
采纳率:66%
帮助的人:120万
展开全部
可以做一个二维[整形或char类型]数组,行列分别是屏幕的行列数,然后,通过计算在修改对应位置元素的值就可以,然后将数组元素打印出来(这里以char类型为例):

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

#define ROW 25
#define COL 84
char table[ROW][COL];

void initTable()
{
for(int i = 0; i < ROW; i++)
{
for(int j = 0; j < COL; j++)
{
table[i][j] = ' ';
}
}
}

int main(int argc, char*argv[])
{
// 这里以求cos(x) 为例

// 因为行列数为整形,所以这里对所求结果向下取整
// 这里以第20行为横坐标位置

// 先绘制x,y坐标
for(int row = 0; row < ROW; row++)
{
table[row][0] = '|';
}
table[20][0] = '+';
for(int col = 1; col < COL; col++)
{
table[20][col] = '-';
}
table[0][0] = '^';
table[20][COL - 1] = '>';

// 这里随x计算cos的值,并将对应的坐标处的字符替换为'*';

for(int x = 0; x < COL - 1; x++)
{
table[5 * ((int)(cos(x)))][x] = '*';
}

// 接下来就是逐行输出了
for(int i = 0; i < ROW; i++)
{
for(int j = 0; j < COL; j++)
{
printf("%c", table[i][j]);

}
}
system("pause");
}
更多追问追答
追问
能不能达到输入一个函数它就能打出图像的效果
追答
你是要做解析吗?如果是,那么对于每一个函数你都要建立一个对应的分支,比如你可以添加一个解析命令的函数:
// 别忘了包含进math.h

// 声明指向函数的指针指针类型,desVal是指向要修改变量的指针,x是x值。

typedef void (*cmd)(doubl x);

// 本函数会返回一个指向依照命令解析出来的函数的指针, command是命令,注意是函数名,不是调用语句,否则会出错。

cmd getCmd(char* command)
{
// 传递过来的字符串分别和各个支持的函数名称做比较,相等返回对应的函数指针。如果没有匹配的函数,则返回NULL。

if(strcmp(command, “sin”) == 0)
return (cmd)sin;
else if(strcmp(command, "cos") == 0)
return (cmd)cos;
else if(strcmp(command, "pow"))
return (cmd)pow;
else
return (cmd)NULL;
}

然后将上次回答的代码中的sin函数换成cmd类型的变量,执行时传入你输入的命令,获取到对应函数的指针,然后后面的代码几乎不用修改,因为函数指针的调用和直接调用函数可以认为是相同的。
魔龙嗜血
2013-05-04 · TA获得超过1116个赞
知道小有建树答主
回答量:1033
采纳率:100%
帮助的人:514万
展开全部
这个很简单的。你慢慢的理清思路就会做了。我发给你程序。里面有注解。相信你会明白的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式