c语言选择界面循环控制方法小结

时间:2019-05-13 18:59:31下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《c语言选择界面循环控制方法小结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《c语言选择界面循环控制方法小结》。

第一篇: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 #include #include #include #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粒……第i格放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 # define CONST 1.42e8 void main(){ int n;double term,sum=0;for(n=1;n<=64;n++){ term=pow(2,n-1);sum=sum+term;} printf(“麦子总粒数sum=%en”,sum);printf(“麦粒体积volum=%e(立方米)n”,sum/CONST);} 用第二种方法分析得知,后项总是前项的两倍,于是得到累加项通式为:term=term*2,term的初值为1,即从第二项开始计算累加项term,并进行63次累加计算,所以有sum=sum+term,sum初值为1。一般情况下,sum的初值都置0,在此是因为事先将累加的第一项加到sum中,所以才有sum=1。用累乘trem=term*2计算通项,显然比直接计算2n-1的效率高得多,在程序设计中可经常使用这种技巧。用第二种方法设计的源代码如下:

# include # define CONST 1.42e8 void main(){ int n;double term=1,sum=1;for(n=2;n<=64;n++){ term=term*2;sum=sum+term;} printf(“麦子总粒数sum=%en”,sum);printf(“麦粒体积volum=%e(立方米)n”,sum/CONST);}

以上程序运行的结果为:

这种数值如此庞大,是舍罕王绝对没有预料到的,它相当于全世界若干世纪的全部小麦,看来舍罕王是无法兑现自己的诺言了!

2、马克思手稿中的数学问题。马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了30先令,每个男从各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几个人?

问题分析:设男人、女人和小孩各x、y、z人,按题目要求可得到下面的方程: x+y+z=30 3x+2y+z=50 两个方程有三个未知数,因此这是一个不定方程,有多组解,用代数方法很难求解,一般采用“穷举法”求解该类问题。所以“穷举法”(也称“枚举法”)就是将所有可能的方案都逐一测试,从中找出符合指定要求的答案。如果由人工来进行这样的求解过程,工作量不可想象,而由计算机来完成却十分简单。穷举法是计算机程序设计中最简单、最常用的一种方法,它充分利用了计算机处理速度高的特性。使用穷举

法的关键是要确定正确的穷举范围,过分扩大会导致程序运行效率的降低,过分缩小会遗漏正确的结果而导致错误。

方法一 采用三重循环穷举x、y、z的全部可能的组合。源代码如下:

# include void main(){ int x,y,z;printf(“ Man t Women tChildrenn”);for(x=0;x<=30;x++)for(y=0;y<=30;y++)for(z=0;z<=30;z++)if((x+y+z==30)&&(3*x+2*y+z==50))printf(“%3dt %5d t %8dn”,x,y,z);} 实际上,由于每个男人花3先令,所以在只花50先令的情况下,最多只有16个男人;同样,在只花50先令的情况下,最多只有25个女人,而小孩的人数可以由方程式x+y+z=30得到,因此可将需要穷举的范围缩小。

方法2 改进算法。

# include void main(){ int x,y,z;printf(“ Man t Women tChildrenn”);for(x=1;x<=16;x++)for(y=1;y<=25;y++){ z=30-x-y;if(3*x+2*y+z==50)printf(“%3dt %5d t %8dn”,x,y,z);} } 以上程序运行的结果为:

3、编程计算一元二次方程ax2+bx+c=0的根,a,b,c由键盘输入,其中a≠0。程序设计时,根据一元二次方程求根公式把所有的可能考虑进来,设计算法如下: # include # include # include # define EPS 1e-6 void main(){ float a,b,c,disc,p,q;printf(“Please input a,b,c:”);scanf(“%f,%f,%f”,&a,&b,&c);if(fabs(a)<=EPS)//测试a是否为0,避免发生除0错误

{ 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()的一般调用格式为:

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 # include void main(){ int m,i,k;printf(“请从键盘输入一个正整数:”);scanf(“%d”,&m);k=(int)sqrt(m);for(i=2;i<=k;i++){ if(m%i==0)

{ printf(“%d不是素数!n”,m);

goto end;

} } printf(“%d是素数!n”,m);end: printf(“程序结束!n”);} 方法二

用break语句实现的程序如下:

# include

# include void main(){ int m,i,k;printf(“请从键盘输入一个正整数:”);scanf(“%d”,&m);k=(int)sqrt(m);for(i=2;i<=k;i++)

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 # include void main(){ int m,i,k,flag=1;printf(“请从键盘输入一个正整数:”);scanf(“%d”,&m);k=(int)sqrt(m);if(m<2)//2以下的数不是素数 flag=0;for(i=2;i <= k && flag;i++)

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 void main(){ int m,i,flag=1;

} 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 void main(){ int aCount=0,bCount=0,cCount=0,dCount=0,eCount=0;//定义5个计数器并置0 char grade;printf(“请输入成绩等级字母,并以'#' 号结束:n”);grade=getchar();while(grade!='#'){

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 void main(){ int d1,d2;

} 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)对有些事物的控制要建立一定的模型,运用各种现代数学的手段,进行数量分析和模拟仿真。

第五篇:循环经济理论和方法研究

课题描述:循环经济理论和方法研究

点评专家:段宁(中国环境科学研究院副院长、国家清洁生产中心主任)

“个体的先进技术对于经济和社会等发展来说非常重要,但是整体理论和方法研究同样、甚至更为重要,因为这关系到对国家资源和环境等形势的整体客观把握,对基本形势的判断,避免战略,甚至是国策的失误。比如,过去各国科技之争的制高点之一在于如何更好、更高效地把不可再生的矿物质挖出来,提高其利用率。但现在不同了,发达国家科学研究的重点转向了如何把已经挖出来的物质资源回收再利用等。正是通过循环经济理论和方法等研究,使我们对当今国内外的总体形势有了一些新认识。”在明亮的会议室里,段宁语重心长地告诉记者,我国在循环经济领域与发达国家的差距不但没有缩小,反而在扩大。

三大定理构建理论框架

“随着科学技术的进步,人类物质代谢总规模的发展趋势是上升还是下降,各国科学家们长期以来重点研究和争论的这一问题,不仅是可持续发展的核心问题,也是关于发展循环经济的必要性和迫切性的基本理论问题。”段宁说,课题组在对国内外大量数据和事实广泛分析的基础上总结了过去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。

课题组还发现,硅元素生产分成单晶硅和多晶硅环节,单晶硅生产污染大,附加值低,多晶硅生产正相反。我国缺乏多晶硅的生产能力,把生产出的大量单晶硅出口到欧美、日本等发达国家,再把这些国家利用我国出口的单晶硅生产的多晶硅进口回来,不但消耗了能源,廉价出售了资源,还把大量污染留在了国内,造成了经济损失。专家点评:

如何发展循环经济,如何使得资源效率利用率提高,并循环起来,目前在学术界相对而言,口号和概念更多一些,理论、方法和途经少。循环经济是一门包括经济学、管理学、制度学等其他学科在内的综合科学,下一步该怎么走?必须有经济、物理、化学和工程界的各种人才都投入到其研究中来。

■攻关动态

下载c语言选择界面循环控制方法小结word格式文档
下载c语言选择界面循环控制方法小结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    PID控制小结

    PID控制小结 在PID参数进行整定时如果能够有理论的方法确定PID参数当然是最理想的方法,但是在实际的应用中,更多的是通过凑试法来确定PID的参数。 增大比例系数P一般将加快系......

    循环流化床锅炉发展趋势及控制设计

    大型循环流化床锅炉的仪表与控制系统 循环流化床锅炉具有高效、低污染、低成本等的特点,在目前被广泛的看好。 1996年,华电内江高坝电厂从芬兰引进的第一台100MW机组,2002年分......

    实验三LED指示灯循环控制

    实验三LED指示灯循环控制一、实验目的熟悉uVision4编译软件、掌握C51编程与调试方法二、实验原理实验电路原理图如教材219图A.34所示,图中8只LED指示灯接于P0口,切都有上拉电......

    Shell 循环语句用法小结

    在写shell脚本时,常常会用到循环语句。这里简单总结下常用的3种循环语句,以便以后能快速地参考写出,废话不说,开始demo: 1、for 主要用于:在以知序列里遍历元素 [plain] view pl......

    控制感染护理方法

    自动滚屏(右键暂停) 控制院内感染临床方法1 发布时间: 2008-7-11 16:56:30 被阅览数: 319 次 控制院内感染临床方法1 沈阳公安医院朱胚容整理 1.无菌持物钳的使用: 使用理念:以无菌......

    护理质量控制方法

    护理质量的控制方法 (一)护理部设专人分管质量管理,护理部下设护理质控组,专人负责全院护理质量控制。 (二)实行三级护理质控管理,三级护理质控组由护理部主任及科护士长、护士长组......

    厨房成本控制方法

    厨房成本控制方法 每个总厨都对自己酒店各款菜品的日销量有个大概的把握,每周的哪一天哪些菜会适当增减都是心中有数的。这样,在进货时就应该将原料控制在比实际需求量略多一......

    建筑工程成本控制方法

    青海亿远建设工程有限公司建筑工程 编制单位:青海亿远建设工程有限公司编制日期:成 本 控 制 管理办法 2014年10月20日 建筑工程成本控制方法 如何在同一项目实现更高的效益......