進退法c語言程序
⑴ <急急急急>用進退法確定函數f(x)=x^2-3x+10的一優化搜索區間[a,b]. 用c語言和MATLAB分別編一段程序
http://www.soso.com/q?w=%C5%C5%C3%FB%D3%C5%BB%AF%C8%ED%BC%FE%CD%FA%B5%C0&sc=web&ch=w.h&gid=&cin=&num=10&lr=&htn=8&bs=%CD%FA%B5%C0%D3%C5%BB%AF%C8%ED%BC%FE
⑵ C語言用什麼語句終止整個程序
C語言用exit()語句可以終止整個程序。
C語言中,exit()通常是用在子程序中用來終結程序用的,使用後程序自動結束,跳回操作系統。exit(0) 表示程序正常退出;exit(1)、exit(-1)表示程序異常退出。在整個程序中,只要調用exit,就會結束程序。
exit()函數所在的頭文件是stdlib.h,需要將該頭文件引入後使用。
(2)進退法c語言程序擴展閱讀:
exit()函數內部實際操作過程:
1、調用atexit()注冊的函數(出口函數),按ATEXIT注冊時相反的順序調用所有由它注冊的函數,這使得我們可以指定在程序終止時執行自己的清理動作.例如,保存程序狀態信息於某個文件,解開對共享資料庫上的鎖等.
2、調用cleanup()來關閉所有打開的流,這將導致寫所有被緩沖的輸出,刪除用TMPFILE函數建立的所有臨時文件.
3、最後調用_exit()函數終止進程。
⑶ C語言中goto語句的用法舉例來說。
用法如下:
goto語句也稱為無條件轉移語句,其一般格式如下:
goto 語句標號; 其中語句標號是按標識符規定書寫的符號, 放在某一語句行的前面,標號後加冒號(:)。語句標號起標識語句的作用,與goto 語句配合使用。
例子: label: i++;
loop: while(x<7);
C語言不限製程序中使用標號的次數,但各標號不得重名。goto語句的語義是改變程序流向, 轉去執行語句標號所標識的語句。
goto語句通常與條件語句配合使用。可用來實現條件轉移, 構成循環,跳出循環體等功能。
但是,在結構化程序設計中一般不主張使用goto語句, 以免造成程序流程的混亂,使理解和調試程序都產生困難。
(3)進退法c語言程序擴展閱讀:
goto語句的討論
(1)goto語句確實有害,應當盡量避免;
(2)完全避免使用goto語句也並非是個明智的方法,有些地方使用goto語句,會使程序流程更清楚、效率更高。
(3)爭論的焦點不應該放在是否取消goto語句上,而應該放在用什麼樣的程序結構上。其中最關鍵的是,應在以提高程序清晰性為目標的結構化方法中限制使用goto語句
⑷ c語言 子函數里的值沒有返回給主函數。
這是C中顫氏一個很典型的游洞散問題,傳值和傳地址值的區別:
傳值方式:
void jtf(float x0,float h,float a,float b),這樣傳的a和b就是傳值,傳參的時候會構造一個a和b的副本對象,在函數jtf中對a和b所做的任何操作都是對副本對象的操作,和原來的a b毫無關系,原來的a b的值不會改變。
傳地址值神氏方式:
float a, b;
void jtf(float x0,float h,float& a,float& b) -> jtf(a, b); //引用
void jtf(float x0,float h,float* a,float* b) ->jtf(&a, &b);//指針
使用引用和指針即是傳地址值方式, 傳遞的是原來的a b的地址,在函數jff中所做的所有操作都是針對a b本身的.所做的改變也會保留.
很顯然, 你的程序應該是用第二種方式的.
⑸ 急求C語言用1進退法2二分法3黃金分割法4牛頓切線法5綜合法這五種方法的NS圖和程序,簡單就好,急!
#include<stdio.h>
#include<math.h>
void main()
{
void function1();//搜索法
void function2();//二分法
void function4();//牛頓法
int choice;
printf("請選擇求解的方法:\n\t1.搜索法\n\t2.二分法\n\t3.牛頓法\n:");
switch(1)
{
case 1: function1();
case 2: function2();
case 4: function4();
}
}
void function1()//搜索法計算非線性方程的解
{
double expression1(double);
double lpoint=1.0,rpoint=2.0,step=0.0001;
while(expression1(lpoint)<-0.00001)
{
lpoint=lpoint+step;
}
printf("運用搜索法所求結果:%f\n",lpoint);
}
void function2()//二分法計算非線性方程的解
{
double expression1(double);
double lpoint=1,rpoint=2,mpoint;
mpoint=(lpoint+rpoint)/2;
while(fabs(expression1(mpoint))>0.00001)
{
mpoint=(lpoint+rpoint)/2;
if(expression1(lpoint)*expression1(mpoint)<0)
rpoint=mpoint;
else
lpoint=mpoint;
}
printf("運用二分法所求結果:%f\n",mpoint);
}
void function4()//牛頓法計算非線性方程的解
{
double expression1(double);
double expression2(double);
double x=1.5;
while(expression1(x)>0.00001)
{
x=x-expression1(x)/expression2(x);
}
printf("運用牛頓法所求結果:%f\n",x);
}
double expression1(double x)
{
double result;
result=x*x*x-x*x-1;
return result;
}
double expression2(double x)
{
double result;
result=3*x*x-2*x;
return result;
⑹ 編程你們來看下啊2X^2-2X+1用C語言編出來,最好用MATLAB搞出來還有分加的
把以下程序存為f618.m,再運行>>[x,min]=F618(0.2,0,1)
得到:緩悔x=1,min=0
function
[x,min]=F618(precision,t0,h)
%初始區間為a,b,相對精度precision
即擾顫正為原區間的多少分之,t0為初始值,h為步長
%用進退法得到高低高區間,在用0.618法求最值
%precision=0.2;
%t0=0;
%h=1;
[a,b]=Fpush(t0,h);
An=a;
Bn=b;
n=1;
while
0.618^(n-1)>=precision
A=0.618.*(An-Bn)+Bn;
B=0.618.*(Bn-An)+An;
if
A<B
if
F618Ret(A)<F618Ret(B)
Bn=B;
else
An=A;
end
else
if
F618Ret(A)<F618Ret(B)
An=A;
else
Bn=B;
end
end
n=n+1;
end
x=An;
min=F618Ret(An);
%=======================================
function
y=F618Ret(x)
%函數為f(x)=t^2-10*t+36
嚴格凸函數
y=x.^2-2*x+2;
%======================================
function
[x1,x2]=Fpush(t0,h)
%進退法,調用函數為,F618Ret,t0為初始值,h為步長
a=t0;
b=t0+h;
while
1
if
F618Ret(a)<洞敏F618Ret(b)
h=0-h;
a=a+h;
b=a-h;
if
F618Ret(b)<F618Ret(b-h)
&
F618(b)<F618Ret(a)
break;
end
else
a=b;
b=a+h;
if
F618Ret(a)<F618Ret(b)
&
F618Ret(a)<F618Ret(a-h)
break;
end
end
end
x1=a;
x2=b;
⑺ c語言把二進制數轉換成十進制數的程序怎麼寫。
需要准備的材料分別有:電腦、C語言編譯器。
1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。
⑻ 用C語言來編進退法的搜索區間
用C語言來編進退法的搜索區間的源代碼如下:
#include<stdio.h>
void main()
{
int a[20],x,i,start,end;
printf("input 20 numbers: ");
for(i=0;i<20;i++) scanf("%d",&a[i]);
printf("please enter the number: ");
scanf("%d",&x);
for(start=0,end=19;start<=end;)
{
i=start+(end-start)/2;
if (x==a[i])
{
printf("%d",i+1);
getch();
return;
}
else if (x>a[i]) end = i-1;
else start=i+1;
}
(8)進退法c語言程序擴展閱讀
1、C語言查找是在大量的信息中尋找一個特定的信息元素,在計算機應用中,查找是常用的基本運算,例如編譯程序中符號表的查找。
2、其實二分查找、插值查找以及斐波那契查找都可以歸為一類——插值查找。插值查找和斐波那契查找是在二分查找的基礎上的優化查找演算法。
⑼ c語言編寫程序如何在程序結束時返回到開始行
可以用 轉向語句 或 循環語句實現。例如:
int main(){
int k=1; float f; double d;
// ... 聲明部分結束,語句開始:
Loop:
// 語句部分 。。。
if (k<10) goto Loop; // 用 轉向語句實現
return 0;
}
============
int main(){
int k=1; float f; double d;
// ... 聲明部分結束,語句開始:
{
// 語句部分 。。。
} while (k<10); //當型循環
return 0;
}
=====
一般要加上條件,否則 成了死循環。