基本算法语句.

Slides:



Advertisements
Similar presentations
1 、谁能说说什么是因数? 在整数范围内( 0 除外),如果甲数 能被乙数整除,我们就说甲数是乙数的 倍数,乙数是甲数的因数。 如: 12÷4=3 4 就是 12 的因数 2 、回顾一下,我们认识的自然数可以分 成几类? 3 、其实自然数还有一种新的分类方法, 你知道吗?这就是我们今天这节课的学.
Advertisements

3 的倍数的特征 的倍数有 : 。 5 的倍数有 : 。 既是 2 的倍数又是 5 的倍数有 : 。 12 , 18 , 20 , 48 , 60 , 72 , , 25 , 60 ,
2 和 5 的倍数的特征 运动热身 怎样找一个数的倍数? 从小到大写出 2 的倍数( 10 个): 写出 5 的倍数( 6 个) 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 5 , 10 , 15 , 20 , 25 , 30.
2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
第四章:长期股权投资 长期股权投资效果 1、控制:50%以上 有权决定对方财务和经营.
代数方程总复习 五十四中学 苗 伟.
教材版本:新教材人教版九年级(上) 作品名称:同类二次根式 主讲老师:张翀 所在单位:珠海市平沙第一中学.
6.9二元一次方程组的解法(2) 加减消元法 上虹中学 陶家骏.
一、二阶行列式的引入 用消元法解二元线性方程组. 一、二阶行列式的引入 用消元法解二元线性方程组.
赋值语句与输入、输出语句.
循环模式 流程图的画法: 条件 y 循环体 伪代码: n Do while 条件 循环体 loop 每个循环模式的结构都是一个入口,一个出口.
10.2 立方根.
1.2基本算法语句.
第3章 简单算法设计 3.1 结构化程序的算法设计 3.2 结构化算法的性质及结构 3.3 结构化算法的描述方法 自然语言 流程图 伪码
《高等数学》(理学) 常数项级数的概念 袁安锋
1.1.2 四 种 命 题.
第四章 时间序列的分析 本章教学目的:①了解从数量方面研究社会经济现象发展变化过程和发展趋势是统计分析的一种重要方法;②掌握时间数列编制的基本要求;③理解和掌握水平速度两方面指标的计算及运用④理解和掌握长期趋势分析和预测的方法。 本章教学重点:现象发展的水平指标和速度指标。 本章教学难点:现象变动的趋势分析。
第5章 定积分及其应用 基本要求 5.1 定积分的概念与性质 5.2 微积分基本公式 5.3 定积分的换元积分法与分部积分法
第八章二元一次方程组 8.3实际问题与二元一次方程组.
第八章二元一次方程组 8.3实际问题与二元一次方程组 (第3课时).
C语言实验 第一课 标题:学号+姓名.
数学建模与MATLAB 第五讲:循环结构(1) 2017/9/12.
1.2.1算法基本语句.
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
数学3(必修)—— 算 法 ALGORITHM 苏州大学数学科学学院 徐稼红
走进编程 程序的顺序结构(二).
计算机数学基础 主讲老师: 邓辉文.
第一章 函数 函数 — 研究对象—第一章 分析基础 极限 — 研究方法—第二章 连续 — 研究桥梁—第二章.
第二章 Java语言基础.
第一单元:小数乘法 整数乘法运算定律 推广到小数 湖北省武汉市江汉区北湖小学 宋 俊.
第一章 函数与极限.
人教版五年级数学上册第四单元 解方程(一) 马郎小学 陈伟.
第4章 PHP流程控制语句.
C语言程序设计 主讲教师:陆幼利.
C语言程序设计 第二章 程序的灵魂 -- 算法.
第四章 一次函数 4. 一次函数的应用(第1课时).
1.2 基本算法语句 输入语句、输出语句和赋值语句.
四:JAVA语言基础.
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
《计算机应用基础》 第9章 程序设计基础(二).
第4章 Excel电子表格制作软件 4.4 函数(一).
正切函数的图象和性质 周期函数定义: 一般地,对于函数 (x),如果存在一个非零常数T,使得当x取定义域内的每一个值时,都有
第九节 赋值运算符和赋值表达式.
用穷举法设计程序 南京师范大学 教育技术系 倪佳慧
3.16 枚举算法及其程序实现 ——数组的作用.
算法初步 §1.1.2 程序框图.
算法初步 §1.2.1算法基本语句.
1.2基本算法语句 1.2.3循环语句.
输入语句 输出语句 赋值语句 条件语句 循环语句
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
一元二次不等式解法(1).
初三VB 复习一.
第二节 函数的极限 一、函数极限的定义 二、函数极限的性质 三、小结 思考题.
§2 方阵的特征值与特征向量.
VB程序设计初体验 主讲:林赛雅.
加减消元法 授课人:谢韩英.
输入语句 输出语句 赋值语句 条件语句 循环语句
五 循环结构程序设计 厦大附中信息技术.
鸡兔同笼(续) ——选择结构.
1.2.2条件语句.
三角 三角 三角 函数 余弦函数的图象和性质.
3.9算法及VB初步3 ——以“鸡兔同笼”为例.
顺序结构程序设计 ——关于“字符串”和数值.
1.2.3 循环语句.
第二次课后作业答案 函数式编程和逻辑式编程
一元一次方程的解法(-).
9.3多项式乘多项式.
Presentation transcript:

基本算法语句

知识回顾 算法的概念: 一般而言,对一类问题的机械 的、统一的求解方法称为算法。 广义地说:为了解决某一问题而 采取的方法和步骤,就称之为算法。

流程图的概念 流程图:是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。

尽管不同的算法千差万别,但它们都是由三种基本的逻辑结构构成的,这三种逻辑结构就是顺序结构、选择结构、循环结构. S S+I I I+1 I≤5? 否 是 I 1 S 0

计算机能够“理解”的语言与人的语言 有什么区别? 计算机不同于人:人有大脑,可以思考问题,而计算机则不能.用自然语言和程序框图描述的算法,计算机无法识别,必须转化为其能理解的语言,即程序语言。 对于程序语言还不是我们目前学习主要知识 我们只是先学习一种介于自然语言和计算机 语言之间的文字和符号-----伪代码

计算机完成任何一项任务都需要算法,但是,用自然语言或程序框图描述的算法,计算机是无法“看得懂,听得见”的 计算机完成任何一项任务都需要算法,但是,用自然语言或程序框图描述的算法,计算机是无法“看得懂,听得见”的.因此还需要将算法用计算机能够理解的程序设计语言(programming language)翻译成计算机程序. 程序设计语言有很多种,如BASIC,Foxbase,C语言,C++, J++,VB等.各种语言的语法存在比较大的区别,因此我们教材 使用了一种介于自然语言和计算机语言之间的文字和符号,来表 表示算法.这种文字和符号,称为伪代码(pseudo code). 为了能更好的检验我们的算法,我们还要将伪代码转换为真正 的程序,我们使用的工具是一种称为VBA(Visual Basic for Application)的程序设计语言,它可以看成是VB程序设计语言的一种简化版本.

基本的算法语句有哪些? 基本的算法语句有:输入语句、输出语句、赋值语句、条件语句、循环语句; 各自对应怎样的算法结构? 输入语句、输出语句、赋值语句基本上 是对应顺序结构,条件语句对应条件结构、 循环语句对应循环结构。

赋值语句: 赋值语句伪代码的一般格式: 变量←表达式(公式或运算式)或变量. 符号表示“←”. 如:“x←y”表示将y的值赋给x.

赋值号左边只能是变量,不能是表达式 或常数; 赋值语句: 赋值语句伪代码的一般格式: 变量←表达式(公式或运算式)或变量. 注意: 赋值号左边只能是变量,不能是表达式 或常数; 赋值号左右两边不能调换; 赋值号左右两边可以出现同一个变量,但值可能不相同; 赋值号左右两边的量应该是同类型的.

   用伪代码写出求x=3时多项式 的值的算法. 伪代码: 虚线边框 x←3 y ←(x2+x/3)/( -1)

数学应用: 例1. “鸡兔同笼”是我国隋朝时期的数学著作《孙子算经》中的一个有趣而具有深远影响的题目:“今有雉兔同笼,上有三十五头,下有九十四足.问雉兔各几何.” 设有x只鸡,y只兔,则 下面我们设计一个解二元一次方程组的通用算法.

自然语言: 流程图: 开始 输入a1,b1, c1, a2,b2, c2 x←(b2c1-b1c2)/(a1b2-a2b1) y←(a1c2-a2c1)/(a1b2-a2b1) 输出x,y 结束 S1 输入a1,b1, c1, a2,b2, c2; S2 x←(b2c1-b1c2)/(a1b2-a2b1) ; S3 y←(a1c2-a2c1)/(a1b2-a2b1) ; S4 输出x,y.

输入语句伪代码的一般格式: Read a,b . 输入语句: 输入语句伪代码的一般格式: Read a,b . 输入语句也是赋值语句,只不过是从键盘等输入设备上接受数据,而且可以批量接受数据. 输出语句: 输出语句伪代码的一般格式: Print a,b . 注意使用输出语句输出字符串时,字符内容应加在括号内.

自然语言: 流程图: 开始 输入a1,b1, c1, a2,b2, c2 x←(b2c1-b1c2)/(a1b2-a2b1) y←(a1c2-a2c1)/(a1b2-a2b1) 输出x,y 结束 S1 输入a1,b1, c1, a2,b2, c2; S2 x←(b2c1-b1c2)/(a1b2-a2b1) ; S3 y←(a1c2-a2c1)/(a1b2-a2b1) ; S4 输出x,y. 伪代码: Read a1,b1, c1, a2,b2, c2 x←(b2c1-b1c2)/(a1b2-a2b1); y←(a1c2-a2c1)/(a1b2-a2b1) Print x,y

例2.求多项式函数 , 当x=5时的函数值? 10 x← 5 30 Print y 20 y ← 例2.求多项式函数 , 当x=5时的函数值? 10 x← 5 30 Print y 20 y ← 我们一共做了1+2+3+4+5=15次乘法运算,5次加法运算. 一共做了4+5=9次乘法运算,5次加法运算. 10 x← 5 20 a ←x * x 30 b ← a* x 40 c ← b* x 50 d← c * x 60 y ← 7d+6c+5b+4a+3x+1 70 Print y 有没有更简单的算法?

秦九韶算法,其算法特点是:通过一次式的反复计算,逐步得出高次多项式的值;对于一个n次多项式,只要做n次乘法和n次加法. 这种方法是我国南宋时期的数学家秦九韶在他的代表作《数书九章》中提出的,直到今天,这种算法仍是多项式求值比较先进的算法. x← 5 y←7x+6 y ← y* x+5 y← y* x+4 y← y * x+3 y ← y*x+1 Print y

课堂小结: 1、赋值语句: 赋值语句伪代码的一般格式:变量←表达式(公式或运算式)或变量. 符号表示“←”. 如:“x←y”表示将y的值赋给x. 注意: 赋值号左边只能是变量,不能是表达式或常数; 赋值号左右两边不能调换; 赋值号左右两边可以出现同一个变量,但值可能不相同; 赋值号左右两边的量应该是同类型的.

输入语句伪代码的一般格式: Read a,b . 输入语句: 输入语句伪代码的一般格式: Read a,b . 输入语句也是赋值语句,只不过是从键盘等输入设备上接受数据,而且可以批量接受数据. 输出语句: 输出语句伪代码的一般格式: Print a,b . 注意使用输出语句输出字符串时,字符内容应加在括号内.

某居民区的物管部门每月按以下方法收取卫生费:3人和3人以下的住户,每户收取5元;超过3人的住户,每超过1人加收1 某居民区的物管部门每月按以下方法收取卫生费:3人和3人以下的住户,每户收取5元;超过3人的住户,每超过1人加收1.2元。试设计一个算法,根据输入的人数计算应收取的卫生费。 自然语言: 结束 输出y y ←5 y←1.2(x-3)+5 开始 输入x x≤3 Y N S1 输入x; S2 如果x≤3 ,y ← 5, 否则 y ←1.2(x-3)+5; S3 输出y.

条件语句 If 条件 Then 语句1 Else 语句2 End If 满足条件? 否 是 语句1 语句2

某居民区的物管部门每月按以下方法收取卫生费:3人和3人以下的住户,每户收取5元;超过3人的住户,每超过1人加收1 某居民区的物管部门每月按以下方法收取卫生费:3人和3人以下的住户,每户收取5元;超过3人的住户,每超过1人加收1.2元。试设计一个算法,根据输入的人数计算应收取的卫生费。 伪代码: 自然语言: 块条件语句 S1 输入x; S2 如果x≤3 ,y ← 5, 否则 y ←1.2(x-3)+5; S3 输出y. Read x 注意语句缩进. If x≤3 Then y ← 5 Else y ←1.2(x-3)+5 End if End if 不能省略. Print y

设计一个算法,实现求绝对值的功能. 自然语言-算法1: Read x If x < 0 Then S1 输入x; y ← -x 开始 输入x x<0 y←-x y←x N 结束 输出y 自然语言-算法1: Read x If x < 0 Then y ← -x Else y ← x End if Print y S1 输入x; S2 如果x<0 ,y ←-x, 否则 y ← x; S3 输出y. N x←-x 结束 输出x Y 开始 输入x x<0 条件语句伪代码格式2: If A Then B 自然语言-算法2: 10 Read x 20 If x<0 Then x ←-x 30 Print x S1 输入x; S2 如果x<0 ,x ←-x; S3 输出x.

下列流程图,实现的一个“符号”函数的求值,试用自然语言和伪代码描述算法. S2 如果x>0 ,y ←1,转S4; S1 输入x; S4 输出y. 自然语言: S3 如果x=0 ,y ←0, 否则 y ← 1; 输出y 结束 x>0 Y N 开始 输入x y←1 x=0 y←0 y←-1

If x>0 Then y ←1 Else If x=0 Then y ← 0 y ← - 1 End if Read x 伪代码: Print y

If A Then B Else If C Then D E End If If A Then B Else C End If If A Then B

条件语句 If 条件 Then 语句1 Else 语句2 End If 满足条件? 否 是 语句1 语句2

If A Then B Else If C Then D E End If If A Then B Else C End If If A Then B

某市出租汽车最新计费标准如下:在3km以内(含3km)路程按起步价8元收费,超过3km以外的路程按2. 4元/km收费 伪代码: 自然语言: 块条件语句 S1 输入x; S2 如果x≤3 ,y ← 8, 否则 y ←2.4(x-3)+8; S3 输出y. Read x 注意语句缩进. If x≤3 Then y ← 8 Else y ←2.4(x-3)+8 End if End if 不能省略. Print y

程序: Read x If x>0 Then Print x End If 例如:编写一个程序,从键盘上输入一个整数,若是正数就将其输出。 程序: Read x If x>0 Then Print x End If

程序: Read x 火车托运行李的收费方法如下: y是收费,x上行李重量,当0<x≤20(千克)时,按每千克0.35元收费。当x>20(千克)时,20千克的部分按0.35元的单价收费,超出20千克的部分,则按0.65元的单价收费。请根据上述收费方法编写程序。 (0<x≤20) (x≥20) 程序: Read x If x>0 and x<=20 Then y←0.35﹡x Else y←0.35﹡20+0.65﹡(x-20) End If Print y

编写求一个数是偶数还是奇数的程序,从键盘上输入一个整数,输出该数的奇偶性。 程序:Read x y x Mod2 If y=0 Then Print x ; “is an even number” Else Print x ; “is an odd number” End If

设计计算2×4×6×8× ×100的一个算法,并画出流程图. … 写出伪代码 流程图如下: 解: 算法如下: 当型语句如下: S1 T 1; 二、问题给入: 设计计算2×4×6×8× ×100的一个算法,并画出流程图. … 写出伪代码 流程图如下: 解: 算法如下: 当型语句如下: 开始 I≤50 Y N 结束 T←1 I←1 T←T × 2I I←I+1 输出T S1 T 1; T←1 S2 I 1; I ←1 S3 若I≤50,则转S4, 否则转S6; While I≤50 T←T×2I S4 T T×2I; I←I+1 S5 I I+1,转S3; End while S6 输出T. Print T 当型循环:

流程图如下: 另解: 算法如下: 直到型语句如下: S1 T 1; S2 I 1; S3 T T×2I; S4 I I+1 ; 开始 T← 0 I← 1 T← T+ I Y I← I+ 1 I>50 N 结束 输出T T←1 S2 I 1; I←1 S3 T T×2I; Do S4 I I+1 ; T←T×2I S5 若I>50,则转S6, 否则转S3; I←I+1 Until I>50 S6 输出T. End Do 直到型循环: Print T

三、总结归纳: 当型语句: 直到型语句: 伪代码中的: 循环语句 Do While p 循环体 循环体 Until p End while End Do 循环语句 伪代码中的:

四、巩固应用: 例1.分别使用当型循环和直到型循环设计求 1+2+3+…+n>2006 的最小正整数n的伪代码,并画出流程图. 解:使用当型循环语句 设计如下: 流程图如下: 开始 S←0 n←1 S←0 n←1 While S≤2006 S≤2006 n←n+1 S←S+n Y S←S+n n←n+1 结束 输出n ① End while N n← n-1 ①

使用直到型语句 流程图如下: 设计如下: 开始 S←0 S← 0 n←1 n← 1 Do S←S+n S← S+ n n←n+1 Until S>2006 Y End Do n← n-1 n←n-1 结束 输出n Print n

小结: A A p p Do 循环体 While P Until P 循环体 End Do End While N Y Y N 直到型循环语句伪代码格式: Do 循环体 Until P End Do 直到型循环语句伪代码格式: While P 循环体 End While

While P 循环体 自然语言-当型循环,先累加后计数: End While S1 S←0 ; S2 i ←1 ; S←0 当型循环语句伪代码格式: While P 循环体 End While 结束 输出S S ← 开始 S← S +i i ← i +1 Y N i ← 自然语言-当型循环,先累加后计数: S1 S←0 ; S2 i ←1 ; S3 当i≤100时, S←S+i; i←i+1 ; 转S3; S4 输出S. S←0 i ←1 ; While i≤100 S←S+i i←i+1 End While Print S

当型循环流程图和伪代码条件的一致性. 自然语言-当型循环,先计数后累加: S1 S←0 ; S2 i ←0 ; S←0 S3 当i≤99时, 结束 输出S S ← 开始 i ← i + 1 S ← S +i Y N i ← 自然语言-当型循环,先计数后累加: S1 S←0 ; S2 i ←0 ; S3 当i≤99时, i←i+1 ; S←S+i; 转S3; S4 输出S. S←0 i ←0 ; While i≤99 i←i+1 S←S+i End while Print S

Do 循环体 Until P 自然语言-直到型循环先累加后计数: S←0 i ←1 ; S1 S←0 ; S2 i ←1 ; Do 直到型循环语句伪代码格式: Do 循环体 Until P End Do 开始 S ← 结束 输出S i← S←S+i i←i+1 N Y 自然语言-直到型循环先累加后计数: S←0 i ←1 ; Do S←S+i i←i+1 Until i >100 End Do Print S S1 S←0 ; S2 i ←1 ; S3 S←S+i; S4 i←i+1 ; S5 如果i不大于100, 转S3; S6 输出S.

直到型循环流程图和伪代码条件的一致性. 自然语言-直到型循环先计数后累加: S←0 i ←1 ; Do S1 S←0 ; S2 i ←1 ; 开始 S ← 结束 输出S i ← i←i+ 1 S←S+i N Y 自然语言-直到型循环先计数后累加: S←0 i ←1 ; Do i←i+1 S←S+i Until i >99 End Do Print S S1 S←0 ; S2 i ←1 ; S3 i←i+1 ; S4 S←S+i; S5 如果i不大于99, 转S3; S6 输出S.

设计计算1×3×5×7× ×99的一个算法,并画出流程图. … 写出伪代码 流程图如下: 解: 算法如下: 当型语句如下: S1 T 1; 设计计算1×3×5×7× ×99的一个算法,并画出流程图. … 写出伪代码 流程图如下: 解: 算法如下: 当型语句如下: 开始 I≤50 Y N 结束 T←1 I←1 T←T ×(2I-1) I←I+1 输出T S1 T 1; T←1 S2 I 1; I ←1 S3 若I≤50,则转S4, 否则转S6; While I≤50 T←T×(2I-1) S4 T T×(2I-1); I←I+1 S5 I I+1,转S3; End while S6 输出T. Print T 当型循环:

1-3+5-7+9-…-101 例下列伪代码实现的什么算法? S←0 a←1 i←1 While i≤101 S←S+a×i a←a×(-1) i ← i+2 End While Print S 1-3+5-7+9-…-101

例:下列伪代码实现的什么算法? S←0 i ←0 While i≤99 i←i+1 S←S+i End while Print S

请大家仔细观察上面写算法的几个问题 , 他们的结构有什么特点? 他们的循环的次数已经确定。

当循环的次数已经确定,可用“For”语句表示. For I From “初值” To “终值” step “步长” …… End For

例下列伪代码实现的什么算法?如何用For语句改写该算法? S←0 i ←0 While i≤99 i←i+1 S←S+i End while Print S S←0 For i From 0 To 99 step 1 S←S+i+1 End For Print S

例下列伪代码实现的什么算法?如何用For语句改写该算法? S←0 i ←1 Do S←S+i i←i+1 Until i >100 Print S S←0 For i From 1 To 100 step 1 S←S+i End For Print S 如何将直到型循环和当型循环的循环语句改为For语句?

1-3+5-7+9-…-101 例下列伪代码实现的什么算法?如何用For语句改写该算法? S←0 a←1 i←1 While i≤101 S←S+a×i a←a×(-1) i ← i+2 End While Print S S←0 a←1 For i From 1 to 101 Step 2 S←S+a×i   a←a×(-1) End For Print S i从1到101,每次增加2 1-3+5-7+9-…-101