欢迎来到天天文库
浏览记录
ID:39610324
大小:567.00 KB
页数:87页
时间:2019-07-07
《程序开发和结构化程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第九章程序开发和结构化程序设计良好的行文格式自顶向下逐步求精的程序设计技术受限排列组合——穷举法与试探法本章小结作业良好的行文格式程序的行文格式不好直接影响程序的可读性、清晰性和外观。/*A*/#includeinti;main(){i=25+38;printf(“25+38=%d”,i);}/*B*/#includeinti;main(){i=25+38;printf(“25+38=%d”,i);}/*C*/#includeinti;/*声明整型变量i*/intmain(void){/*主函数*/i=25+38;/*求和运算*/print
2、f(“25+38=%d”,i);/*打印*/}if(b)S1elseS2switch(expr){casea1:S1casea2:S2...casean:sn}/*switch*/图1函数定义图2IF语句图3SWITCH语句intmain(vido){DSDS...}/*main*/do{S}while(b)for(expr1;expr2;expe3){S}/*for*/while(b){S}/*while*/图4WHILE语句图5FOR语句图6DO语句用合适的助记名来命名标识符注释自顶向下逐步求精的程序设计技术自顶向下、逐步求精若想让计算机解题必须用清晰而无两义性的方式给它提供算法。要求:找
3、出一个算法,它能提供所解问题的从输入到输出所需的映象。选择一种程序语言写出程序,用计算机能接受的方式表述算法。关键是如何找出算法。因为写出程序,只是表述算法,应该没有困难。求解一个问题粗略的解决方案细化第一步子问题第二步子问题第n步子问题...前处理结束条件后处理进展一步前处理后处理条件处理1处理2处理n......条件条件条件前处理后处理递归条件递归顺序连接循环分支选择递归求精实例测定字母偶的出现频率三个齿轮啮合问题验证三角形外心定理编程序,测定字母偶的出现频率测定小写字符串中相邻字母偶出现频率。例如,针对thecat对th、he、ca、at计数。设有说明:intconmat[26][26
4、];字母偶he的出现次数存入下标变量conmat[‘h'-‘a’]['e'-’a’]首先把该问题分解成如下几步:1)初始化计数器数组conmat;2)统计每个字母偶的出现频率;3)输出统计结果。initial初始化statistical统计out输出求精上述PAD中的每一个步骤:初始化数组conmat,显然应该一行一行的初始化;对于每行又应该一个元素一个元素的初始化。初始化第c1行initial初始化for(i=0;i<26;i++)结束deffor(j=0;j<26;j++)conmat[i][j]=0考虑统计部分:假设被统计的字符串是从终端输入的,则显然我们应该把该字符串全部读入,并在读入
5、的过程中边读边统计。用下图表示。读(prevchar)statisticalwhile(!EOF)统计一次结束def读(thischar)再考虑具体统计算法,为统计字母偶的出现频率,显然在读入字符串的过程中应该始终保存两个字符prevchar、thischar,并且当该两个字符都是字母时,相应计数单元加1;最后在读入下一个字符之前还应该把保存的两个字符向前串。统计一次conmat[prevchar][thischar]++结束thischar,prevchar都是字母prevchar=thischar最后考虑输出部分,我们把结果输出成两个26×13的表,每个表元素是相应字母偶的出现次数:*ab
6、cde...mab...z*nopqr...zab...zoutone('a','m')输出a..m部分outone('n','z')输出n..z部分out输出结束def打印一个表(第一个表),显然应该先打印表头再打印下边各行打印表头打印表体outone结束beginch,endch打印表头可以求精成先输出一个“*”;再顺次输出各个字符。顺次输出各个字符是一个循环。打印表头打印表体outone结束beginch,endch输出('*')输出("")顺次输出各个字符for(c1=beginch;c1<=endch;c1++)输出(c1)打印表体应该一行一行的打印,每行应该先打印行头,再打
7、印本行各个元素;打印本行各个元素,应该一个元素一个元素的打印,是一个循环打印表体outone结束beginch,endch输出('*')输出("")for(c1=beginch;c1<=endch;c1++)输出(c1)for(c1=‘a’;c1<=‘z’;c1++)输出一行输出(c1)输出("")输出本行各个元素for(c2=beginch;c2<=endch;c2++)输出conm
此文档下载收益归作者所有