程序设计方法学03

程序设计方法学03

ID:37700473

大小:293.21 KB

页数:12页

时间:2019-05-29

程序设计方法学03_第1页
程序设计方法学03_第2页
程序设计方法学03_第3页
程序设计方法学03_第4页
程序设计方法学03_第5页
资源描述:

《程序设计方法学03》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、天津师范大学计算机与信息工程学院硕士研究生课程讲义程序设计方法学第三章:结构化程序设计方法213.1结构化程序设计概述¢有关结构化程序设计的一些观点•结构化程序设计是指导我们编写程序的一般方法•结构化程序设计是一种避免使用GOTO语句的程序设计•结构化程序设计是自顶向下逐步求精的程序设计•结构化程序设计把任意规模和复杂度的流程图转化为一种标准形式,以便用迭代表示,并嵌套少数基本而标准的控制逻辑结构(顺序、选择、循环)•结构化程序设计是一种组织和编制程序的方法,利用它编制的程序易于理解和修改。•结构化程序设计是控制复杂

2、性的理论和训练方法•结构化程序设计的一个主要功能是使程序正确性证明易于实现3¢结构化程序设计的特征•模块化•自顶向下,逐步求精•自底向上¢模块化•把一个较大的程序划分为若干个子程序,每一个子程序总是独立成为一个模块;•每一个模块又可继续划分为更小的子模块;•程序具有一种层次结构;注:须先进行整体分析,避免边写边想42¢自顶向下•先设计第一层(顶层),然后步步深入,逐层细分,逐步求精,直到整个问题可用程序设计语言明确地描述出来为止•步骤:首先对问题进行仔细分析,确定其输入、输出数据,写出程序运行的主要过程和任务,然后从

3、大的功能方面把一个问题解决过程分成几个问题,每个子问题形成一个模块;•特点:先整体后局部,先抽象后具体5¢自底向上•先设计底层,最后设计顶层•优点:由表及里、由浅入深地解决问题•不足:在逐步细化的过程中可能发现原来的分解细化不够完善•注:主要用于修改、优化或扩充一个程序63例:求1到n之间的素数解:第第步一步:程序要做的工作就是从1开始依次对各数判断是否是素数,是则打印出来,否则继续往后找,直到n为止。于是,初步设想为:beginread(n);number:=2;whilenumber

4、erifnumber是一个素数thenwrite(number);thenwrite(number);number取下一个值;endend7第二步:细化“number是一个素数”及“number取下一个值”。(1)细化“number是一个素数”:“number是一个素数”这是一个布尔值,当number是一个素数时为true,否则为false。细化如下:K:=2;Lim:=number-1;repeatifnumber能被k整除thenprim:=falseelsebegink:=k+1;prim:=true;end;

5、untilnot(prim)or(kuntilnot(prim)or(k达到lim);(2)细化“number取下一个值”:number:=number-1;84第三步:细化“number能被k整除”及“k达到lim”。(1)细化“number能被k整除”:numbermodk=0;numbermodk=0;(2)细化“k达到lim”:kÅlim;第四步:补充完整程序。第五步:从所有的素数(除2之外)都是奇数的角度来优化程序9¢程序设计步骤:•1)分析问题–对要解决的问题,首先必须分析清楚,明确题目的要求,列出所有已

6、知量,找出题目的求解范围、解答精度等。•2)建立数学模型–找出问题的内在规律,建立数学模型。只有建立了模型,才有可能利用计算机来解决。•3)选择算法–建立数学模型后,还必须根据数据结构,选择解决问题的算法¢算法的逻辑结构尽可能简单;¢算法所有求导存储量应尽可能少;¢避免不必要的循环,减少算法的执行时间;¢在满足题目条件要求下,使所需计算量最小。105•4)编写程序–把程序看作一个整体,先全局后局部,自顶向下,一层一层分解处理,如果某些子问题的算法相同而仅参数不同,可以用子程序来表示。•5)调试运行•6)分析结果•7)

7、编写程序文档–主要对程序中的变量、函数或过程作出必要的说明,解释编程思路,绘制程序框图,讨论运行结果等11例1:输入奇数n,计算并输出n位的魔方阵说明:1)魔方阵就是n*n个不同的正整数按方阵排列时,它的每一行,每每列以一列以及沿对角线的几个数值和具有同一性质的方阵。2)由1到n*n个自然数构成的魔方阵是最基本的,又称为“幻方”,这种方阵的每行、每列和每个对角线上的元素的和全部相等,亦即等于一个常数。该常数是n(n*n+1)/2。3)方法:首先确定1的位置,通常放在第一行的中间位置;然后在当前自然数的右上方放下一个自

8、然数;如果当前自然数在第一行但不再最右侧,则下一个自然数的右上方放下一个自然数;如果当前自然数在第一行但不再最右侧,则下一个自然数在最后一行,列数右移一列;如果当前自然数在第一行最右侧,则下一个自然数在当前自然数的下侧;如果当前自然数在其他行当最右侧,则下一个自然数在上一行的最左侧。126例2:任何一个整数的立方都可以写成一串奇数之和说明:1)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。