版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.3算法的表示方法,2011.11.15,算法的描述,1、自然语言描述 2、用流程图描述 3、用伪代码或直接用计算机程序描述,易理解,但书写烦、易引起歧义,直观、形象,能被计算机识别和执行,伪代码,是介于自然语言和计算机程序语言之间的一种算法描述,它也是专业软件开发人员描述算法的一种常用方法。,1、自然语言描述算法,【例1】交换两个杯子中的液体。,提问同学,如何处理? 将杯子A中的液体倒给杯子C; 将杯子B中的液体倒给杯子A; 将杯子C中的液体倒给杯子B。,A,B,1、自然语言描述算法,【例2】从键盘输入两数,求两数之和并输出。,1、输入一个加数 2、输入另一个加数 3、计算两数之和 4、输
2、出和,2、用流程图描述算法,流程图(flowchart)是一种比较直观易懂的、用图形来描述算法的方法。,2、用流程图描述算法,流程图中所使用的符号遵循国家颁布的标准。,2、用流程图描述算法,【例3】将例2用流程图来描述。,下列描述算法的流程图符号中属于判断框符号的是( ),A,B,C,D,算法描述可以有多种表达方式,下面不属于算法描述方式的是( ),1、自然语言 2、流程图 3、伪代码 4、机器语言,3、用程序实现算法,【例4】编写一个实现求和问题的程序。,运行,3、用程序实现算法,【例5】已知圆半径,求面积。(先画流程图) 1、分析问题 : 2、设计算法: 3、编写程序: 4、调试程序:,运
3、行,1.3.2变量及用途,程序中的变量是计算过程中要用的数据的存储单元。,1.3.2变量及用途,常量:指在程序执行过程中事先设置、其值不发生改变的量,即一个具体的数值。 变量:指在程序运行过程中,取值可以改变的量,一般用字母表示。在计算机内部变量对应了一定的存储单元。 变量命名的基本规则 只能由字母、数字和下划线三类字符组成,但第一个字符必须是字母。 字母大小写都可以,变量名长度适当。 变量名与实际意义 变量类型 (数值型、字符型),1.3.2变量及用途,【例6】如果圆的半径用字母r表示,周长用字母c表示,面积用字母s表示,求圆的周长和面积。设计出算法,并用流程图表示。,1.3.2变量及用途,
4、【例7】判断下列变量名是否正确。 a,c1,class*1, sum,3f,grade、aa , data, a/a。,1.3.2变量及用途,【例8】举些生活中常用数据用变量来表示,并起一个合适变量名。 例如:mark-成绩数据,name-姓名等。,【例9】上述变量分别是哪种变量的类型。,1.3.2变量及用途,变量赋值的格式: 变量常量 或 变量变量。 变量=常量 或 变量=变量 功能: 将赋值号右边常量或表达式的值存放在左边变量名对应的存储单元中,成为左边变量的值。,1.3.2变量及用途,【例10】 a=3,3,说明变量的变量名与变量值。,a 变量名,变量名实际上是一个符号地址,对应一定的内
5、存储单元。 变量值指内存储单元中的值。 变量一般先赋值,后调用,重新赋值后,变量的值改变。,变量值,存储单元,1.3.2变量及用途,【例11】b=a c=a d=a b=3,说明变量的值“取之不尽,一冲就丢”。 变量a的值赋给b后,变量a中的值还在,可以继续赋给c与d ,说明变量值可以重复调用,变量值“取之不尽”,与“读”存储器对应。 当执行到b=3时,b变量值中原来的值被改写为3了,原来值没有了,说明变量值一旦重新赋值后,立即被新值代替,变量值“一冲就丢”,与“写”存储器对应。,1.3.2变量及用途,例12:输入两个数给变量a, b,交换两个变量的值并输出,设计算法并画出流程图。,1.3.2
6、变量及用途,分析:对于输入的每一个数,如果不是0,则进行两项处理: 1、有效数的个数增加1 2、将这个数加到总和里。 c:用来记录非零数的个数,即计数器 d: 用来存放当前输入的数据 Sum:用来存放有效数的和,即累加器 计数器:用来记录某种事件发生的次数。一般初值为0. 累加器:用来生成并存储数据累加和的变量,一般 好、初值为0.,例13:设计算法,求输入的若干个非零数的平均值。,1.3.3运算符与表达式,运算符及运算次序: 算术运算符 、+、-、*、/、mod(取余)。 字符运算符 &或+。 关系运算符 、=、。 逻辑运算符 and、or、not。 算术运算最优先,关系运算次之,最后为逻辑
7、运算,括号可以改变次序。,1.3.3运算符与表达式,运算符及运算次序: 【例14】写出变量a,b,c,d的值。 (1)a=2 (2)a=2 b=a+a b=3 c=a+b b=a+b b=a-b a=a-b (3)a=“开” (4)a=0 b=“放” a=a+3 c=a+b d=b+a,1.3.3运算符与表达式,表达式: 表达式:指用运算符将常量、变量连接起来有意义的式子。 表达式的类型: 算术表达式。 字符表达式。 关系表达式。 逻辑表达式。 采用列表法记录变量值变化的过程与结果,1.3.3运算符与表达式,运算符及运算次序: 【例15】说出下列表达式运算的次序。 a+bc and b+ca
8、and c+ab,1.3.3运算符与表达式,【例16】判断下列关系表达式结果是true或false。 (1)303 (2)123 and 123 or 12=5,1.3.3运算符与表达式,【例17】表达式表示法: sa*h/2 或 s=a*h/2 aa+2 或 a=a+2,练习 若变量a、b的值分别是4、2,则表达式(a+b)/a * b的值是( )。 A、3 B、0.25 C、0.75 D、4,1.3.4算法的执行流程,顺序结构 分支结构(选择结构) 循环结构(重复结构),是指算法中各个处理步骤的执行次序和模式。,1.3.4算法的执行流程,顺序结构,1.3.4算法的执行流程,顺序结构,【例1
9、8】 键盘输入一个正方形的边长a,求该正方形与其内切圆所夹部分的面积并输出。,a,1、分析问题: 输入数据: 处理问题: 输出数据:,2、设计算法:,1.3.4算法的执行流程,顺序结构,【例19】键盘输入一个二位正整数n,输出它的十位数x。,1、分析问题: 输入数据: 处理问题: 输出数据:,2、设计算法:,常用函数 sqr(x)算术平方根 abs(x)绝对值 int(x)取整函数,1.3.4算法的执行流程,顺序结构,【例19】输入任意一个三位正整数n,输出这个三位数各位数字之和total。例如:输入456,输出结果为15。,1、分析问题: 输入数据:三位正整数n 处理问题:分别求出各位数字,
10、并计算它们的和total 输出数据:所求得的和total,2、设计算法: 百位数 a=int(n/100); 十位数 b=int(n-a*100)/10); 个位数 c=n-a*100-b*10; total=a+b+c。,个位数 c=n mod 10; 十位数 b=(int(n/10) mod 10; 百位数 a=int(n/100)。,1.3.4算法的执行流程,顺序结构,【例20】输入一元二次方程的系数a、b、c(确保b2-4ac0),计算并输出两个实根x1、x2。,1、分析问题: 分析问题 输入什么数据?(系数a、b、c,保证b2-4ac0) 处理什么问题?(计算方程的两个实根x1和x2
11、) 输出什么数据?(所求得的两个实根x1和x2),2、设计算法: x1=(-b+sqr(d)/(2*a); x2=(-b-sqr(d)/(2*a)。,1.3.4算法的执行流程,【例21】求银行利息:n元人民币存一年,到期后领取的总金额是多少?可得利息多少?假设年利率为4.14%。,1.3.4算法的执行流程,分支结构,:根据给定条件是否成立而决定执行不同步骤的算法结构。,双分支结构,单分支结构,1.3.4算法的执行流程,双分支结构,单分支结构,【例22】上完体育课,如果是上午最后一节,下课后去食堂吃饭;否则,进教室上课。,流程图:,到食堂吃饭,到教室上课,1.3.4算法的执行流程,双分支结构,单
12、分支结构,【例23】出门带伞问题: 如果下雨,带伞后出门,否则直接出门。,流程图:,出门,1.3.4算法的执行流程,双分支的语句格式: IF THEN ELSE END IF 单分支的语句格式: IF THEN END IF,分支结构的两种基本模式与程序设计中的IF语句关系:,1.3.4算法的执行流程,【例24】打印出从键盘输入的两个不相等的数中较大的数。(双分支结构),流程图:,IF ab THEN print a ELSE print b END IF,a=inputbox(“请输入a:”),b=inputbox(“请输入b:”),1.3.4算法的执行流程,双分支的语句格式: IF THE
13、N ELSE END IF 单分支的语句格式: IF THEN END IF,分支结构的两种基本模式与程序设计中的IF语句关系:,IF 和 END IF 一一 对应。 分支结构中语句块采用缩进方法书写。 分支结构的执行过程,以判断框开始,汇聚点结束。,1.3.4算法的执行流程分支结构,【例25】求分段函数值 。,y=,x2,2x+1,x3,x=3,流程图:,双分支结构,IF x3 THEN y=x*x ELSE y=2*x+1 END IF,Print y,x=inputbox(“请输入数x:”),1.3.4算法的执行流程分支结构,流程图:,【例26】输入一个数到变量a,输出它的绝对值。,单分
14、支结构,IF a0 THEN a=-a END IF,Print a,a=inputbox(“请输入数a:”),1.3.4算法的执行流程分支结构,流程图:,【例27】输入两个不相等的数a,b,比较大小,将大数放在a中,小数放在b中,然后输出a,b。(单分支结构),单分支结构,1.3.4算法的执行流程分支结构,单分支结构,流程图:,【例28】某超市促销苹果,购买一斤苹果,为每斤3元,购买5斤以下每斤原价;超过5斤部分每斤打8折,输入购买的斤数,输出应付款额。(双分支结构),分析问题: 输入什么数据?(从键盘输入购买的斤数weight) 处理什么问题?(按规定计算应付款额pay) 输出什么数据?(
15、应付款额pay),1 (x0) y= 0 (x=0) -1 (x0),1.3.4算法的执行流程分支结构,单分支结构,流程图:,【例29】分段函数问题。(分支嵌套),IF x0 THEN y=-1 ELSE END IF,Print y,x=inputbox(“请输入数x:”),IF x=0 THEN y=0 ELSE y=1 END IF,1.3.4算法的执行流程分支结构,【例30】购买地铁车票:乘1-4 站 3元/位;5-9站 4元/位;9站以上5元/位;输入人数person、站数n,输出应付款pay。(分支嵌套),流程图:,分析问题: 输入什么数据? 处理什么问题? 输出什么数据?,1.3
16、.4算法的执行流程分支结构,【例31】某手机话费套餐规定:每月60元,可通话300分钟,超过300分钟的部分,另按每分钟0.4元计算。键盘输入当月通话时间t(分钟),计算当月实际需付的手机费m。如果输入的通话时间小于0,则应输出“输入数据有误”的提示信息。,流程图:,分析问题: 输入什么数据? 处理什么问题? 输出什么数据?,1.3.4算法的执行流程分支结构,【例32】输入一元二次方程ax2+bx+c=0的系数a、b、c(a0), 计算一元二次方程的根。,a=InputBox(“请输入第一个系数”) b=InputBox(“请输入第二个系数”) c=InputBox(“请输入第三个系数”) d
17、=b*b-4*b*c IF d0 THEN Print “方程无实数解。” ELSE IF d=0 THEN x=-b/(2*a) Print “方程有两个相同的实数解:”,x,x ELSE x1=(-b+sqr(d)/(2*a) x2=(-b-sqr(d)/(2*a) Print “方程有两个不同的实数解:”,x1,x2 END IF END IF,1.3.4算法的执行流程分支结构,【例33】输入三个不相等的数a,b,c ,将最大数赋值给变量max并输出。,方法一: a=InputBox(“请输入第一个数”) b=InputBox(“请输入第二个数”) c=InputBox(“请输入第三个数
18、”) IF a=b and a=c THEN max=a ELSE IF b=a and b=c THEN max=b ELSE max=c END IF END IF PRINT max,方法二: a=InputBox(“请输入第一个数”) b=InputBox(“请输入第二个数”) c=InputBox(“请输入第三个数”) IF a=b THEN IF a=c THEN max=a ELSE max=c END IF ELSE IF b=c THEN max=b ELSE max=c END IF END IF,方法三: a=InputBox(“请输入第一个数”) b=InputBox(
19、“请输入第二个数”) c=InputBox(“请输入第三个数”) max=a IF bmax THEN max=b END IF IF cmax THEN max=c END IF,1.3.4算法的执行流程循环结构,1、定义:某些操作进行重复执行的结构。,2、基本模式:当型循环,直到型循环,当型循环,直到型循环,循环条件,循环体,循环体,循环条件,3、组成: 循环体:重复执行的步骤。 循环条件:判断是否执行循环体的条件。,1.3.4算法的执行流程循环结构,【例1】过马路问题: 如果红灯,则等待,重复前面过程,否则过马路。,组成: 循环体:等待。 循环条件:是否红灯。,当型循环,是 绿 灯 吗,
20、直到型循环,1.3.4算法的执行流程循环结构,【例2】打印输出五个“你真棒!” 。,组成: 循环体:输出“你真棒!” 循环条件:输出“你真棒!”个数是否满5个。,当型循环,循环变量三要素: 初值、终值、步长,1.3.4算法的执行流程循环结构,若需要循环次数为n,通常循环变量i初值为1,终值为n,步长为1,判断条件为i=n,计数语句i=i+1位于循环体最后。,1.3.4算法的执行流程循环结构,【例3】求65+90+10+35+75的和s。,组成: 循环体:输入一个数据x,加到表示和的变量s中。 循环条件:循环变量i是否满5次。,累加器:循环体中,将输入的数据x加到变量s中去,采用的是s=s+x的方法,这种方法称为累加,变量s起到了累加数据的作用,称为累加器。累加器初值一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年度施工员考试彩蛋押题及答案详解【必刷】
- 2024-2025学年度中级软考高分题库(黄金题型)附答案详解
- 仓储新员工三级安全教育教材
- 2024-2025学年医院三基考试综合提升测试卷【原创题】附答案详解
- 2024-2025学年度电梯考试试卷附完整答案详解【考点梳理】
- 2024-2025学年度医院三基考试高分题库(达标题)附答案详解
- 某石油厂设备维护管理规范
- 白血病化疗方案优化
- 神经病理性疼痛的治疗与管理培训
- 2026江苏宿迁市卫生健康委员会所属事业单位招聘11人备考题库附答案详解(巩固)
- 武汉大学分析化学教案第3章分析化学的误差与数据处理课件
- MT 425-1995隔绝式化学氧自救器
- 2023年辽宁大连中远海运川崎船舶工程有限公司招聘笔试题库及答案解析
- GB/T 18046-2008用于水泥和混凝土中的粒化高炉矿渣粉
- 临床检验基础各章节练习题及思考题
- 托幼机构卫生保健人员测试卷附答案
- 公司软件开发技术能力说明
- 钢结构工程计量课件
- 一例慢阻肺病人护理个案
- 教师口语教程教学课件汇总全套电子教案(完整版)
- 中国文化概论课件04
评论
0/150
提交评论