編程實現過程
㈠ 程序設計的基本過程是怎樣的
從分析需求開始
折半查找的演算法思想是將數列按有序化(遞增或遞減)排列,查找過程中採用跳躍式方式查找,即先以有序數列的中點位置為比較對象,如果要找的元素值小於該中點元素,則將待查序列縮小為左半部分,否則為右半部分。通過一次比較,將查找區間縮小一半。 折半查找是一種高效的查找方法。它可以明顯減少比較次數,提高查找效率。但是,折半查找的先決條件是查找表中的數據元素必須有序。參考程序,希望對你有所幫助!
#include<stdio.h>
void main()
{
int a[20],x,i,start,end;
printf("input 20 numbers:\n");
for(i=0;i<20;i++) scanf("%d",&a[i]);
printf("please enter the number:\n");
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;
}
}
㈢ 編程程序是怎麼實現的
編程的話,我的語言描述就是,
要編一個程序,那麼這個程序有它的基本語言。就像我們學習說話,先學會發音,然後組織語言;
學會了基本的語言後,我們就根據需要來編程,在編程過程當中,我們要考慮各種情況,使程序實現我們需要,如果考慮不周到,就會有漏洞,需要補上。所以在編程當中,用到最多的語言就是(如果,或者)這樣的詞彙。
把各種漏洞都堵上了,電腦執行你的指令,不管你有沒有提到其它方面,所有的程序它都要復核一邊。所以程序不要太龐大,需要簡潔,減少電腦的運行。這個就與你堵漏洞有相反的要求。如果你編寫了一個子程序,程序經常要用到這個,那麼你要考慮怎麼把這個程序精簡到最低程度。
因為電腦只能識別這個語言,所以不能夠在語法上有錯誤,它會理解不了。
說到漏洞,比如說,記事本裡面查找功能,你要找文字(J3),那麼它把(J33),(J32)裡面的也找了,如果你在裡面替換什麼內容的話,就會出現問題。這個問題就是你要考慮的,怎麼把漏洞堵上,不發生這樣的問題。
所以我認為編程就是你對這個程序的理解程度考驗。至於基本語言你學會就好,你要做的就是把你想說的話,翻譯成電腦能夠聽懂的話。要說明,什麼不能夠做,什麼應當做,一一交代清楚,只要說漏了一句,電腦就不按你的思路走了。(電腦不會思考,你要做的就是讓電腦按你的思路走。)
㈣ 請問程序設計的基本過程是怎樣的
(1)分析需求:了解清楚程序應有的功能。
(2)設計演算法:根據所需的功能,理清思路,排出完成功能的具體步驟,其中每一步都應當是簡單的、確定的。這一步也被稱為「邏輯編程」。
(3)編寫程序:根據前一步設計的演算法,編寫符合C++語言規則的程序文本。
(4)輸入與編輯程序:將程序文本輸入到計算機內,並保存為文件,文件名後綴為「.cpp」。
至此,產生了完整的程序文本,被稱為源程序或源代碼。保存源程序的文件(例如前面的c:\student\ch1_01.cpp)稱為源程序文件,簡稱源文件,文件名的後綴是「.cpp」。
(5)編譯(Compile):把C++程序編譯成機器語言程序。
編譯產生的程序稱為目標程序,目標程序被自動保存為文件,這一文件稱為目標文件,文件名的後綴是「.obj」。
VC++進行編譯的依據是源程序,如果源程序中的符號、詞語、整體結構等有差錯,超出了VC++的「理解能力」,VC++就無法完成編譯,這樣的差錯稱為語法錯誤。一旦發現語法錯誤,VC++就不生成目標文件,並在窗口下方列出錯誤;如果沒有語法錯誤,則顯示「0 error(s)」,並生成目標文件,允許繼續進行後面的步驟。
編譯沒有出現錯誤,僅僅說明程序中沒有語法錯誤。
(6)生成執行程序:從目標文件進一步連接生成Windows環境下的可執行文件,即文件名後綴為「.exe」的文件。
由於可執行文件是由若干個文件拼接而成的,其中不但有目標文件,還有另一些標準的庫文件,一些規模較大的程序還會有多個目標文件,所以這一步驟又被稱為連接(Link)。
(7)運行:在Windows環境中使用可執行文件。這是程序設計的最終目的。這一步也常被稱為「Run」。
邏輯錯誤:演算法錯,或演算法在轉變為程序時走樣了,導致程序能夠運行,卻不能實現預想的功能。這種錯誤被稱為「邏輯錯誤」。
在運行這一步,必須核對程序是否正確實現了預定的功能,如果功能不對,還必須到程序中尋找錯誤,糾正後再次經歷(5)、(6)、(7)各步,直到看不出錯誤為止。
㈤ c語言編程實現「折半查找」的過程。
//參考代碼如下:
#include <stdio.h>
int main()
{
int i, j, n, k=0, isFound=0;
int num[15] = {88,86,75,74,61,56,52,43,39,34,31,22,18,16,8}; //測試數組
printf("請輸出一個整數:\n");
scanf("%d", &n);
i = (int)15/2; //對折位移量
j = (int)15/2; //取數「指針」
while(k<2)
{
i = (int)i/2;
if(i == 0) k++; //i==0 即折半到無可再折時,仍有最後一次比較,故以k做計數
//若未相等,計算下一循環指針的位置
if(n<num[j])
j = j + (i + 1);
else if(n>num[j])
j = j - (i + 1);
else
{
isFound = 1;
break; //若找到相等數,標記已找到並退出循環
}
}
//輸出結果
if(isFound)
printf("該數是數組中第%d個元素的值\n", j);
else
printf("查無此數!\n");
return 0;
}
㈥ 數控機床的自動編程是怎麼實現的
原理
自動編程是藉助計算機及其外圍設備裝置自動完成從零件圖構造、零件加工程序編制到控制介質制
作等工作的一種編程方法。它的一般過程:首先將被加工零件的幾何圖形及有關工藝過程用計算機能夠識別的形式輸入計算機,利用計算機內的數控編程系統對輸入信息進行翻譯,形成機內零件的幾何數據與拓撲數據;然後進行工藝處理,確定加工方法、加工路線和工藝參數。
通過數學處理計算刀具的運動軌跡,並將其離散成為一系列的刀位數據;根據某一具體數控系統所要求的指令格式,將生成的刀位數據通過後置處理生成最終加工所需的NC指令集;對NC指令集進行校驗及修改;通過通訊介面將計算機內的NC指令集送入機床的控制系統。整個數控自動編程系統分為前置處理和後置處理兩大模塊。
實現自動編程的CAM軟體常用的有UG,PRO/E,MASTERCAM,Powermill,CAXA製造工程師等,可以實現多軸聯動的自動編程並進行模擬模擬。
(6)編程實現過程擴展閱讀
我國數控加工及編程技術的研究起步較晚,其研究始於航空工業的PCL數控加工自動編程系統SKC一1。在此基礎上,以後又發展了SKC-2、SKC-3和CAM251數控加工繪圖語言,這些系統沒有圖形功能,並且以2坐標和2.5坐標加工為主。
我國從「七五」開始有計劃有組織地研究和應用CAD/CAM技術,引進成套的CAD/CAM系統,首先應用在大型軍工企業,航天航空領域也開始應用,雖然這些軟體功能很強,但價格昂貴,難以在我國推廣普及。
「八五」又引進了大量的CAD/CAM軟體,如:EUCLID-15、UG、CADDS、I-DEAS等,以這些軟體為基礎,進行了一些二次開發工作,也取得了一些應用成功,但進展比較緩慢。
我國在引用CAD/CAM系統的同時,也開展了自行研製工作。20世紀80年代以後,首先在航空工業開始集成化的數控編程系統的研究和開發工作,如西北工業大學成功研製成功的能進行曲面的3~5軸加工的PNU/GNC圖形編程系統。
北京航空航天大學與第二汽車製造廠合作完成的汽車模具、氣道內復雜型腔模具的三軸加工軟體,與331廠合作進行了發動機葉輪的加工;華中理工大學1989年在微機上開發完成的適用於三維NC加工的軟體HZAPT;中京公司和北京航空航天大學合作研製的唐龍CAD/CAM系統,以北京機床所為核心的JCS機床開發的CKT815車削CAD/CAM一體化系統等。
到了20世紀90年代,響應國家開發自主產權的CAD/CAM的號召,開始了自行研製CAD/CAM軟體的工作,並取得了一些成果,如:
由北京由清華大學和廣東科龍(容聲)集團聯合研製的高華CAD、由北京北航海爾軟體有限公司(原北京航空航天大學華正軟體研究所)研製的CAXA電子圖板和CAXAME製造工程師、由浙江大天電子信息工程有限公司開發的基於特徵的參數化造型系統GSCAD98、由廣州紅地技術有限公司和北京航空航天大學聯合開發的基於STEP標準的CAD/CAM系統金銀花。
由華中理工大學機械學院開發的具有自主版權的基於微機平台的CAD和圖紙管理軟體開目CAD、南京航空航天大學自行研製開發的超人2000CAD/CAM系統等,其中有一些系統已經接近世界水平。雖然我國的數控技術己開展多年,並取得了一定的成效,但始終未取得較大的突破。
從總體來看,先進的是點,落後的是面,我國的數控加工及數控編程與世界先進水平相比,約有10一15年的差距,差距主要包涵以下幾個方面:數控技術的硬體基礎落後,CAD/CAM支撐的軟體體系尚未形成,CAD/CAM軟體關鍵技術落後。
參考資料來源:網路-自動編程
參考資料來源:網路-自動編程技術