大一上学期第10章 程序设计基础

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

12
3.排序算法 . 所谓排序, 所谓排序,就是将一组数据元素按照某个关键字 递增或递减的次序排列起来。 递增或递减的次序排列起来。 (1)选择排序 )选择排序(Selection Sort) 选择排序法的实现过程是: 选择排序法的实现过程是:首先找出表中关键字 最小的元素,将其与第一个元素进行交换,然后, 最小的元素,将其与第一个元素进行交换,然后, 再在其余元素中找出关键字最小的元素, 再在其余元素中找出关键字最小的元素,将其与 第二个元素进行交换。依次类推, 第二个元素进行交换。依次类推,直到将表中所 有关键字按由小到大的顺序排列好为止。 有关键字按由小到大的顺序排列好为止。
5
10.2.3 算法的评价 1.算法评价标准 . (1)正确性。 )正确性。 (2)可读性。 )可读性。 (3)通用性。 )通用性。 (4)高效率。 )高效率。 2. 算法效率的度量 (1)时间度量 ) (2)空间度量 )
6
10.2.4 算法的描述 1. 用传统的流程图描述算法 传统的流程图是用一些几何框图、 传统的流程图是用一些几何框图、 流程线和文字说明表示各种类型 的操作。一般用矩形框表示进行 的操作。 某种处理,有一个入口, 某种处理,有一个入口,一个出 用菱形框表示判断, 口。用菱形框表示判断,有一个 入口,两个出口。 入口,两个出口。在框内写上简 明的文字或符号表示具体的操作, 明的文字或符号表示具体的操作, 用带箭头的流向线表示操作的先 后顺序。 后顺序。
7
2. 用结构化流程图描述算法 (1)程序的三种基本结构:顺序结 )程序的三种基本结构: 选择结构和循环结构。 构、选择结构和循环结构。 (2)结构化流程图(N-S图) )结构化流程图( 图
8
3.用伪代码描述算法 . 计算2+4+… +100并输出,设计算法并用 并输出, 计算 并输出 Visual Basic伪代码描述如下: 伪代码描述如下: 伪代码描述如下 0→sum 1→i Do While i≤100 If i/2的余数为 THEN sum+i→sum 的余数为0 的余数为 i+1→i Loop Print sum
16
10.3 程序设计语言
10.3.1 程序设计语言的分类
机 器 语 言 汇 编 语 言 高 级 语 言 面向对象 面向过程
17
1.机器语言(Machine language) .机器语言( ) 机器语言:机器指令的总称。 机器语言:机器指令的总称。 特点:繁琐冗长、不直观、容易出错、 特点:繁琐冗长、不直观、容易出错、程序不通 用。 2.汇编语言(Assembly language) .汇编语言( ) 用助记符表示的机器指令。 用助记符表示的机器指令。 特点:直观性增强了,但与机器指令一一对应。 特点:直观性增强了,但与机器指令一一对应。 3.高级语言( 3.高级语言(High level language) language) 高级语言: 高级语言:接近自然语言和数学表达式的一种语 言。 特点:直观、通用性,便于推广交流。 特点:直观、通用性,便于推广交流。 两种执行方式:编译方式和解释方式。 两种执行方式:编译方式和解释方式。
15
(2)折半查找 )
作为折半查找的表必须是顺序存储的有序表, 作为折半查找的表必须是顺序存储的有序表,即表采 用顺序结构存储,表中的元素按关键字值递增(或递减) 用顺序结构存储,表中的元素按关键字值递增(或递减) 排列。 排列。 假设表中的关键字值递增排列, 假设表中的关键字值递增排列,则折半查找的实现方 法是:首先取整个有序表的中间元素A 法是:首先取整个有序表的中间元素 m的关键字同给定 比较, 值x比较,若相等,则查找成功;否则,若Am的关键字小 比较 若相等,则查找成功;否则, 于x,则说明待查元素只可能落在表的后半部分中,接着 ,则说明待查元素只可能落在表的后半部分中, 只要在表的后半部分子表中查找即可; 只要在表的后半部分子表中查找即可;若 Am的关键字大 于x,则说明待查元素只可能落在表的前半部分中,接着 ,则说明待查元素只可能落在表的前半部分中, 只要在表的前半部分子表中查找即可。这样, 只要在表的前半部分子表中查找即可。这样,经过一次关 键字的比较,就缩小一半的查找空间,重复进行下去, 键字的比较,就缩小一半的查找空间,重复进行下去,直 到找到关键字为x的元素 或者表中没有待查元素( 的元素, 到找到关键字为 的元素,或者表中没有待查元素(此时 查找区间为空)为止。 查找区间为空)为止。
22
2.网络编程语言 . (1)Java语言 ) 语言 (2)脚本语言(Scripting Language): )脚本语言( ): JavaScript、VBScript、Perl、PHP。 、 、 、 。 3.科学计算语言:MATLAB .科学计算语言: 讨论: 讨论: 如何学习一种高级语言?如何选择高级语言? 如何学习一种高级语言?如何选择高级语言?
10
10.2.5 算法示例
1.迭代算法 . 迭代是一种建立在循环基础上的算法。在数学中, 迭代是一种建立在循环基础上的算法。在数学中, 迭代经常被用来进行数值计算,例如求方程的解, 迭代经常被用来进行数值计算,例如求方程的解, 不断用变量原来的值递推求新的值的过程。 不断用变量原来的值递推求新的值的过程。 讨论求若干个数之和或乘积的问题。 讨论求若干个数之和或乘积的问题。
18
高级语言程序的编译执行过程: 高级语言程序的编译执行过程:
编译程序工作过程: 编译程序工作过程
19
10.3.2 高级语言的基本特征 1.数据类型 . 各种高级语言都提供了丰富的数据类型, 各种高级语言都提供了丰富的数据类型,这些数据 类型可以分为两大类:简单类型和构造类型。 类型可以分为两大类:简单类型和构造类型。其中 简单类型一般有整型、实型、字符型、逻辑型、 简单类型一般有整型、实型、字符型、逻辑型、指 针类型等,构造类型有数组类型、集合类型、 针类型等,构造类型有数组类型、集合类型、记录 类型、文件类型等。 类型、文件类型等。
4
10.2.2 算法的特性 (1) 有穷性。算法中执行的步骤总是有限次数的,不 有穷性。算法中执行的步骤总是有限次数的, 能无止境地执行下去。 能无止境地执行下去。 (2) 确定性。算法中的每一步操作必须具有确切的含 确定性。 不能有二义性。 义,不能有二义性。 (3) 有效性。算法中的每一步操作必须是可执行的。 有效性。算法中的每一步操作必须是可执行的。 (4) 要有数据输入。算法中操作的对象是数据,因此 要有数据输入。算法中操作的对象是数据, 应提供有关数据。 应提供有关数据。 (5) 要有结果输出。 要有结果输出。
11
2.穷举算法 . 穷举法也叫枚举法, 穷举法也叫枚举法,它的基本思路是对众多可能 按某种பைடு நூலகம்序进行逐一枚举和检验, 解,按某种顺序进行逐一枚举和检验,并从中找 出那些符合要求的可能解,作为问题的解。 出那些符合要求的可能解,作为问题的解。穷举 的计算量是相当大的,但对于计算机来说, 的计算量是相当大的,但对于计算机来说,做起 来很容易。穷举算法是一种重要的算法设计策略, 来很容易。穷举算法是一种重要的算法设计策略, 可以说是计算机解题的一大特点。 可以说是计算机解题的一大特点。 求方程x+2y+5z=100的整数解。 的整数解。 求方程 的整数解
20
2.运算与表达式 . (1)常量 ) (2)变量 ) (3)表达式 ) 3.语句 . (1)赋值语句 ) (2)输入输出语句 ) (3)程序的控制结构语句 ) 4.子程序、函数与过程 .子程序、
21
10.3.3 常用高级语言 1. 传统高级语言 语言: (1)FORTRAN语言:FORTRAN 66、 ) 语言 、 FORTRAN 77、FORTRAN 90。 、 。 语言: (2)BASIC语言:BASIC、Visual Basic、Visual ) 语言 、 、 Basic .NET。 。 (3)PASCAL语言 ) 语言 语言: 、 (4)C语言:C、C++、C#。 ) 语言 、 #。 (5)COBOL语言 ) 语言
2
程序设计的基本步骤: 程序设计的基本步骤: (1)分析问题,确定数学模型或方法。 分析问题, 分析问题 确定数学模型或方法。 (2)设计算法,画出流程图。 设计算法, 设计算法 画出流程图。 (3)选择编程工具,按算法编写程序。 选择编程工具, 选择编程工具 按算法编写程序。 (4)调试程序,分析输出结果。 调试程序, 调试程序 分析输出结果。
9
10.2.5 算法示例 1.迭代算法 . 迭代是一种建立在循环基础上的算法。在数学中, 迭代是一种建立在循环基础上的算法。在数学中, 迭代经常被用来进行数值计算,例如求方程的解, 迭代经常被用来进行数值计算,例如求方程的解, 不断用变量原来的值递推求新的值的过程。 不断用变量原来的值递推求新的值的过程。 讨论求若干个数之和或乘积的问题。 讨论求若干个数之和或乘积的问题。
13
(2)冒泡排序 )冒泡排序(Bubble Sort) 冒泡法排序法是每趟将相邻的两个数两两进行比 若满足升序次序,则进行下一次比较, 较,若满足升序次序,则进行下一次比较,若不 满足升序次序,则交换这两个数,直到最后。 满足升序次序,则交换这两个数,直到最后。总 的比较次数为n-1次 此时最后的元素为最大数, 的比较次数为 次,此时最后的元素为最大数, 此为一趟排序。接着进行第二趟排序,方法同前, 此为一趟排序。接着进行第二趟排序,方法同前, 只是这次最后一个元素不再参与比较, 只是这次最后一个元素不再参与比较,比较次数 为n-2次,依次类推。 次 依次类推。
14
4.查找算法 . 查找是根据给定的某个值, 查找是根据给定的某个值,在查找表中确定一个 其关键字等于给定值的数据元素, 其关键字等于给定值的数据元素,若表中存在这 样的数据元素,称此查找是成功的。 样的数据元素,称此查找是成功的。若表中不存 在关键字等于给定值的数据元素, 在关键字等于给定值的数据元素,称此查找是不 成功的。 成功的。 (1)顺序查找 ) 顺序查找是最常用的查找方法,其查找过程为: 顺序查找是最常用的查找方法,其查找过程为: 从第一个元素起, 从第一个元素起,逐个将给定值与数据元素的关 键字进行比较, 键字进行比较,若某个元素的关键字与给定值相 则认为查找是成功的,否则,查找失败。 等,则认为查找是成功的,否则,查找失败。
23
10.4 程序设计方法
10.4.1 结构化程序设计 结构化程序设计采用自顶向下、 结构化程序设计采用自顶向下、逐步求精和模块 化的分析方法, 化的分析方法,从而有效地将一个较复杂的程序 系统设计任务分解成许多易于控制和处理的子程 便于开发和维护。 序,便于开发和维护。
第10章 程序设计基础 章
10.1 10.2 10.3 10.4 程序设计的概念 算法 程序设计语言 程序设计方法
1
10.1 程序设计的概念
程序:是解题方法和步骤的描述, 程序:是解题方法和步骤的描述,是供计算机执行 并能完成特定功能的指令序列。 并能完成特定功能的指令序列。 程序的核心:数据结构和算法。 程序的核心:数据结构和算法。 程序设计( ):先对问题进行分析并 程序设计(Programming):先对问题进行分析并 ): 建立数学模型,然后考虑数据的组织方式和算法, 建立数学模型,然后考虑数据的组织方式和算法, 并用某一种程序设计语言编写程序,最后调试程序, 并用某一种程序设计语言编写程序,最后调试程序, 使之运行后能产生预期的结果。 使之运行后能产生预期的结果。
3
10.2 算 法
10.2.1 算法的概念 计算机解决问题的方法和步骤, 计算机解决问题的方法和步骤,就是计算机解题 的算法(Algorithm)。 的算法 。 算法举例: 算法举例: (1) 将两个变量的值互换 。 ) (2)欧几里德(Euclid)算法求两个正整数 和 )欧几里德( )算法求两个正整数m和 n的最大公约数。 的最大公约数。 的最大公约数 枚铜币, (3)非数值计算算法:有9枚铜币,其中有 枚略 )非数值计算算法: 枚铜币 其中有1枚略 轻的是假币, 轻的是假币,用一台没有砝码的天平将假币找出 来,应怎样找称 。
相关文档
最新文档