欢迎来到天天文库
浏览记录
ID:13754732
大小:44.50 KB
页数:8页
时间:2018-07-24
《c语言研究性学习的路线》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言研究性学习的路线(4)分类: C语言研究性学习的路线2011-09-2110:49 146人阅读 评论(0) 收藏 举报 C语言研究性学习的路线现行的多数C语言教材有太多的误区,不仅不能给读者提供有效的学习线索,还常常“误导”读者,于是,“死记硬背”便成了学习C语言的唯一选择。本文以拙作《新编C语言程序设计教程》(清华大学出版社出版,配套视频zeq126.56.com)为基础,探讨了C语言的研究性学习。C语言的知识点有:1. C语言与计算机的关系2. 表达式的求值3. 逻辑运算及选择结构4. 算法及循环结构5
2、. 数组的作用及准确理解6. 函数的作用及准确理解7. 指针的作用及准确理解8. 自定义数据类型及文件这几部分相辅相成,构成了一个有机的整体。分析如下:四、算法及循环结构/*前言这注定又是……的一章。算法的精髓是“循环”,而构造循环的能力只能在一次次的分析、编码、调试、对比、思考中培养。除了一道道的演示,我实在想不出其它的办法可以“速成”,毕竟如表达式求值似的总结个一二三四的速成法仅适用于“知识”。关于编程,有的人似乎“天生”就会,有的人可能“上手”较慢,所幸正如武侠书中的演绎,并非“上手”越快就一定走得越远。*/
3、(一)再谈算法多次指出,编写程序的过程为:分析问题,得到解决问题的步骤,最后把步骤“翻译”成相应的语句。解决问题的步骤就是算法。问题的解法可能有多种,行之有效的方法通常与欲使用的工具相关,也就是说,必须结合工具的特点思考问题的解法。计算机解决问题主要靠循环!运用循环的熟练程度直接反映了一个程序员的编程水平。毫不夸张地说,思考问题的解法就是考虑“如何构造循环”。循环是有条件的重复,是“螺旋式上升”,是“波浪式前进”。(二)while循环结构重点:1. while循环结构的形式。 其与if结构有何异同?(从形式、执行过程、流程图)2. while循环结构的特点。while
4、循环结构的循环体执行多少次?(再次强调由循环控制表达式决定)如何使用while循环结构输出五个*号?(由具体示例展开,总结while循环结构使用的3个特点:设置循环变量的初值、决定循环控制表达式、调整循环变量的值)由例5-1熟悉不同while循环结构的执行情况。(循环次数固定的,输出’A’至‘Z’;循环次数不定的,(1.0/i>1.23e-3),体会作用“求出了倒数小于0.00123的最小整数”,注意循环执行完毕后循环变量的值;复杂的循环,含有switch结构。可结合循环结构使用特点)难点:while循环结构的用法。(关键在于如何得到“重复”的过程)例5-2求1+2+3
5、+…+100的和。1. 先计算1+2+3+4+5,总结规律:“重复算加法”,加数为“上一次的和”与“一个新的加数”。如何使用while循环结构来模拟这个过程呢?加到何时为止?新的加数大于5为止,因此循环控制表达式为i<=5(i代表新的加数),循环体为sum=sum+i(sum为上一次的和)。2. 尝试写程序。3. 分析执行过程,并与列式计算过程对比,体会两者的共同之处。例5-3输出一个正整数各位上的数字和。1.以2325为例,2+3+2+5=12,本质上也是“重复算加法”,但此例与例5-2有何不同?新的加数为“各位上的数字”,没有规律,需要在加之前求出它。(考虑是从左
6、向右算呢,还是从右向左算?)加到何时为止?“加完”为止,即新的加数为0时为止,因此“新的加数为0”可以作为循环控制的条件。当然此时就可写出程序了。如果再想“什么情况下新的加数为0?”,则经过深入分析可以得到“简洁”的程序。2.尝试写出程序。3.分析执行过程,体会程序中每条语句的作用。体会如何让循环“螺旋式上升”,“波浪式前进”。(在下次循环之前先做好准备,“恢复状态”,此例为“去掉”加过的数字。)例5-4 百僧分百馍1. 总共有多少种可能?对于每种情况,处理方式相同吗?(本质也是重复)2. 尝试写出并分析程序的执行情况。3. 体会用计算机解决问题的特点。(一个一个地试
7、。美其名曰“穷举法”)4. 这个程序在理论上有问题。(应确保小僧的人数为3的倍数,即需同时保证(100-i)%3==0为真)(三)for循环结构为了使循环结构更紧凑,更优雅,C语言提供了for循环结构。重点:1. for循环结构的一般形式。(典型循环结构的3个特点与for循环结构的对应关系。理解了对应关系自然也就弄懂了for循环结构。)2. for循环结构的特点。(表达式1和表达式2可以为逗号表达式。表达式省略后应如何理解)难点:虽然同样为构造循环,同样为“找重复”或“穷举”,但是此处示例的难度有所增加。例5-6输出100以内奇数之和
此文档下载收益归作者所有