海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第二章 程序的灵魂—算法

语言《序设计 第2章程序的灵魂一算法 任课老师:彭金莲
第2章 程序的灵魂—算法 任课老师:彭金莲

本章要求 令算法的概念, 令算法的特性, 算法的表示方法:流程图,伪代码,计算机语 言,程序设计方法 程序设计方法。 上一页下一页 返回
上一页 下一页 返回 第2章 程序的灵魂—算法 计算机系彭金莲制作 本章要求 ❖ 算法的概念, ❖ 算法的特性, ❖ 算法的表示方法:流程图 ,伪代码 ,计算机语 言 ,程序设计方法。 ❖ 程序设计方法

第2章程序的灵魂一算法 令2.1算法的概念 2.2算法的举例 令2.3算法的特性 令2.4怎样表示一个算法 2.5结构化程序设计方法 上一页下一页 返回
上一页 下一页 返回 第2章 程序的灵魂—算法 计算机系彭金莲制作 第2章 程序的灵魂—算法 ❖ 2.1 算法的概念 ❖ 2.2 算法的举例 ❖ 2.3 算法的特性 ❖ 2.4 怎样表示一个算法 ❖ 2. 5 结构化程序设计方法

一个程序应包括以下两方面内容: (1)对数据的描述。在程序中要指 定数据的类型和数据的组织形式,即数 据结构( data structure) (2)对操作的描述。即操作步骤, 也就是算法( algorithnl) 数据是操作的对象,操作的目的是 对数据进行加工处理,以得到期望的结 果 上一页下一页 返回
上一页 下一页 返回 第2章 程序的灵魂—算法 计算机系彭金莲制作 ❖ (1)对数据的描述。在程序中要指 定数据的类型和数据的组织形式,即数 据结构(data structure)。 ❖ (2)对操作的描述。即操作步骤, 也就是算法(algorithnl)。 ❖ 数据是操作的对象,操作的目的是 对数据进行加工处理,以得到期望的结 果。 一个程序应包括以下两方面内容:

程序 数据结构十算法一程序 令程序=算法十数据结构十程序设计方法个语言 工具和环境 也就是说,以上4个方面是一个程序设计人员所应 具备的知识。 在这4个方面中,算法是灵魂,数据结构是加工对 象,语言是工具,编程需要采用合适的方法。算 法是解决“做什么”和“怎么做”的问题。程序 中的操作语句,实际上就是算法的体现 令我们的目的是使读者通过学习本书,能够知道 怎样编写一个C程序,并且能够编写出不太复 杂的C程序。 上一页下一页 返回
上一页 下一页 返回 第2章 程序的灵魂—算法 计算机系彭金莲制作 程序 ❖ 数据结构十算法一程序 ❖ 程序=算法十数据结构十程序设计方法个语言 工具和环境 ❖ 也就是说,以上4个方面是一个程序设计人员所应 具备的知识。 ❖ 在这4个方面中,算法是灵魂,数据结构是加工对 象,语言是工具,编程需要采用合适的方法。算 法是解决 “做什么” 和“怎么做”的问题。程序 中的操作语句,实际上就是算法的体现。 ❖ 我们的目的是使读者通过学习本书,能够知道 怎样编写一个C程序,并且能够编写出不太复 杂的C程序

2.1算法的概念 ☆做任何事情都有一定的步骤。这些步骤都是按 定的顺序进行的,缺一不可,次序错了也不行 令对同一个问题,可以有不同的解题方法和步骤 令例如,求1+2+3+..+100 令计算机算法可分为两大类别: ◆数值运算算法:数值运算的目的是求数值解,例如 求方程的根,求一个函数的定积分等,都属于数值 运算范围 令非数值运算算法。最常见的是用于事务管理领域, 例如图书检索、人事管理、行车调度管理等。 上一页下一页 返回
上一页 下一页 返回 第2章 程序的灵魂—算法 计算机系彭金莲制作 2.1 算法的概念 ❖ 做任何事情都有一定的步骤。这些步骤都是按一 定的顺序进行的,缺一不可,次序错了也不行。 ❖ 对同一个问题,可以有不同的解题方法和步骤。 ❖ 例如,求1+2+3+…+100 ❖ 计算机算法可分为两大类别: ❖ 数值运算算法:数值运算的目的是求数值解,例如 求方程的根,求一个函数的定积分等,都属于数值 运算范围。 ❖ 非数值运算算法。最常见的是用于事务管理领域, 例如图书检索、人事管理、行车调度管理等

2.2算法的举例 例2.1求1*2*3*4*5 可以用最原始的方法进行。 步骤1:先求1*2,得到结果2 步骤2:将步骤1得到的乘积2再乘以3,得到结果6 步骤3:将6再乘以4,得24 步骤4:将以再乘以5,得120。这就是最后的结果 令这样的算法虽然是正确的,但大繁琐。如果要求 1*2**1000,则要写999个步骤,显然是不可 取的。 上一页下一页 返回
上一页 下一页 返回 第2章 程序的灵魂—算法 计算机系彭金莲制作 2.2 算法的举例 ❖ 例 2.1 求1*2*3*4*5 ❖ 可以用最原始的方法进行。 ❖ 步骤1:先求1*2,得到结果2 ❖ 步骤 2:将步骤 1得到的乘积 2再乘以 3,得到结果 6。 ❖ 步骤3:将6再乘以4,得24。 ❖ 步骤4:将以再乘以5,得120。这就是最后的结果。 ❖ 这样的算法虽然是正确的,但大繁琐。如果要求 l* 2*… * 1000,则要写 999个步骤,显然是不可 取的

一种通用的表示方法 令可以设两个变量,一个变量代表被乘数,一个变量 代表乘数。不另设变量存放乘积结果,而直接将每 步骤的乘积放在被乘数变量中 令设p为被乘数,i为乘数。用循环算法来求结果。可 以将算法改写如下: & SI ● 使使使 p 1 S3:使p*i, 乘积仍放在变量P中,表示为 米 >p 令S4:使i的值加1,即i+1>i S5:如果i不大于5,返回重新执行步骤S3以及其后 的步骤S4和S5;否则,算法结束。最后得到P的值 就是5!的值。 上一页下一页 返回
上一页 下一页 返回 第2章 程序的灵魂—算法 计算机系彭金莲制作 一种通用的表示方法 ❖ 可以设两个变量,一个变量代表被乘数,一个变量 代表乘数。不另设变量存放乘积结果,而直接将每 一步骤的乘积放在被乘数变量中。 ❖ 设p为被乘数,i为乘数。用循环算法来求结果。可 以将算法改写如下: ❖ S1:使 p=1 ❖ S2:使 i=2 ❖ S3:使 p * i,乘积仍放在变量 P中,表示为 p * i=>p ❖ S4:使 i的值加 l,即 i+l>i ❖ S5:如果i不大于5,返回重新执行步骤S3以及其后 的步骤S4和S5;否则,算法结束。最后得到P的值 就是5!的值

F求1米3米5米7米9*11 算法只需作很少的改动即可: ☆S1 S2:i3 P-p 今S4:i=i+2 S5:若<11,返回S3: 否则,结束。 算法具有通用性、灵活性。S3到S5组成一个循环,在实 现算法时,要反复多次执行S3S4S5等步骤,直到某一时 刻,执行S5步骤时经过判断,乘数i超过规定的数值而 不返回S3步骤为止。此时算法结束,变量P的值就是所求 结果 上一页下一页 返回
上一页 下一页 返回 第2章 程序的灵魂—算法 计算机系彭金莲制作 求1*3*5*7*9*11 ❖ 算法只需作很少的改动即可: ❖ S1:p=1 ❖ S2:i=3 ❖ S3:p=p * i ❖ S4:i=i + 2 ❖ S5:若i<11,返回S3; 否则,结束。 ❖ 算法具有通用性、灵活性。S3到S5组成一个循环,在实 现算法时,要反复多次执行S3,S4,S5等步骤,直到某一时 刻,执行S5步骤时经过判断,乘数i已超过规定的数值而 不返回S3步骤为止。此时算法结束,变量P的值就是所求 结果

例2.2 有50个学生,要求将他们之中成绩在80分以上者 打印出来。用n表示学生学号,n1代表第一个学生 学号,n代表第个学生学号。用g代表学生成绩, g代表第i个学生成绩,算法可表示如下 S1:i=1 S2:如果g=80,则打印和g,否则不打印 S3: j=i+l 令S4:如果i<=50,返回S2,继续执行; 否则,算法结束 上一页下一页 返回
上一页 下一页 返回 第2章 程序的灵魂—算法 计算机系彭金莲制作 例 2.2 ❖ 有50个学生,要求将他们之中成绩在80分以上者 打印出来。用n表示学生学号,n1代表第一个学生 学号,ni代表第i个学生学号。用g代表学生成绩, gi代表第i个学生成绩,算法可表示如下。 ❖ S1: i=1 ❖ S2:如果gi >=80,则打印ni和gi,否则不打印 ❖ S3: i=i+l ❖ S4:如果 i<=50,返回 S2,继续执行; 否则,算法结束
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第一章 概述(主讲:台安).ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第十三章 文件.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第十二章 位运算.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第十一章 结构体.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第十章 指针.ppt
- 《C语言程序设计》课程教学资源:C语言输入输出函数(台安).ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第9章 串行扩展技术.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第8章 串行通信.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第7章 并行扩展技术.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第6章 定时器/计数器.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第5章 中断系统.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第4章 汇编语言程序设计.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第3章 8051指令系统.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第2章 单片机的结构原理与简单应用.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第1章 基础知识.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第10章 应用系统设计及接口技术.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(期复习资料).doc
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第7章 汇编语肓 与C/C++的混合编程.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第6章 32位指令及其编程.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第5章 高级汇编语言程序设计.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第三章 数据类型、运算符与表达式.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第四章 最简单的C程序设计—顺序程序设计.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第五章 选择结构程序设计.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第六章 循环控制.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第七章 数组.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第八章 函数.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第九章 编译预处理.ppt
- 《C语言》课程教学课件(PPT讲稿)第3章 C语言的基本程序设计.ppt
- 《C语言》课程教学资源(讲义)上机实验.doc
- 《C语言》课程教学课件(PPT讲稿)第5章 指针.ppt
- 《C语言》课程教学课件(PPT讲稿)第6章 函数(1/2).ppt
- 《C语言》课程教学课件(PPT讲稿)第6章 函数(2/2).ppt
- 《C语言》课程教学课件(PPT讲稿)第1章 概述.ppt
- 《C语言》课程教学课件(PPT讲稿)第2章 C语言的数据类型、运算符和表达式.ppt
- 《C语言》课程教学课件(PPT讲稿)第3章 C语言的基本程序设计.ppt
- 《C语言》课程教学课件(PPT讲稿)第4章 数组.ppt
- 《C语言》课程教学课件(PPT讲稿)第5章 指针.ppt
- 《C语言》课程教学课件(PPT讲稿)第6章 函数.ppt
- 《C语言》课程教学课件(PPT讲稿)第7章 常用基本算法的C语言实现.ppt
- 《C语言》课程教学课件(PPT讲稿)第8章 结构体、共用体和枚举类型.ppt