版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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前台招聘面试题及答案
- 室内装修美学设计方案
- 2025-2026 学年七年级 生物(粤教版)期中考试试卷及答案
- 2025 年大学公路观测(公路观测研究)试题及答案
- 2025 年大学工业机器人应用与维护(系统集成)试题及答案
- 2025 年大学管理学(公共管理(海关管理))试题及答案
- 2025四川省首都医科大学附属北京安贞医院南充医院(南充市中心医院)第二批引进高层次人才考核招聘2人考试笔试参考题库附答案解析
- 中国雄安集团有限公司2026校园招聘考试笔试参考题库附答案解析
- 2024-2025学年山西省朔州市怀仁市七年级(上)期末道德与法治试卷(含答案)
- 湖北省天门市陆羽高级中学2025-2026学年高一上学期12月月考生物学答案
- 2025年植物标本采集合同协议
- 2025天津市第二批次工会社会工作者招聘41人考试笔试参考题库及答案解析
- 2025湖北武汉市蔡甸区总工会招聘工会协理员4人笔试试题附答案解析
- 2026年企业出口管制合规审查培训课件与物项识别指南
- 胆管重复畸形健康宣教
- 2025秋人教精通版英语小学五年级上册知识点及期末测试卷及答案
- 校园反恐防暴2025年培训课件
- 2026年安徽城市管理职业学院单招职业技能测试模拟测试卷附答案
- 2025甘肃省水务投资集团有限公司招聘企业管理人员笔试备考题库附答案解析
- 2025山东壹通无人机系统有限公司暨三航无人系统技术(烟台)有限公司社会招聘笔试现场及笔试历年参考题库附带答案详解
- 2025年秋季学期国家开放大学《人文英语4》期末机考精准复习题库
评论
0/150
提交评论