C语言程序设计基本方法.ppt

C语言程序设计基本方法.ppt

ID:39868232

大小:799.00 KB

页数:54页

时间:2019-07-13

C语言程序设计基本方法.ppt_第1页
C语言程序设计基本方法.ppt_第2页
C语言程序设计基本方法.ppt_第3页
C语言程序设计基本方法.ppt_第4页
C语言程序设计基本方法.ppt_第5页
资源描述:

《C语言程序设计基本方法.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、高级语言程序设计(一)(CProgramming)第三讲:程序设计方法-问题分析本章目标了解一般程序设计过程通过实例重点掌握问题分析方法精度计算;输入数据处理;字符串操作程序设计过程程序设计过程就是解决问题的过程。程序设计通常包括如下五个步骤:问题分析编码算法设计程序设计步骤测试调试有问题无问题分析问题:功能:需要弄清楚软件要完成的功能;输入:如果问题有输入,分析输入是什么及输入数据的类型;处理:对输入数据做什么处理;输出:如果有输出,输出什么数据及输出数据的格式;对于复杂问题,可将问题分解为若干子问题,然后再进行上面的分析。算法设计:设计解决问题

2、的具体方案(步骤)。编码:将算法用高级语言实现。测试:运行编译连接后得到的执行程序,以验证程序是否按要求解决了问题,并没有产生副作用。即程序是否做了该做的事,同时没有做不该做的事。调试:如果程序经测试发现问题,则通过调试手段找到产生错误的代码并修复它。算法任何计算问题的解决都是按指定的顺序执行一系列动作的结果。解决问题的步骤(动作及动作之间的顺序)称为算法(algorithm)。算法表示算法既可以用自然语言表述(如前),也可用用半结构化语言或结构化图形表示,如:read学生成绩值if成绩值>=60print“Pass”elseprint“Fail”

3、读学生成绩值成绩值>=60输出”Fail”输出”Pass”真假流程图问题3.1:计算e值【问题描述】e(自然对数)值计算公式为1+1/1!+1/2!+…+1/n!。输入一个整数n(0<=n<=30),计算相应e近似值。【输入形式】从控制台输入整数n(0<=n<=30)。【输出形式】控制台输出计算结果,要求小数点后保留10位。【样例输入1】12【样例输出1】2.7182818283【样例输入2】13【样例输出2】2.7182818284问题3.1:问题分析输入:一个整数(整型);处理:计算公式1+1/1!+1/2!+…+1/n!;输出:以%.10f格

4、式输出(小数后保留10位)变量:一个整型变量,用于存储所读入的整数,如,intn;一个双精度浮点变量(Why?),用于存储计算结果,如doublee;问题3.1:算法设计解决问题3.1的解决过程(算法一):设计算结果保存在变量e中;读入一个整数到变量n;for(i=0;i<=n;i++)e=e+1/i!;输出e值;e=1+1/1!+1/2!+…+1/n!问题3.1:代码实现#includeintfact(intn){intf,i;f=1;for(i=2;i<=n;i++)f*=i;returnf;}intmain(){intn,i

5、;doublee=0.0;scanf("%d",&n);for(i=0;i<=n;i++)e+=1.0/fact(i);printf("%.10f",e);return0;}问题3.1:测试测试数据的考虑首先选取输入数据区间(0<=n<=30)的正常值,如问题3.1中所提供的输入样例;输入:12期望(正确)输出:2.7182818283输入:13期望(正确)输出:2.7182818284选取输入数据区间边界附近的值,本例中可选取:n=0,期望输出:1.0000000000n=1,期望输出:2.0000000000n=30,期望输出:2.718281

6、8285问题3.1:常见问题分析以整型计算n!,即函数fact返回整数(观察现象whathappened?)n=13实际输出:2.7182818288(期望输出:2.7182818284)Why?如何调试?数据范围与精度int类型数据范围(对于IA32结构的计算机):-232-1-~232-1-1(即-2147483648~2147483647)12!

7、288010!362880011!3991680012!47900160013!1932053504(error!,溢出)(正确应为:6227020800)14!1278945280(error!,溢出)(正确应为:87178291200)问题3.1:修改后的程序#includedoublefact(intn){inti;doublef=1.0;for(i=1;i<=n;i++)f*=i;returnf;}intmain(){intn,i;doublee=0.0;scanf(“%d”,&n);for(i=0;i<=n;i++)e+

8、=1.0/fact(i);printf(“%.10f”,e);return0;}计算结果为float类型,即floate;

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

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

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