版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向过程的程序设计与流程图王 璐中原工学院计算机学院2013-2程序设计的基本方法 面向过程的程序设计上学期的内容 面向对象的程序设计本学期的内容面向过程的程序设计方法 在二十世纪六七十年代,Yourdon E. 和 Constantine L. 等人借鉴工厂利用流水线组织生成的方法,提出了结构化程序开发技术,自顶向下、逐层细化地将系统分解成层级结构的模块,每个模块实现为一个函数或过程。从功能的角度分析问题,将待解决的问题分解成若干个功能模块,每个功能模块描述一个操作的具体过程。面向过程的程序设计方法 数据和过程分离 程序运行时,输入的数据从一个过程流向下一个过程,这好比流水线上的生产资料和半
2、成品从一个工段到下一个工段。功能功能输入数据输入数据输出数据输出数据面向过程的程序设计方法 程序控制结构BA (顺序)APB真假(选择)PA假真(循环)面向过程的程序设计方法 编程思想的描述流程图(P36)N-S图(P36)伪代码自然语言步骤 根据编程思想的代码实现必须熟练掌握c/c+语言的基本语法面向过程的程序设计方法 需要掌握的c/c+基本语法数据数据类型基本数据类型数组、结构、共用体、枚举、指针、引用常量与变量作用域和生存期处理数据运算符和表达式流程控制函数面向过程的程序设计方法优点:能有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。缺点:可重用性差
3、、难以开发大型软件把数据和处理数据的过程分离为相互独立的实体,当数据结构改变时,所有相关的处理过程都要进行相应的修改。程序=(算法)+(数据结构)“自顶向下”的设计方法 自顶向下的方法是从全局走向局部、从概略走向详尽的设计方法。自上而下是系统分解和细化的过程。 【例】编算法找出1000以内所有完数 找出1000之内的所有完数,并按下面格式输出其因子:28 its factors are 1,2,4,7,14。理解问题:理解问题:例如,例如,2828的因子为的因子为1 1、2 2、4 4、7 7,1414,而,而28=1+2+4+7+1428=1+2+4+7+14。因此因此2828是是“完数完数
4、”。 这里不是要质因数,所以找到因数后也无需将其从这里不是要质因数,所以找到因数后也无需将其从数据中数据中“除掉除掉”。 每个因数只记一次,如每个因数只记一次,如8 8的因数为的因数为1 1,2 2,4 4而不是而不是1 1,2 2,2 2,2 2,4 4。(注:本题限定因数不包括这个数本。(注:本题限定因数不包括这个数本身)身)流程图分析(1)开始依次测试每个数是否为完数输入待测试数的范围n=1000按格式输出完数结束测试第i个数是否为完数令i=1(从第一个数开始)i=n是完数?按格式输出该数YNYNi+流程图分析(2)从1到i-1测试是否i的因子如果是,求和若和等于i,则是完数令j=1j能
5、否整除i记录j,计算和值sumji?j+YNYsum=i?Y是完数Nfor(i=1;i=n;i+) 从流程图到代码 void main() 开始输入待测试数的范围n=1000结束令j=1j能否整除i记录j,计算和值sumji?j+YNYNsum=i?Y令i=1(从第一个数开始)按格式输出完数ii=nNYNi+for(j=1;ji;j+) if(i%j)=0)1)顶层算法 for(i=1;i=n;i+)判断i是否是“完数”;是完数则按格式输出;2)判断是否是”完数” 的算法for(j=1;ji;j+) 找i的因子,并累加;如果累加值等于i,i是完数伪代码(语言)分析(1)3)进一步细化判断i是否
6、“完数”算法s=1for(j=1;ji;j=j+1) if (i%j=0) (j是i的因子) s=s+j;if (s=i) i是“完数”;伪代码(语言)分析(2)4 4)考虑输出格式)考虑输出格式判断判断i i是否是否“完数完数”算法算法 考虑到要按格式输出结果,应该开辟数组存储数据考虑到要按格式输出结果,应该开辟数组存储数据i i的所有因子,并记录其因子的个数,因此算法细化如下:的所有因子,并记录其因子的个数,因此算法细化如下:定义数组定义数组a,s=1; k=0;for(j=2;ji;j=j+1)j=2;ji;j=j+1) if (i%j=0) (j if (i%j=0) (j是是i i的
7、因素的因素) ) s=s+j; ak=j;k=k+1;s=s+j; ak=j;k=k+1;if if (s=is=i) 按格式输出结果按格式输出结果 伪代码(语言)分析(3)代码如下:代码如下:void main( ) int i,k,j,sum,a20; for(i=1;i=1000;i+) sum=1; /*两个赋初值语句两个赋初值语句s=1,k=0 k=0; 一定要位于外部循环的内部一定要位于外部循环的内部*/ for(j=2;ji;j+) if (i%j)=0) sum=sum+j; ak=j; k+; if(i=sum) printf(“%d its factors are : 1”
8、,i); for(j=0; jk; j+) printf(“, %d”,aj); 程序设计实例 第一学期C+期末考试题编程求一个字符串的长度函数int GetStrlen(char * str),其中str是个有效字符串,不得使用库函数strlen。(6分)编程求100以内(包括100)的偶数之和。(6分)输入一行文字,统计其中的大写、小写字母、空格、数字以及其他字符各是多少。(8分)有n个学生,每个学生有3门课的成绩(计算机、英语、数学),从键盘输入以上数据(包括学生号、姓名、三门课成绩),将原有数据和计算出的平均分数保存到磁盘文件“stud”中(二进制方式)。(10分) 作业 画出以下问题
9、的算法流程图,然后根据流程图写出代码为加强居民节水意识,某市制定了以下生活用水收费标准:每户每月用水未超过7m3时,每立方米收费1.0元,并加收0.2元的城市污水处理费;超过7m3的部分,每立方米收费1.5元,并加收0.4元的城市污水处理费。请你写出某户居民每月应缴纳的水费y(元)与用水量x(m3)之间的函数关系,然后设计一个求该函数值的算法,画出程序框图。P70(9);P98(10);P159(8);P277(5)。从面向过程到面向对象 全新的思路面向对象程序设计将数据和对数据的操作放在一起,作为一个相互依存、不可分割的整体来处理。它将对象和对象的操作抽象成类这一新的数据类型,并考虑不同对象之间的联系和对象间的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年吕梁地区社区工作者招聘笔试模拟试题及答案解析
- 2026四川广安市邻水县面向社区专职网格员考核招聘社区工作者16人农业考试备考试题及答案解析
- 2026贵州省残疾人联合会直属事业单位第十四届贵州人才博览会引才14人农业考试备考题库及答案解析
- 2026年合肥市第一人民医院公开招聘工作人员农业笔试模拟试题及答案解析
- 项目三教案2 设置单元格格式
- 2026春季学期广东中山市港口镇招聘公办中学编外教师1人农业考试备考题库及答案解析
- 2026中国电信营业厅招聘营业员、业务员22人农业考试参考题库及答案解析
- 2026河北医科大学招聘13人农业笔试备考题库及答案解析
- 宁波交通投资集团有限公司2026年第一批统筹招聘24人农业考试备考试题及答案解析
- 2026浙江丽水市雷博劳动事务代理有限公司招聘综合岗员工1人农业笔试备考试题及答案解析
- 《强制换羽》课件
- 重症的生理病理
- 船员培训体系优化
- 设备安装应急应对预案
- DL∕T 1987-2019 六氟化硫气体泄漏在线监测报警装置技术条件
- 《水利水电勘测设计单位安全生产标准化评审规程》
- 2024年黑龙江省绥化市中考语文真题(解析)
- 探究让语文向课堂深处漫溯-品 评 《周文福〈陈情表〉课例》
- 特种设备安全风险分级管控与隐患排查治理体系建设指导手册
- 上海铁路局招聘2024高校毕业生529人历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 《并购与重整》课件
评论
0/150
提交评论