挺有意思的問題,簡單談一下看法
公司主營業(yè)務(wù):網(wǎng)站制作、成都做網(wǎng)站、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出肅州免費(fèi)做網(wǎng)站回饋大家。
將你的需求分成兩部分,一是讓程序自行解析用戶輸入的函數(shù)解析式,二是繪制函數(shù)圖像。
首先,關(guān)于第一個(gè)功能,最直接的思路就是字符串解析,按照數(shù)學(xué)知識(shí)定義不同的運(yùn)算符號(hào),按照使用習(xí)慣定義常用的變量和常量的符號(hào)字母,然后據(jù)此規(guī)則解析輸入的字符串,再根據(jù)解析結(jié)果確定函數(shù)中基本運(yùn)算的次數(shù)及運(yùn)算順序,最后將整個(gè)操作流程以一定形式存儲(chǔ)起來即可。
例如,對(duì)于y=log(x^2+x),包含三次基本運(yùn)算,第一步是x^2,第二步是上一步的結(jié)果+x,第三步是上一步的結(jié)果求對(duì)數(shù)。注意到log有定義域的限制,這也是要在程序中實(shí)現(xiàn)的。
然后,對(duì)于第二個(gè)功能,根據(jù)給定函數(shù)繪制圖像并不難,對(duì)于一元和二元函數(shù)來說很容易實(shí)現(xiàn),難點(diǎn)在于多元函數(shù)應(yīng)如何繪制直觀易懂的函數(shù)圖像?不過這一點(diǎn)超出編程語言的范疇了,而且二元函數(shù)可以滿足大部分應(yīng)用場(chǎng)景了。
繪制函數(shù)圖像的程序只需在定義域上按指定的步長求出不同自變量對(duì)應(yīng)的函數(shù)值,然后將點(diǎn)連成線,即可繪制出函數(shù)圖像。例如對(duì)于logx,定義域?yàn)閤0。假設(shè)步長為0.1,則可求出0.1,0.2,0.3,...,99.9,100.0的函數(shù)值,然后繪制出點(diǎn),再連點(diǎn)成線,即可得到函數(shù)圖像。
另外,這里還有很多細(xì)節(jié)沒有討論,例如輸入數(shù)據(jù)是字符串還是圖像;是否可以用其他方法解析輸入,例如神經(jīng)網(wǎng)絡(luò)。這些就很復(fù)雜了,不再深入。
回答中可能有考慮不周的地方,希望上述內(nèi)容對(duì)你有參考意義
函數(shù)原型:double
log(double
x);
double
log10(double
x);
例子:void
main(
void
)
{
double
x
=
9000.0;
double
y;
y
=
log(
x
);
printf(
"log(
%.2f
)
=
%f\n",
x,
y
);
y
=
log10(
x
);
printf(
"log10(
%.2f
)
=
%f\n",
x,
y
);
}輸出結(jié)果如下:log(
9000.00
)
=
9.104980
log10(
9000.00
)
=
3.954243謝謝采納
1、C語言中,有兩個(gè)log函數(shù),分別為log10和log函數(shù),具體用法如下:
2、函數(shù)名: log10
功 能: 對(duì)數(shù)函數(shù)log,以10為底
用 法: double log10(double x);
程序示例:
#include math.h
#include stdio.hint main(void)
{
double result;
double x = 800.6872;
result = log10(x);
printf("The common log of %lf is %lf\n", x, result);
return 0;
}
3、函數(shù)名: log
功 能: 對(duì)數(shù)函數(shù)log,以e(2.71828)為底
用 法: double log(double x);
程序示例:
#include math.h
#include stdio.hint main(void)
{
double result;
double x = 800.6872;
result = log(x);
printf("The common log of %lf is %lf\n", x, result);
return 0;
}
lz需要弄清楚,你要輸出什么格式的圖像,bmp,JPG。。。不同格式的圖像的數(shù)據(jù)內(nèi)部結(jié)構(gòu)是不一樣的,弄清楚不同格式圖片的數(shù)據(jù)結(jié)構(gòu)組成,直接采用相應(yīng)地算法,用C語言文件輸出函數(shù)(fopen,fprintf……那幾個(gè)函數(shù),具體我也忘了怎么用了)將數(shù)據(jù)點(diǎn)寫入文件就行了。