版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 程序设计基础知识,主要内容: 1、程序设计概述(理解) 程序、程序设计语言等基本概念 程序设计的一般过程 如何学习程序设计 2、算法(熟悉) 3、结构化程序设计方法(了解),1.1 程序设计概述,一、概念: 1、程序(program):程序是为解决某一问题而编写的语句序列。通俗的说,将解决一个实际问题的具体操作步骤用某种计算机语言描述出来,就形成了程序。,2、程序设计(programming):设计、书写及检查程序的过程。包括分析问题、确定解决方法、设计程序结构,使问题内容或解题计划变为计算机能够接受的指令或语句序列的过程。,例如:判断输入的任意整数n能否被3整除,程序如下: main
2、() int n; printf(n enter a integer:); scanf(%d, ,3、程序设计语言:人与计算机打交道时交流信息的一类媒介和工具即计算机语言。 分类: (1)机器语言(machine language)计算机直接使用的二进制形式的程序语言或机器代码。 (2)汇编语言(assembler language)一种面向机器的用符号表示的低级程序设计语言。相当于机器指令的助记符号,与机器语言很接近。 add r1, 4 (3)高级语言:用接近自然语言和数学语言的语法符号描述基本操作的程序设计语言,4、其他概念 源程序:用户用高级语言编写的程序称为,C源程序文件名字后缀一般
3、必须为.c“。 程序加工:高级语言编写的程序,计算机不能直接执行,需要把这个程序转换成二进制代码的机器语言程序。这种转换过程称为程序加工。 汇编程序(assembler):将汇编语言程序翻译成机器语言程序的程序。 编译程序(compiler):把用高级语言写的源程序转换为相应的机器语言目标模块(object module)的程序。,二、程序设计的一般过程,用计算机解决问题的基本过程如图1.1所示: 对于简单问题,前三步可看作一步,即分析问题、设计算法。,程序设计的基本过程,(1)分析要解决的问题,明确任务。 即分析要处理的数据是什么,从哪里来,作怎样的处理,结果送往那里。 例如:求学生的平均成
4、绩。 分析该问题,明确它有三项功能: 输入学生成绩、求平均成绩、输出结果; 要处理的原始数据为:学生的成绩; 要进行的处理为:求平均; 结果为:平均值,送屏幕显示或保存于文件中。,(2)分析问题,建立数学模型,并选择合适的解决方案 例如:分析求平均成绩的处理过程,可以将数据的具体含义去掉,抽象为:计算一批数据的平均值。,(3)确定数据结构和算法 :数据结构及数据的组织方式,算法是对数据处理过程的具体描述。不同的数据结构对应不同的算法。 例如:有一堆盒子,上面有编号(设编号为两位数字),要查找某个编号的盒子,如何实现? 方法1:若该堆盒子已排成一队,则可以从第一个开始逐个比较,直至找到或找完为止
5、。 方法2:若该堆盒子已按编号排成多队,每一队的高位数字相同,则可以根据要找的盒子的高位直接确定他在那一队,然后在该队中再逐个查找。 由此可见,只有先确定了数据结构,才能设计相应的算法。,(4)编码:即编写程序 。 用某种计算机语言将上一步设计好的算法描述出来,就是程序。 可见,算法是编程的基础。 (5)调试程序:将源程序送入计算机,进行排错、试运行,调试的结果是得到一个能正确运行的程序。 通常,调试程序至少占整个程序设计工作量的一半。 (6)整理资料,交付使用,三、学习程序设计的方法,1、一讲、二练、三考 2、多读源程序、多编写程序、多上机调试 3、忌上课只听不记、忌“纸上谈兵”、忌课下不练
6、习 具体要求: 1、上课有重点、有选择的记 2、上机有准备:准备好课本、笔记、作业等 3、除课后习题必须全部解决外,多做一些二级考试的模拟题 4、做一个自己感兴趣的完整的程序(小项目),1.2 算法及其描述,一、算法: 对解决某一特定问题的操作步骤的具体描述。 广义的说,算法就是为解决一个问题而采取的方法和步骤。 程序算法十数据结构 就是说:“程序是在数据的特定的组织方式的基础上,对抽象算法的具体描述”。作为程序设计人员,在设计算法前,必须认真考虑和设计数据的组织方式,即数据结构;然后针对具体的数据结构设计相应的操作步骤,即算法。,二、算法特性 1.有穷性 操作步骤是有限的,且有合理限度 2.
7、确定性 每个步骤都是确定的,不能是含糊摸棱两可的 3.有零个或多个输入 在执行算法时需要从外界取得必要的信息 4.有一个或多个输出 算法的目的是为了输出,没有输出的算法是没有意义的 5.有效性 算法中的每个步骤都应当能有效执行,并得到确定的结果,三、算法的描述,描述算法的方法有多种,常用有: 自然语言(描述不够严格,限于简单问题) 流程图* (同一问题的流程图不唯一) N-S 图* (结构清晰,但难于修改) PAD图 (结构清晰,唯一性好) 伪代码* (灵活,但需要有一定的程序设计基础) 学习建议: 流程图或N-S图一定要熟练掌握,其他表示法不要求。,1、用自然语言描述 通俗易懂,但文字冗长,
8、易出现“歧义性”,且描述不够严格,故仅限于简单问题),例1. 1 计算任意长方形的面积。 分析: 要实现的功能有: 输入长和宽,计算面积,输出结果。 先定义数据结构:程序中要处理的数据有三个,即长、宽、面积,设分别用实型变量length、width、area表示。则算法如下: 输入长和宽分别存入length, width 计算面积:lengthwidth = area 输出结果area,例1. 2 计算s1+s2+s3+s4+s5(其中si表示第i个数)。 分析:要实现的功能是“加法运算”,要输入的数据是s1s5,对其进行的运算是“加”,结果是“累加和”,并输出。 先定义数据结构: 设变量 s
9、 表示累计和,初值为0; 变量 x 表示每次要处理的数据(s1s5中的一个); 变量 i 表示要处理第几个数(其取值范围可以是:15),设初值为1。,例1.2算法,根据以上定义,算法设计如下: S1: 赋初值 0=s S2: 赋初值 1=i S3: 输入第i个数x S4: 累加:s+x=s S5: 计数增值:i+1=i S6: 若i5,表示数据还未处理完,返回 S3 继续重复S3、S4、S5;否则,计算结束,执行S7。 S7:输出结果 s。,例1. 3 判断任意整数是奇数还是偶数。 分析:设整型变量 n 表示要处理的整数, 则算法为: 首先输入n, 然后判断条件“n%2等于0”(%是求余运算符
10、)是否成立, 若条件成立,则输出“n是偶数”; 否则输出“n是奇数”。,2、用流程图表示算法,流程图是用几种图形、箭头线和文字说明来表示算法的框图。 流程图中规定使用的符号如图1.2所示 用流程图的优点是:直观形象、易于理解,能将设计者的思路清楚地表达出来,便于以后检查修改和编程。,结构化的流程图:即一个流程图由三种基本结构(顺序、选择、循环结构)组成,这三种基本结构可以相互嵌套,组合成复杂的算法。,注:P表示条件,A、B表示一个基本操作或一个基本结构。,例1. 1 计算长方形的面积(用流程图表示的算法如图1.4所示)。,例1. 2 判断任意整数是奇数还是偶数。,3. 用N-S图表示算法,用N
11、-S图表示的三种基本结构,当型循环:当条件P成立时反复执行A操作,直到条件不成立为止。 直到型循环:先执行A操作,若条件不成立继续执行A操作,若条件成立则退出循环。,例1. 3 计算长方形的面积 例1. 4 判断任意整数是奇数还是偶数 例1. 5 计算s1+s2+s3+s4+s5(其中si表示第i个数),1.3 结构化程序设计,结构化程序设计思想包括两个方面的内容: 模块化设计和结构化编码 特点: 结构化的程序结构清晰,层次分明,便于程序员编写、阅读和修改,提高了程序的可靠性,保证了程序的高质量、高效率。 为了得到结构化的程序,必须强调程序设计的规范化,采用结构化的程序设计方法。,1. 模块化
12、设计方法,模块化设计是指把一个大程序按人们能理解的大小规模进行分解。 其主要特点是: (1)模块间的接口关系比较简单,并且每个模块都是人的智力所能及的。 (2)各模块的功能比较单一,当需要修改某一功能时,一般只涉及到一个模块,不会影响到其他模块。 (3)人们可以脱离程序的上、下文也能单独地验证一个模块的正确性。 (4)在扩充系统或建立新系统时,可以充分利用已有的一些模块,用积木式的方法进行开发。,自顶向下,逐步细化。(常用) 其基本思想是:将一个复杂的大任务分解为若干个较小的任务,如果这些子任务还较复杂,再将其进行划分,直到每个任务都能很容易的实现其具体细节,然后“分而治之”,即分别实现各个小任务。这样,对一个大任务的处理就变成了对一个个小任务的实现,使问题变得相对简单了。例学生管理系统。 自顶向下、逐步细化的设计过程具有以下两个优点: (1)自顶向下、逐步细化的方法符合人们解决复杂问题的普遍规律,可以显著提高程序设计的效率; (2)用先全局后局部、先整体后细节、先抽象后具体的逐步细化过程设计出的程序具有清晰
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年芯片封装材料RoHS与REACH环保合规要求
- 2026年低空旅游地面保障条件:停机坪 机库 安检设施配置标准
- 2026年融资租赁服务减轻养老机构家庭用户机器人采购负担
- 2025年临床执业医师《妇产科》练习题
- 电商公司运营主管面试技巧
- 汽车行业研发部门高级工程师的面试指南
- 中国平安保险面试经验
- 餐饮行业食品安全管理与监督研究
- 房地产企业行政岗位面试全攻略
- 工业控制系统信息安全管理与防护策略研究报告
- GB/Z 132-2025航空航天电气要求套管和模缩套飞机用标准清单
- 2026年毛笔书法六级题库及答案
- 全屋定制培训课件
- 焊接作业现场应急处置方案
- 团播合作协议合同
- 派出所改造工程施工技术组织设计
- DB34∕T 5225-2025 风景名胜区拟建项目对景观及生态影响评价技术规范
- 2026年苏州工业职业技术学院单招职业技能测试必刷测试卷附答案
- 萨克斯独奏回家教案
- Unit5OldtoysPartBLet'stalkLet'slearn(课件)-人教PEP版英语三年级下册
- 津17SZ-9 天津市市政基础设施工程施工图设计审查要点 热力篇
评论
0/150
提交评论