第一篇:c語言選擇界面循環控制方法小結
一、利用無限可控循環
在一般有實用性的c語言程序中都用到字幕選擇交互屏幕來使得程序更友好,人機互動性更強。
而符合有效得控制字母選擇屏幕的循環輸出則顯得尤為重要。而利用無限可控循環則是一種高效的方法之一。其基本思路是。在生成字母屏幕的函數中創建一個無限循環,在循環體內利用switch,case語句或者if,else語句來控制選擇結果的動態處理。如果要要用戶更加靈活的使用是否來決定程序的繼續運行與否,則可在循環體內在套一層循環來實現。當內層循環break到外部循環的時候程序繼續正常運行。當內部循環改變了外部循環的條件并且滿足終止條件時外部的無限可控循環結束。程序正常運行結束。請看以下代碼實例:
int menu_select()/*菜單函數*/ {
char c;
do{
system(“cls”);/*運行前清屏*/
printf(“tt**** 商品系統****n”);/*菜單選擇*/
printf(“tt | 1.輸入數據 |n”);
printf(“tt | 2.顯示數據 |n”);
printf(“tt | 3.插入數據 |n”);
printf(“tt | 4.刪除數據 |n”);
printf(“tt | 5.查找數據 |n”);
printf(“tt | 6.統計并顯示進貨時間最早且最接近保質期中止時間的貨物 |n”);
printf(“tt | 7.寫入文件 |n”);
printf(“tt | 8.讀文件 |n”);
printf(“tt | 9.對讀入的文件進行排序 |n”);
printf(“tt | 0.退出 |n”);
printf(“tt*****************************************n”);
printf(“ttt請選擇(0-9):”);
c=getchar();/*讀入選擇*/
}while(c<'0'||c>'9');return(c-'0');/*返回選擇*/ } //到此以上是定義的產生字幕屏幕的函數。。
int main()/*主函數*/ {
int n=0;
for(;;)
{
switch(menu_select())/*選擇判斷*/
{
case 1:
printf(“ttt輸入最初商品n”);/*輸入若干條記錄*/
n=Input(gs,n);
break;
case 2:
printf(“ttt顯示所有商品n”);/*顯示所有記錄*/
Display(gs,n);
break;
case 3:
printf(“ttt插入n”);
n=Insert_a_record(gs,n);/*插入*/
printf(“ttt”);
system(“pause”);
break;
case 4:
printf(“ttt刪除n”);
n=Delete_a_record(gs,n);/*按商品名稱查找,刪除*/
printf(“ttt”);
system(“pause”);
break;
case 5:
printf(“ttt查找并顯示n”);
Query_a_record(gs,n);/*查找并顯示*/
printf(“ttt”);
system(“pause”);
break;
case 6:
printf(“ttt統計并顯示進貨時間最早且最接近保質期中止時間的貨物n”);
printf(“ttt共有 %d 件商品.n”,n);/*總共記錄數*/
printf(“ttt進貨時間最早且最接近保質期中止時間的貨物:n”);
printf(“ttt商品名稱r:%sn”,gs[0].name);
printf(“ttt進貨時間:%dn”,gs[0].time);
printf(“ttt生產日期:%dn”,gs[0].year);
printf(“ttt保質期:%dnn”,gs[0].no);
printf(“ttt”);
system(“pause”);
break;
case 7:
printf(“ttt寫到文件中n”);
WritetoText(gs,n);/*循環寫入數據*/
printf(“ttt”);
system(“pause”);
break;
case 8:
printf(“ttt文件中讀數據n”);
n=AddfromText(gs,n);
printf(“ttt”);/*文件中讀數據*/
break;
case 9:
printf(“tttn”);
Sort_by_time(gs,n);
printf(“ttt”);/*對讀入的文件進行排序*/
break;
case 0:
printf(“ttt結束退出!n”);/*結束程序*/
printf(“ttt”);
system(“pause”);
exit(0);
}
} } //在主函數中,主函數接受來自定義字幕屏幕函數的參數,通過對參數的動態控制來達到控制整個字幕屏幕的結果的效果。
二、函數調用
除了以上的利用可控無限循環來控制整個字幕的循環輸出外,還可以利用函數調用的方法來達到相同的效果。當然這個思想的難度較上一個方法小一些,不過這種方法在我個人認為比較易理解,高效,簡便。用起來比較方便和靈活。思想如下:
將程序中在不同的地方并且會多處用到的函數功能相同或相近的函數(功能相近的意思是可以利用變化的參數來控制這種差別)抽象出來用一個由多個參數控制的函數來統一表達。定義好該函數之后,只需要在需要用的地方傳參調用的即可。需要注意的是,在此方法中需要對方法進行提前聲明。否則可能會出現異常。請看以下代碼實例: #include
//declare all the function that will be defined later void save(char *name, int n);int readout(char *name, char *type);void insert(char *name);void deletedata(char *name);void rankout(char *name);void deletefile(char *name);void fileinitialize(char *name);void update(char *name);void cleanscreen();void makechoice(char *name);int main()。。//以上是程序開頭的函數聲明
。。
int readout(char *name, char *type){
int i;
FILE *fp;
if((fp = fopen(name, type))== NULL){
printf(“cannot open filen”);
exit(0);
}
printf(“n=========================================n”);
printf(“nametidtchinesetmathtenglish *n”);
for(i = 0;fread(&info[i], sizeof(struct student_info), 1, fp)!= 0;i++){
printf(“%st%dt%dt%dt%dt*n”, info[i].name, info[i].num,info[i].Chinese, info[i].math, info[i].english);
}
printf(“=========================================n”);
printf(“Total %d record(s)nn”, i);
fclose(fp);
return i;} //以上便是對需要多次調用的函數進行的定義。。
void insert(char *name){
//defien the insert()function to insert the record
//to the file you've appointed from the end of the file
FILE *fp;
int i, n;
p = “r”;
strcpy(type, p);
readout(filename, type);
printf(“Enter the number of record you want to insertnnumber=”);
scanf(“%d”, &n);
for(i = 0;i < n;i++){//get infomation from keybord to memory
printf(“>NO_%d ”, i + 1);
scanf(“%s%d%d%d%d”, info[i].name, &info[i].num, &info[i].Chinese,&info[i].math, &info[i].english);
}
if((fp = fopen(name, “a+”))== NULL){//try open the file and ready to write
printf(“cannot open filen”);
exit(0);
}
for(i = 0;i < n;i++){//write the data to the file
if(fwrite(&info[i], sizeof(struct student_info), 1, fp)!= 1)
printf(“file write error”);
}
fclose(fp);
printf(“after insert the new data,data of the file like following:n”);
p = “r”;
strcpy(type, p);
readout(filename, type);
makechoice(filename);} //在以上函數的紅色部分便是對函數的傳參調用
我接觸c語言時間不長以上文間有什么錯誤的地方還請各位大蝦海涵 QQ:670161519
第二篇:循環控制教學設計(范文)
《循環的嵌套》教學設計
《循環的嵌套》是清代大學出版社出版的教材《C程序設計》第三次修訂本中第六章第六節的內容,現就教材、教法與學法及教學過程三方面加以說明。
一、教材分析:
循環結構是建立在順序結構和分支結構的基礎上,既是教材中的重點又是難點。循環的嵌套是循環結構中第三課時的教學內容,是在學習了循環結構的for兩種語句形式的基礎上的深化,本節課的重點和關鍵是對循環嵌套的應用。循環的嵌套在教材上屬于擴展內容,但是等級考試把這部分作為重點考查內容,因此,還是要把循環的嵌套作來重點來講解。教材關于循環的嵌套只有一個例題,且呈現有點突兀,學生要掌握難度較大,我在處理時把例題進行逐層分解,由最基本的輸出一個星號、一列、一行、矩形、三角形、等腰三角形圖案再到菱形,一步一個階梯,便于引導學生通過一個個臺階,最后達到頂峰,此時,學生才有“一覽眾山小”的傲然之勢,以此增強學生成功的自豪感和學習編程的自信心。
二、學情分析:
1、知識掌握上:教學對象為高二年級綜合班的學生,通過前面循環結構的for語句形式的學習,學生已具備學習循環嵌套的基礎。學生不容易理解循環嵌套的執行過程。
2、學習心理上:學生對計算機語言類課不感興趣,學生上課時易分散注意力,不易接受,教師應注意到這些問題,引導學生認真學習本節內容。
3、學生生理上:青少年好動,注意力易分散,愛發表見解,希望得到教師的肯定,所以在教學中應抓住學生的這一特點,創造條件和機會,讓學生發表見解,發揮學生學習的主動性。
職高的學生與普高學生是有區別。故我在進行教學任務設計時,從職高學生的實際情況出發,充分考慮學生現有的文化知識、認知能力、年齡、興趣等特點,遵循由淺入深、由表及里、循序漸進等原則。因為學生在完成一個比較有趣的學習教學任務時,他們會非常專心致志,樂此不疲。在這次任務完成的過程中,學生不僅掌握了應該掌握的知識,而且還培養了創新的思維的能力。
三、教學目標的確立:
針對學情,我把總目標細分成一個個的小目標,并把每一個教學目標和內容細化為一個個容易掌握的小任務,通過這些小的任務來體現出總的教學目標。并根據教學大綱對知識傳授、能力培養、思想教育三者統一以及循環嵌套知識分層次掌握的要求,加上對教材的分解和對學生的了解,我將本節課的教學目標定為知識目標、能力目標和情感目標三個方面,具體如下:
1、知識和技能目標:
A、使學生初步了解FOR循環嵌套的格式和執行過程 B、使學生初步建立嵌套的算法概念,C、使學生初步掌握文本作圖的程序設計算法
2、智能力目標:
A、初步培養學生的創新能力和獨立分析問題、解決問題的能力
B、有意識地對學生進行舉一反三的思維遷移訓練,提高學生的觀察和編程能力
3、情感目標:
A、讓學生在課堂上充分享受成功的喜悅:當學生在答題時獲得成功時,體驗了成功的感受,增強了自信心,同時也增加了學習主動性
B、鼓勵學生流暢地發表觀點,交流思想,形成與信息社會相適應的價值觀和責任感 C、通過完善和編寫程序,培養學生嚴謹的思維習慣。
四、教學重點與難點分析
學生是學習的主體,考慮到學生在學習本課知識時的原有基礎、現有困難及某些學習心理特征,從而有針對性地確定學習的重點、難點及教學對策。剛升入職高一年級的學生,對程序設計算法的把握程度還只停留在運用格式來套用程序的方法來編寫程序的水平上,而程序設計本身內核即算法卻還未真正把握,并且他們的邏輯思維能力尚在進一步形成中。根據大綱要求結合學生的實際情況以及本課的特點,我確立本文重點及難點如下:
1、教學重點:
重點:FOR循環嵌套的格式和執行過程
依據:根據配套大綱要求,循環嵌套知識尤其是FOR循環嵌套是整個循環嵌套的核心,它與后續教學內容緊密相連,此內容教學的成敗關系到整個程序設計的全局,對是否能達到整個課程教學大綱規定的要求和實現專業培養目標至關重要。
2、教學難點:
A、難點:循環嵌套語句的應用——文本作圖。B、依據:本課程教授對象是職業高中一年級學生,對專業課沒有程序設計基礎,并且缺乏課程中需要的算法分析知識;再加上這些學生好動,注意力容易分散,學習積極性不夠高,課堂上很難集中思想來觀察、想象、思維;而教學內容中的文本作圖的畫法正需要集中思想用腦,需要學生有一定的觀察力和想象力。
五、教法與學法
1、教法:
任務驅動法,使用探究式教學模式:由于語言類課的層次性和實用性,提出了由表及里、逐層深入的學習途徑,便于學生循序漸進地學習編程的知識和技能。讓學生在一個個典型的文本作圖的例題下展開教學活動,引導學生由簡到繁、由易到難、循序漸進地完成一系列教學任務,從而得到清晰的思路、方法和系統的知識,在完成教學任務的過程中,培養分析問題、解決問題的能力以及養成某種算法。形成了具有“以任務為主線、教師為主導、學生為主體”的基本特征的教學模式。方法:講解、啟發、演示
2、學法:
自主探究、模仿、實踐、協作
上機實踐:因為編程是一門實踐性非常強的課程。“百講不如一練”,光講的教學方法是行不通的。讓學生親自上機動手實踐遠比聽老師講要有效得多。通常,教師在對知識進行講解后,最關鍵的是讓學生親自動手實踐,讓學生在實踐中把握真知、掌握方法。教學用具:微機房多媒體演示系統
六、教學過程
一、[復習舊知,引入新課](5分鐘)
“興趣是最好的老師”。故我在本節學習中以創設學習情景,激發學習興趣為導入新課的指導思想,從文本作圖入手,引發學生的求知欲望,從而調動其學習的積極性和主動性。情境:從文本作圖入手,引發學生的求知欲望
提問:如何使用一般FOR循環語句實現簡單文本作圖? “*****”
二、[新課內容]:(40分鐘)
再提出問題,給學生搭知識臺階,引學生思維上路,也就是說從最簡單的文本作圖出發,緊扣教材,由淺入深地設置一連串有內在邏輯性的問題,一環緊扣一環,引導學生積極思維,經過獨立思考或共同討論,得出每一問題的準確答案,在這里重在培養學生的理解能力和分析綜合能力。故我決定從如下三步著手: 第一步:從“果”入手,切中要害
問題:一行星會畫了,那么有沒有同學思考過
如果有五行星那如何畫呢?(如右圖)
第二步:講解格式及執行過程
由上一問題的引出FOR循環嵌套的格式,并引導學生學會思考它的執行過程。第三步:由淺入深,設置任務
教學過程是一個復雜的問題,教學過程中對學生的訓練也應是多層次、多結構的。訓練不僅僅體現在課堂上的鞏固練習,而應是貫穿在教學過程的各個環節上。教師連貫、準確、富有邏輯論證性的講述本身就使學生受到科學思維方法的訓練,教師精心設計的思考題、討論題都是對學生思維能力的訓練,當然最重要的是對學生課堂上知識進行形成性訓練,及時鞏固教學成果。根據本課時的教學目標和學生的知識基礎以及因材施教的原則,我設計了四個梯度的任務,每梯度的任務即為一個高度的臺階,學生每得出一個答案就登上一個臺階,這樣任務就迎刃而解了。
*****
***** ***** **********
*
** *** **** ***** ***** **** *** ** * * ** *** **** ***** ***** **** *** ** *
任務一 任務二 任務三 任務四 由任務
一、引出對FOR循環嵌套中內循環變量的值的探究 由任務
二、引出對FOR循環嵌套中步長及循環變量的探究
由任務三、四引出在內外循環之間如何控制作圖坐標的探究,并鞏固任務一和二
由以上四個梯度任務不僅在教授了學生FOR循環嵌套的格式和執行過程,更重要的是通過任務的逐層深入,再采用設問、類比啟發并輔之以討論的方法,培養學生的分析能力和思維能力。
[歸納小結](3分鐘): 引導學生歸納小結,教師歸納總結,同時在本節課所教授的主要內容;循環嵌套是個難點,要求學生結合文本作圖多看、多想、多比較、不斷實踐,逐步提高循環程序設計的分析問題和解決問題的能力。
[課后思考]:(2分鐘)
* ** *** **** *** ** * **** *** ** * ** *** ****
* *** ***** *******
* *** ***** *******
思考一 思考二
(垂直對稱文本作圖的算法)(水平對稱文本作圖的算法)
(此思考題可以幫助學生加深對嵌套的格式的理解,以及對文本作圖的掌握,對本節課的教學重點和難點內容加以鞏固,提高學生分析問題、解決問題的能力)
七、教學反思:
本節課通過簡單問題入手,引導學生應用自己理解的知識由簡單到復雜,沿著臺階狀的問題步步上升、層層深入,在生生、師生討論中找到解決問題的辦法,也使學生在不知不覺中到達頂峰,體味“一覽眾山小”的氣勢,這在無形中增強了學生成功的自豪感和學習編程的自信心。學生全程參與了知識的形成過程,通過積極思考、廣泛交流、主動探究與建構,使問題得到解決,把新知識納入舊知識的體系中,在整個學習過程中,學生成為真正的學習的主體,教師只是起到主導的作用,是學生學習的幫助者和促進者。
在本節課中,學生掌握的不僅僅是知識本身,更重要的是學會了解決問題的方法,知道了在什么情況下、在什么地方去應用所學的知識,真正做到學以致用。在程序設計語言的教學之中,最重要的是基本思想和方法的教學,教師的任務是如何恰當地引導,使學生準確地領悟思想,從而較好地掌握基本方法并能恰當應用。
在上述教學中,沒有改變常規教學的各個環節,但由于教學過程設計符合學生的認識規律,堅持循序漸進的原則,充分發揮主導和主體的積極性,又以訓練為主線,同樣可以收到較好的教學效果。
以上是對〈循環嵌套〉這一教學內容的認識和對教學過程的設計,不妥之處,請指正,謝謝。
第三篇:循環知識小結
循環知識小結
一、有關循環的語法
1.while語句 2.do~while語句 3.for語句 4.break語句 5.continue語句
? 循環方式
? while語句和do~while語句多采用標記式循環
? 用于循環次數不定的情況
? for語句更方便對于循環次數確定的情況
?
循環結構
? for語句和while語句先判斷循環控制條件,后執行循環體
? 可能一次也不執行循環體
? do~while語句是先執行循環體,后進行循環控制條件的判斷
? do~while語句至少執行一次循環體
? do~while語句更適合于第一次循環肯定執行的場合
? 實現功能
? do~while和while語句只有一個表達式,用于控制循環是否進行 ? for語句有三個表達式
? 可以控制循環是否進行,并能為循環變量賦初值及不斷修改循環變量的值 ? for語句比while和do~while語句功能更強,更靈活
? 語句形式
? 初始值
? while、do~while循環時,循環變量的初始值操作應放在while和do~while
語句之前完成
? for語句通常在表達式1中實現循環控制變量的初始化
? while和for表達式的括號后面沒有“;” ? do~while表達式的括號后面有“;”
? 循環語句的選用原則
? 循環次數是否確定
? 循環次數已知,一般用for語句
? 循環次數由循環體的執行情況來確定,一般采用while語句或do~while語句
? 循環體是否一定執行
? 循環體至少要執行一次時,采用do~while語句
? 循環體可能一次也不執行,則選用while語句或for語句
二、循環語句的比較
三、關于嵌套循環
1.在嵌套的各層循環中,應使用復合語句保證邏輯上的正確性 2.嵌套循環的內層和外層的循環控制變量不應同名,以免造成混亂 3.嵌套循環最好采用右縮進格式書寫,以保證層次的清晰性
4.循環嵌套不能交叉,即在一個循環體內必須完整地包含另一個循環
5.在多層循環中,應將最忙(循環次數最多)的循環放在最內層,以減少CPU切入循環的次數
1、國王的許諾。相傳國際象棋是古印度舍罕王的宰相達依爾發明的。舍罕王十分喜歡象棋,決定讓
四、有關循環應用的討論
宰相自己選擇何種賞賜。這位聰明的宰相指著8×8共64格的象棋盤說:陛下,請您賞給我一些下麥子吧,就在棋盤的第1格子中放1粒,第2格中放2粒,第3格中放4粒,以后每一格都比前一格增加一倍,依此放完64個格子,我就感恩不盡了。舍罕王讓人扛來一袋麥子,他要兌現他的許諾。請問:國王他能兌現他的許諾嗎?請編程計算舍罕王共要多少麥子賞賜他的宰相,這些麥子合多少立方米(已知1立方米麥子約為1.42e8粒)?
問題分析:這是一個典型的循環次數已知的等比數列求和問題。第1格放1粒,第2格放2粒,第3格放4=22?!趇格放2i-1粒。所以,總粒數為sum=1+2+22+23+……+263。對于這樣的問題,我們采取的策略是每次加一個累加項,用循環語句重復執行64次累加運算,即可求出累加和sum。在累加求和問題中,尋找累加項的構成規律是問題求解的關鍵。一般地,尋找累加項構成規律有兩種方法:一種是尋找統一的累加項表示規律,即用一個通式來表示累加項;另一種是尋找前后項之間的統一的變化規律,即利用前項得到后項的表示。
該題用第一種方法,可得累加項的通式為term=2n-1,即term=pow(2,n-1),n從1變化到64,即從第一項開始計算累加和,所以有sum=sum+term,sum的初始值為0。因此得源代碼如下:
# include
# include
以上程序運行的結果為:
這種數值如此龐大,是舍罕王絕對沒有預料到的,它相當于全世界若干世紀的全部小麥,看來舍罕王是無法兌現自己的諾言了!
2、馬克思手稿中的數學問題。馬克思手稿中有一道趣味數學題:有30個人,其中有男人、女人和小孩,在一家飯館里吃飯共花了30先令,每個男從各花3先令,每個女人各花2先令,每個小孩各花1先令,問男人、女人和小孩各有幾個人?
問題分析:設男人、女人和小孩各x、y、z人,按題目要求可得到下面的方程: x+y+z=30 3x+2y+z=50 兩個方程有三個未知數,因此這是一個不定方程,有多組解,用代數方法很難求解,一般采用“窮舉法”求解該類問題。所以“窮舉法”(也稱“枚舉法”)就是將所有可能的方案都逐一測試,從中找出符合指定要求的答案。如果由人工來進行這樣的求解過程,工作量不可想象,而由計算機來完成卻十分簡單。窮舉法是計算機程序設計中最簡單、最常用的一種方法,它充分利用了計算機處理速度高的特性。使用窮舉
法的關鍵是要確定正確的窮舉范圍,過分擴大會導致程序運行效率的降低,過分縮小會遺漏正確的結果而導致錯誤。
方法一 采用三重循環窮舉x、y、z的全部可能的組合。源代碼如下:
# include
方法2 改進算法。
# include
3、編程計算一元二次方程ax2+bx+c=0的根,a,b,c由鍵盤輸入,其中a≠0。程序設計時,根據一元二次方程求根公式把所有的可能考慮進來,設計算法如下: # include
{ printf(“不是一元二次方程n”);
exit(0);
//終止整個程序的執行,強制返回操作系統
} disc=b*b-4*a*c;if(fabs(disc)<=EPS)
//實數disc與0相比較
printf(“該方程有兩個相等的實根:x1=x2=%.2fn”,-b/(2*a));else { p=-b/(2*a);
q=sqrt(fabs(disc))/(2*a);
if(disc>1e-6)
printf(“該方程有兩個不等的實根:x1=%.2f,x2=%.2fn”,p+q,p-q);
else
{ printf(“該方程有兩個共軛復根:n”);
printf(“x1=%.2f+%.2fin”,p,q);
printf(“x2=%.2f-%.2fin”,p,q);
} } } 程序運行的結果測試如下: 測試1:測試2:測試3:
測試4:
補充說明: 1)函數exit()其作用是終止整個程序的執行,強制返回操作系統。和goto,break,continue等控制語句類似,可以用于控制程序的流程。當程序執行的必需條件不能滿足時,常用exit()函數終止程序的執行。調用該函數需要包含頭文件
exit(code);參數code為int型。當code值為0或為宏常量EXIT_SUCCESS時,表示程序正常退出;當code值為非0或為宏常量EXIT_FAILURE,表示程序出現某種錯誤后退出。
2)實數不能直接和0比較相等與否
本例中由于a是用戶輸入的原始數據,不存在計算誤差,因此a與0的比較也可以用a==0代替。但因disc變量是經過計算得到的浮點數,而絕大多數計算機中表示的浮點數都只是它們在數學上表示的數據的近似值,因此disc與0的比較不能用disc==0來代替,必須用fabs(disc)<=EPS表示。
3)有關實型數據的輸入格式 實型變量若定義為float類型,則在用scanf()函數輸入時應用%f格式;若定義為double類型,則應用%lf格式輸入。實際從鍵盤輸入的數據可以是整數、小數或指數形式,存入變量對應的存儲空間均為指數形式。在C中所有實型常量的類型默認為double類型,若將一個實型常量賦值給float型變量時,系統會出現警告,提醒用戶由于兩種類型的有效數字位數不同,容易產生精度損失問題,如果所處理的數據有效數字位數在7位以內,此警告可忽略。
4、從鍵盤輸入一個正整數,編程判斷它是否是素數。若是素數,輸出“Yes!”,否則輸出“No!”
問題分析:所謂“素數”即質數,是只能被1和本身整除的數。所以判素數的方法:把m作為被除數,窮舉2~m-1之間的數作為除數,若其中有一個能整除,即可確定m不是素數,否則是素數。事實上,根本用不著除那么多次,用數學的方法可以證明:只需要用2~m之間的整數去除m,即可得到正確的判定結果。
方法一 用goto語句實現的程序如下:
# include
{ printf(“%d不是素數!n”,m);
goto end;
} } printf(“%d是素數!n”,m);end: printf(“程序結束!n”);} 方法二
用break語句實現的程序如下:
# include
# include
if(m%i==0)
break;if(i>k)
printf(“%d是素數!n”,m);else
printf(“%d不是素數!n”,m);} 分析:goto語句可以控制流程跳轉到程序中任意某個指定的語句處去執行,而break語句的作用是終止整個循環的執行,從循環體內中途退出,接著去執行循環語句之后的第一條語句。break語句的使用使循環的控制更靈活了。使用break語句的副作用是它會使循環體本身形成兩個出口,同goto語句相比,只不過break語句跳轉的距離和方向受到了嚴格的限制,而不像goto語句那樣可以向任意方向跳轉。因此,無論使用goto語句還是break語句,都不是一種好的選擇,所以應盡量少用或不用它們。很多情況下,可以采用標志變量并加強循環測試的方法是完全可以避免使用break語句的。方法三 通過設置標志變量并加強循環測試的方法實現程序如下:
# include
if(m%i==0)
flag=0;if(flag)
printf(“%d是素數!n”,m);else
printf(“%d不是素數!n”,m);} 結論:從程序的可讀性方面看,方法三比方法一和方法二都好!
5、從鍵盤輸入一個正整數m,若m不是素數,則打印其所有因子;否則,打印“沒有因子,是素數!”
問題分析:能被m整除的數i就是m的因子,因此當m%i==0時,不退出循環而打印當時的i值即可。為了得到m的所有因子,循環變量i應從2一直變化到m-1,即無論m是否是素數都要檢驗所有的i值。
# include
} printf(“請從鍵盤輸入一個正整數:”);scanf(“%d”,&m);for(i=2;i<=m-1;i++)//此處的m-1可否改為m/2或sqrt(m)?
if(m%i==0){ flag=0;
printf(“%dn”,i);} if(flag)printf(“%d是素數,沒有因子!n”,m);
五、有關getchar()、getche()和getch()的討論
? getchar()函數采用緩沖輸入方式,即輸入字符先被放到緩沖隊列中,直到鍵入回車鍵時才返回,getcahr()每次從輸入緩沖隊列中讀取第一個字符進行相應的處理。
? getch()函數在擊鍵之后立即返回,無需輸入回車鍵,且不向屏幕回顯鍵入的字符。? getche()函數功能同getch()函數,只是前者要向屏幕回顯鍵入的字符。? getch()和getche()是Turbo C特有的庫函數,在頭文件conio.h中定義。
例1:從鍵盤輸入一個班學生(人數不確定)一門課程的五分制成績,編程要求每輸入一個五分成績,就顯示其所在的分數段,同時,統計并打印每種成績的人數。
問題分析:對于這類輸入數據個數不確定的問題,常常采用輸入一個特殊的數作為程序判斷循環結束標志的方法。例如,輸入百分制成績時,用負數作為輸入結束的標志,輸入五分制成績里,則可用一個特殊的符號作為輸入結束的標志。
程序如下:
# include
switch(grade)
{ case 'A': case 'a': printf(“90--100n”);
aCount++;
break;case 'B': case 'b': printf(“80--89n”);
bCount++;
break;case 'C': case 'c': printf(“70--79n”);
cCount++;
break;case 'D': case 'd': printf(“60--69n”);
dCount++;
break;case 'E': case 'e': printf(“<60n”);
}
eCount++;
break;
default: printf(“輸入錯誤!n請重新輸入:n”);} grade=getchar();} printf(“統計結果: A: %d, B: %d, C:%d, D:%d, E:%dn”,aCount,bCount,cCount,dCount,eCount);運行結果如下:
測試1:
問題:只有輸入#并回車才能真正結束程序,#沒有直到預期的目的。測試2:
問題:以回車或空格作為每個等級的分隔符,統計結果雖然正確,但都會提示出錯信息,解決方法一:在switch語句中增加一個case分支:
case ' ': case 'n': break;解決方法二:將接收字符的操作改用scanf函數實現,并在%c格式前增加一個空格,將前面輸入數據輸入時存于緩沖區的回車符讀入,避免被后面的字符型變量作為有效字符讀入。scanf(“ %c”,&grade);例2:設計一個簡單的計算器程序,要求用戶可以連續做多次算術運算,每次運算結束后,程序都會給出提示: Do you want to continue(Y /N or y/n)? 如果用戶輸入Y或y時,程序繼續執行其他運算,否則退出程序。程序如下:
# include
} char op,reply;do { printf(“請輸入計算表達式:”);scanf(“%d %c %d”,&d1,&op,&d2);switch(op){ case '+': printf(“%d%c%d=%dn”,d1,op,d2,d1+d2);break;
case '-': printf(“%d%c%d=%dn”,d1,op,d2,d1-d2);break;
case '*': printf(“%d%c%d=%dn”,d1,op,d2,d1*d2);break;
case '/': if(d2==0)
printf(“除數不能為0n”);
else
printf(“%d%c%d=%dn”,d1,op,d2,d1/d2);
break;
default: printf(“運算符錯誤!n”);} printf(“Do you want to continue(Y /N or y/n)? ”);reply=getchar();}while(reply=='Y'||reply=='y');printf(“程序結束!n”);問題:測試不能得到預期的結果,原因在于函數getchar的行緩沖問題導致getchar()把用戶輸入表達最后的回車符作為其讀入字符。
解決辦法:將語句reply=getchar();改為reply=getch();或reply=getche();或scanf(“ %c”,&reply);都可以。
六、結構化程序設計的核心思想
結構化程序設計是一種進行程序設計的原則和方法,按照這種原則和方法設計的程序具有結構清晰、容易閱讀、容易修改、容易驗證等特點。因此,人們把“結構清晰、容易閱讀、容易修改、容易驗證”作為衡量程序質量的首要條件。也就是說,所謂“好”的程序是指“好結構”的程序,一旦效率與“好結構”發生矛盾時,那么寧可在可容忍的范圍內降低效率,也要確保好的結構。
結構化程序設計的基本核心思想歸納起來為以下3點:
(1)采用順序、選擇、循環三種基本結構作為程序設計的基本單元。
(2)盡量不要使用多于一個的goto語句標號,同時只允許在一個“單入口單出口”的模塊內用goto語句向前跳轉,不允許回跳。
(3)采用“自頂向下、逐步求精”和模塊化方法進行結構化程序設計。
七、循環的應用
(一)遞推算法
1.編程計算1+2+3+……100的值。
2.編程計算1×2×3+3×4×5+5×6×7+……+99×100×101的值
[提示:用累加和算法,通項公式為term=i*(i+1)*(i+2)(i=1,3,5,…,99),或者公式為term=(i-1)*i*(i+1)(i=2,4,6,…,100),步長為2。] 2.編程計算n!=1×2×3×……×n的值。
3.編程計算1!+2!+3!+……+10!的值。
[提示:用累加和算法,累加項為term=term*i(i=1,2,3,…,10),term的初始值為1。] 4.編程計算a+aa+aaa+……+aa…a(n個a)的值,n和a由鍵盤輸入。
[提示:用累加和算法,累加項為term=term*10+a(i=1,2,3,…,n),term初始值為0。]
5.編程計算分數數列6.編程計算s7.編程計算s?1?12221,,235358138,2113,?前20項之和。
111?2?342?11?2?3562???1?2?3??n直到,n由鍵盤輸入。如n為11時,s=1.83333。
?10?3?????(2?n?1)(2?n)2(2?n?1)(2?n)2。
8.編程計算xn,其中x和n均由鍵盤輸入。
9.一球從200米高度自由落下,每次落地后反跳回原高度的一半,再落下。編程求它第10次落地時共經過的路程及第10次落地后反彈的高度。10.猴子吃桃問題。11.求∏的近似值。12.求Fibonacci數列。
(二)窮舉算法
1.請編程判斷一個正整數m(m>=3)是否是素數。
2.編程實現從鍵盤上輸入整數m和k,輸出大于且緊靠m的k個素數。3.請編程找出1至99之間的全部同構數。所謂同構數是這樣的一組數:它出現在它平方數的右邊。(例如:4是25右邊的數,25是625右邊的數,5和25都是同構數。)5.輸入兩個正整數,求其最大公約數和最小公倍數。
6.輸出所有的水仙花數。所謂“水仙花數”是指一個3位數,其各位數字的立方和等于該數本身。7.從鍵盤輸入任意一個整數,編程計算該整數各位數字的累加和(忽略整數前的正負號)。
8.韓信點兵。韓信有一隊兵,他想知道有多少人,便讓士兵排隊反報數。按從1到5報數,最末一個士兵報的數為1;按從1到6報數,最末一個士兵報的數為5;按從1到7報數,最末一個士兵報的數為4;最后再按從1到11報數,最末一個士兵報的數為10。編程計算韓信一共有多少士兵?
[提示:設兵數為x,則按題意x應滿足以下關系:
x%5==1&&x%6==5&&x%7==4&&x%11==10 用窮舉法對x從1開始試驗,可得結果。
] 9.雞兔同籠,共有98個頭,386只腳,編程求雞、兔各多少只?
[提示:設雞數為x,兔數為y,根據題意有x+y=98,2x+4y=386,采用窮舉法,x從1變化到97,y取98-x,如果x,y同時滿足條件2x+4y=386,則打印x,y的值。] 10.百錢買百雞問題。取自《張丘建算經》:“雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問雞翁、母、雛各幾何?”
[提示:設公雞、母雞、小雞數各為x,y,z,依題意有x+y+z=100, 5x+3y+z/3=100。采用窮舉法求解,因100元買公雞最多20只,買母雞最多33只,所以只要x從0變化到20,y從0變化到33,則z=100-x-y,若同時滿足5x+3y+z/3=100,即得解。]
第四篇:財務控制方法
財務控制方法
什么是財務控制方法[1]
財務控制方法是指在財務管理過程中,利用有關信息和特定手段,對企業財務活動所施加的影響或進行的調節的一種方法。
財務控制方法的種類[2]
由于各控制主體的目的、職責和任務各有不同,可采用不同的調控方法。財務控制的主要方法有以下幾種:
一、制度控制法
制度控制法指按照國家和企業制定的法令、條例、制度、辦法等進行的控制。包括財產物資、現金收支的管理及清查盤點制度,崗位責任制,財務管理基本業務程序制度。制度控制通常規定只能做什么,不能做什么。制度控制通常具有防護性特征。
二、定額控制法
定額控制法是指以定額為標準,對經濟活動或資金運動所進行的控制。符合定額的經濟業務要給予支持,保證資金需要;超過定額的經濟業務要分析超過的原因,再分別處理。一般地說,財務管理中的定額管理本質上是對財務管理各方面的工作明確提出定量、定時的要求,建立各種各樣有科學依據、切實可行的定額,并按照它們的內在聯系組成一個定額體系。這個體系按內容分有資金定額、成本費用定額、設備定額、物資定額;按性質分有狀態定額、消耗定額和效率定額。
定額管理的實施要求企業做好兩項基礎性工作:計量與驗收工作和原始記錄工作。①計量與驗收工作包括:明確企業各種計量檢測工具的配置、使用、管理、維修要求;規范企業商品、材料、物資的購進、入庫、領用、轉移、出庫等各環節的管理工作。②信息工作:建立健全原始記錄和財務資料的編制、審核、傳遞、反饋、檔案管理的責任制,財務管理要求信息工作全面、及時、準確。
三、授權控制法
授權控制法指在某項財務活動發生之前,按既定的程序對其正確性、合理性、合法性加以核準并確定是否讓其發生的控制。授權管理的原則是:對授權范圍內的行為給予充分信任,但對授權以外的行為不予認可。
授權通常分為一般授權和特別授權。一般授權是指企業內較低層次的管理人員根據既定的預算、計劃、制度等標準,在其權限范圍內對正常的經濟行為進行的授權。例如,因工出差問題,只要出差人部門的負責人按照工作計劃和制度授權即可。特別授權是指對非經常經濟行為進行專門研究作出的授權。與一般授權不同,特別授權的對象是某些例外的經濟業務。這些例外的經濟業務往往是個別的、特殊的,一般沒有既定的預算、計劃等標準所依,需要根據具體情況進行具體的分析和研究。例如,授權購買一項重要設備、授權降價出售商品等都是特別授權的事例。一般授權在企業中大量存在,授權給較低的管理人員就可以了。特別授權在企業中較少出現,較低層次的管理人員是無法處理的,需要較高層次的管理人員乃至最高領導人專門研究,作出決定。
一般來說,有些經營業務授權可以一次完成。而對大多數經濟業務來說,是需要兩次或兩次以上相互聯系的授權才能完成的。第二次授權不僅是對第一次授權的認可,同時還是對第一次授權所形成的經營業務的進一步監督和控制。如果負責第二次授權的人或部門獨立于第一次授權的人或部門,則能加強授權的控制功能。
一個企業的授權控制應做到以下幾點:①企業的所有人員不經合法授權,不能行使授權。②企業的所有業務不經授權不能執行。③經營業務一經授權必須予以執行。
四、責任制度控制法
在現代組織形式下科學的組織結構、合理分工管理的基礎上,進而建立適當的責任制度,是組織控制的一項重要內容。責任制度控制法是以明確責任、檢查和考核責任履行情況為主要內容的控制方法。責任制度具有三大特點:①職責和權利結合起來;②工作任務和方法結合起來;③縱向和橫向工作結合起來。
責任制度的具體形式主要有以下兩種:
(1)部門責任制。部門責任制指按照企業各部門具備的職能來明確責任,考核責任的制度。實行部門責任制,首先要明確各個部門的工作內容、責任范圍及部門之間的聯系。其次要制訂各個部門的工作標準,以及各部門之間的聯系、協調制度,并經常檢查執行情況,以使企業內部各部門既能各司其職,又能協調配合,從而有條不紊地完成各自的工作任務,實現企業的整體目標。
(2)崗位責任制。崗位責任制指按照崗位明確責任、考核責任的制度。建立崗位責任制的目的是使企業內部各級組織和人員都有明確而具體的職權范圍和工作責任。以做到人人有專責,事事有人管,辦事有標準,工作有檢查。實施崗位責任制的具體要求是:第一,在工作內容上要明確職責范圍和權限,有時,一個崗位有幾個人負責;有時,幾個崗位有一個人負責。第二,在質量標準方面,質量標準要指標化。第三,在政策規定方面,要紀律嚴明,要經常性進行檢查和監督。
五、預算控制法
預算是一種控制機制,預算表現了執行主體的責任和奮斗目標,因而能約束預算執行主體的行為,最大限度的保證預算目標的實現。通過預算目標與實際業績的比較,能使經理人員隨時了解預算主體范匭內的企業實際業績的進展情況,通過分析目標與實際的差異,揭示產生差異的原因,以便反映原始預算的現實性與可行性,并由此決定是否修改原始預算,以使目標變得科學與合理。通過實際業績與預算業績的定期比較,可以最大限度的提高企業的經營效率。在集團內實施預算控制,更有利于落實責任,有利于企業的控制與經營。
六、利益控制法
應當明確,參與財務活動的各行為主體的主要目的在于保證或增加自身的經濟利益,不管是國家、部門還是企業概莫能外。當各行為主體間的利益界限清晰,各自的行為結果與其利益所得直接相關時,外來的利益調控措施就能發揮應有的作用。企業為了使自身的運行更順利有效,常用留利分配比例、工資分配、獎金分配等杠桿調控內部的諸多財務關系。誠然,利益杠桿作用具有雙向性,它一方面鼓勵人們從事某種行為,另一方面也會抑制人們從事某種活動,通過利益的間接調控,盡可能地使各行為主體的財務活動符合調控主體的計劃和目標。當市場氛圍越來越濃時,利益激勵機制將會成為調動職工積極性的主要動力。
七、平衡控制法
平衡控制法指對系統內部各部分、各要素間能夠按其固有的比例搭配并以特有的規律協調有效的控制運行。財務工作作為一種價值管理工作,不僅在總體上、在整個過程中,具有某種平衡性要求,且在每一局部和環節上也必然存在一個特定的配置比例要求。平衡性主要表現在以下三個方面:
(1)財務收入與財務支出的平衡調控。財務收入與支出、資金的供應與需求永遠是一對矛盾,二者之間可能在一系列外在條件約束下暫時地達成某種平衡,但很難永久處于自發平衡之中。一般地說,對資金的需求總是大于資金的供給,即一方面財力有限,另一方面又需求無限。這就要求財務調控積極發揮作用,分清輕重緩急,本著量入為出的原則,將有限的資金用于恰當的項目上,實現財務收支平衡。
(2)資金運行與物資運行的平衡調控。資金流與物資流是企業的兩大主流,二者之間可以平衡運行,也可以交叉運行。即資金流可以變為物質流,物質流也可以變為資金流,并且都與信息流相關。對于資金與物資的調控,應當以企業目標為出發點,適時地實現它們之間的銜接或轉換,保證資金運動與物資運動的協調及企業生產經營的正常進行。
(3)財務活動內部結構的平衡協調。當一個經濟系統的結構和運行軌跡確定之后,其內部的財務結構也隨之確定下來,處于一種相對穩定的暫時平衡狀態。對于一個企業來說,當其生產能力、產品品種、工藝流程等確定之后,其生產經營的資金結構、成本結構、銷售收入結構和利潤分配結構也就確定下來,并且變得相對穩定的。一旦某一結構發生變化,就應查找造成變化的內在原因,就要分析看是企業內部因素的變化,還是外界因素的變化。若確是外界不可控因素發生了變化,就應當果斷地改變原有的結構狀態,適應形式的變化。
八、區域控制法
區域控制法,即根據財務活動的規律性大致規定一個財務活動的區域,凡是某一系列指標處于該區域內者,則視為正常;如果超過了區域的范圍,便認為是超常,從而查核其中原因。由于此時的判別標準是“區域性”,因此區域的位置、區域的大小便成為該種調控方式的重心所在。要求在確定區域時充分考慮各種相關因素,分析它們之間的關系及變化趨勢,進而確定一個科學、合理的財務調控區域。
九、比率控制法
比率控制是一種相對數控制方法,是通過兩個相關指標的比較及數期變化趨勢,來分析說明事物的本質及規律性。在許多情況下,運用絕對數無法說明問題,但使用具有可比意義的相對數卻能作出有效的比較,進而找出差距和不足。
十、限額控制法
限額是指根據經驗或科學計算而對某種行為的消耗、占用、或產出所做的數量規定,其主要理論依據是以前的行為具有歷史延續性,環境的相對穩定性。但對于沒有歷史延續性的行為,或對于外界環境處于飛速變化的事件及各種非線性變量不斷產生的系統,限額調控是難以奏效的。在財務管理中,常用于調控財務行為的限額有收支總額、流動資金占用額、工資定額、利潤總額、銷售總額等。
要正確運用以上各種調控方式,必須做到以下幾點:
(1)對需要的反饋信息,應進行認真的反復的測算,并對有關資料整理加工,以便于進行比較。
(2)檢測數據應盡量達到及時性、準確性、適用性要求。
(3)被控對象的狀態空間要規定適當的限制界限。
(4)受控時間要適時,不要等系統已運行完一個周期再進行比較分析。
(5)外部信息要可靠、真實,信息應當以適當的計量單位表示。
(6)信息的反饋循環應盡量減少層次,以加快反饋速度,提高信息反饋效率。
(7)對有些事物的控制要建立一定的模型,運用各種現代數學的手段,進行數量分析和模擬仿真。
第五篇:循環經濟理論和方法研究
課題描述:循環經濟理論和方法研究
點評專家:段寧(中國環境科學研究院副院長、國家清潔生產中心主任)
“個體的先進技術對于經濟和社會等發展來說非常重要,但是整體理論和方法研究同樣、甚至更為重要,因為這關系到對國家資源和環境等形勢的整體客觀把握,對基本形勢的判斷,避免戰略,甚至是國策的失誤。比如,過去各國科技之爭的制高點之一在于如何更好、更高效地把不可再生的礦物質挖出來,提高其利用率。但現在不同了,發達國家科學研究的重點轉向了如何把已經挖出來的物質資源回收再利用等。正是通過循環經濟理論和方法等研究,使我們對當今國內外的總體形勢有了一些新認識?!痹诿髁恋臅h室里,段寧語重心長地告訴記者,我國在循環經濟領域與發達國家的差距不但沒有縮小,反而在擴大。
三大定理構建理論框架
“隨著科學技術的進步,人類物質代謝總規模的發展趨勢是上升還是下降,各國科學家們長期以來重點研究和爭論的這一問題,不僅是可持續發展的核心問題,也是關于發展循環經濟的必要性和迫切性的基本理論問題?!倍螌幷f,課題組在對國內外大量數據和事實廣泛分析的基礎上總結了過去6年左右循環經濟科研實踐的經驗,通過理論提煉和數學推導,提出了趕不上定理、上升多峰原理和物質減項定理和完全循環原理,比較系統地從自然科學層面解答了這一重要問題。
趕不上定理是指一個正常的經濟體系,在時間足夠長的增長過程中,人均物質消費量上升的充分必要條件是物質強度下降的速度趕不上人均GDP增長的速度;上升多峰原理是指在人類發展歷史中,總的趨勢是人均經濟總量不斷上升,人均物質代謝規模永遠隨其上升而上升,盡管在這一過程中兩者不同程度的、相對的或絕對的脫鉤會反復發生;物質減項定理是指停止使用不可循環利用的不可再生物質,是人類實現可持續發展的充分必要條件。
課題組通過研究,認識到了污染物排放量與物質消費總量密切相關,如果不減少我國的生產物質消費總量,污染排放量難以削減,國務院的“十一五”社會發展中長期規劃中“主要污染物要下降10%”的剛性指標就難以實現。所以,優化產業結構和物質代謝途徑,提高廢物的循環利用率勢在必行。
另一方面,我國正處在高速發展的重化工階段,由于產業結構不合理等現實制約,我國在資源利用率上與國際上存在很大差距。我國單位產值能耗比世界平均水平高3.2倍,分別是日本、德國和美國的7.7、4.7和3.5倍;單位產值水耗約為發達國家的8~20倍,是美國的9.8倍、法國的17.5倍、日本的24.2倍。加上人們強大的改善物質生活條件的內源性需求———要生活更好、消費更豐富的物質,因此,在可以預測的未來,當我國人均GDP上升很快,但物質強度下降不快時,我國的物質消耗總量還將繼續增大。專家點評:
現在的末端污染治理技術,比如建設污水處理廠來削減水污染物、建設脫硫設施削減大氣污染物等,不但花費昂貴,而且不能同時削減水、大氣和固體廢棄物。大力發展循環經濟,從源頭減少投入生產的一次性物質,阻隔主要污染物產生途徑,可以使進入末端治理的污染物銳減,控制污染排放量,提高環境質量。
日本經驗也說明,通過產業結構的改變,節能、能源結構的改變,削減了4/5的二氧化硫,比末端污染治理削減量要大得多;從1979年到2000年日本資源循環率從8%%提高到10%%,同時期廢物填埋總量下降了40%。
新方法破除理論“怪圈”
除了提出理論外,課題組還提出了新方法。段寧說:“粗放式發展經濟,復合型污染是我國一大特征,因此,我國的工業代謝研究不能局限于分析污染物進入環境后的代謝過程,也不能局限于利用廢物構建生態工業鏈網的努力。”
生態工業園區是我國工業發展的重要方向,其規劃建設是從1999年開始進行的,如廣西貴港市、新疆石河子市、內蒙古包頭市等,這些城市一個共同特點是技術水平相對較低、污染排放高。因此,我國生態工業園區的早期規劃中形成了主要利用廢棄物設計工業鏈網的模式。但是后來蘇州高新區、天津泰達開發區、大連經濟技術開發區等一大批技術含量高、污染排放少的工業園區發展生態工業時受到以上模式的束縛,紛紛感到生態工業園區規劃無從下手,一時間國內形成了“污染越重的地區生態工業越好搞,污染越輕的地區生態工業越難搞”的理論怪圈。為了突破我國生態工業園區發展的瓶頸,課題組提出了產品代謝分析方法。這一方法集中研究產品生產過程中的物質和能量流動規律,尋找從源頭削減污染物產生的途徑,提出從產品鏈、關鍵環節和成因分析產品的代謝過程,從生產工藝流程和產品群的最佳組合,從元器件到半成品到成品的物質減量等方面辨識補鏈技術、提出改善措施,建立了基于中國國情的一種新的生態工業分析方法。打破了“污染越重的地區生態工業越好搞,污染越輕的地區生態工業越難搞”的理論怪圈,并在幾十個城市的循環經濟發展及生態工業園區規劃中得到了應用。專家點評:
在課題研究中,我們發現,當前,包括發達國家在內,各國的物質消費總量都還在不斷攀升,物質需求的無限性與地球資源的有限性之間存在天然矛盾。
物質消費的臺階技術將極大地推動人類文明發展,如過去沒有石油,主要能源是木炭和煤炭,石油出現后,隨之而來的是汽車等現代大工業。在過去的幾十年內,人類社會沒有出現新的類似臺階式技術,我們不能預測今后會出現哪一種具體的臺階式技術,但是可以預測今后一定會出現這一類臺階技術。一旦出現,人類物質消費總量還要增加,必將對污染控制提出新要求。為了落實環境優化增長,當前要回答五個問題:過去20年我國結構調整污染預防消減了多少污染物?僅依靠末端控制我國能否實現主要污染物消減目標?如果不能,結構調整和循環經濟等預防性措施應該對主要污染物消減目標承擔多大份額?有哪些相應的技術途徑?我國應該采取什么樣的政策手段?
循環經濟發展需要多樣人才
課題組利用研究得到的產品代謝分析方法,首次對我國半導體工業整體的硅元素利用效率和能源利用效率進行了定量研究,不但發現我國半導體工業的硅元素和能源利用率極低,而且揭示了該行業污染嚴重,并非是清潔工業。
段寧說,半導體工業是信息產業的基礎和核心,影響面廣,后續產業鏈長。但從硅石開采到生成硅片整個產品代謝過程,2002年我國半導體硅元素利用效率僅為2.6%%,不足1998年世界
平均水平的1/3。其中,工業硅生產多晶硅環節,硅元素利用效率僅為世界平均水平的1/2;能源利用率不足國外的1/2。
課題組還發現,硅元素生產分成單晶硅和多晶硅環節,單晶硅生產污染大,附加值低,多晶硅生產正相反。我國缺乏多晶硅的生產能力,把生產出的大量單晶硅出口到歐美、日本等發達國家,再把這些國家利用我國出口的單晶硅生產的多晶硅進口回來,不但消耗了能源,廉價出售了資源,還把大量污染留在了國內,造成了經濟損失。專家點評:
如何發展循環經濟,如何使得資源效率利用率提高,并循環起來,目前在學術界相對而言,口號和概念更多一些,理論、方法和途經少。循環經濟是一門包括經濟學、管理學、制度學等其他學科在內的綜合科學,下一步該怎么走?必須有經濟、物理、化學和工程界的各種人才都投入到其研究中來。
■攻關動態