#include graphics.h#include conio.h int g_len; // Hilbert 曲線的單位長(zhǎng)度 // 遞歸繪制 Hilbert 曲線void hilbert(LPCTSTR cmd, int level){ static BYTE d = 0; // 方向 static POINT c[4] = {1, 0, 0, -1, -1, 0, 0, 1}; // 方向?qū)?yīng)的軸系數(shù) if (level 0) return; // 處理命令字符串 int i = 0; while(cmd[i]) { switch(cmd[i++]) { case '+': d = (d + 1) 3; break; case '-': d = (d - 1) 3; break; case 'X': hilbert("+YF-XFX-FY+", level - 1); break; case 'Y': hilbert("-XF+YFY+FX-", level - 1); break; case 'F': linerel(c[d].x * g_len, c[d].y * g_len); break; } }} // 主函數(shù)void main(){ // 設(shè)置繪圖環(huán)境 initgraph(800, 600); // 設(shè)置窗口大小 outtextxy(20, 550, "按 1~8 顯示不同級(jí)別的 Hilbert 曲線,按 ESC 退出。"); rectangle(143, 23, 657, 537); // 繪制表示范圍的矩形框 setorigin(144, 24); // 設(shè)置原點(diǎn)坐標(biāo) setcolor(RED); // 設(shè)置顏色 setfillstyle(BLACK); int level = '5'; // 設(shè)置初始級(jí)別 do { if (level = '1' level = '8') // 僅處理 1~8 { level -= '0'; // 轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字值 bar(0, 0, 511, 511); // 清空繪圖區(qū) g_len = 512 level; // 計(jì)算單位長(zhǎng)度 moveto(g_len / 2, 512 - g_len / 2); // 設(shè)定起點(diǎn) hilbert("X", level); // 遞歸繪制 Hilbert 曲線 } } while( (level = getch()) != 27 ); // 按 ESC 退出 closegraph();}
黎平網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
#include stdio.h
#include stdlib.h
#include math.h
int main()
{
float a,b,c;
float x1,x2,m;
printf("input number a=:");
scanf("%f",a);
printf("input number b=:");
scanf("%f",b);
printf("input number c=:");
scanf("%f",c);
m=b*b-4*a*c;
if(m=0a!=0){
if(m0){
x1=(-b+sqrt(m))/(2*a);
x2=(-b-sqrt(m))/(2*a);
printf("兩根\n");
printf("x1=%f\n",x1);
printf("x2=%f\n",x2);}
else
printf("一根\n");
printf("x1=x2=%f\n",x1);}
else
{
if(a=0 b!=0) printf("根是x=-c/b");
if(a=0b=0) printf("為常函數(shù)");
if(a!=0) printf("無(wú)根\n");
}
system("PAUSE");
return 0; }
1、要有函數(shù),設(shè)置成double類型的參數(shù)和返回值。
2、根據(jù)導(dǎo)數(shù)的定義求出導(dǎo)數(shù),參數(shù)差值要達(dá)到精度極限,這是最關(guān)鍵的一步。根據(jù)導(dǎo)數(shù)的定義求出導(dǎo)數(shù),參數(shù)差值要達(dá)到精度極限,這是最關(guān)鍵的一步。
dx=0.01; //設(shè) dx 初值
do{
dd1=(f(x0) - f(x0+dx))/dx; //計(jì)算導(dǎo)數(shù)dd1
dx = 0.5 * dx; // 減小步長(zhǎng)
dd2=(f(x0) - f(x0+dx))/dx; //計(jì)算導(dǎo)數(shù)dd2
}while (fabs(dd1-dd2) = 1e-06) //判斷新舊導(dǎo)數(shù)值之差是否滿足精度,滿足則得結(jié)果,不滿足則返回