高中算法与算法的描述知识分享.docx
- 文档编号:5782535
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:27
- 大小:64.05KB
高中算法与算法的描述知识分享.docx
《高中算法与算法的描述知识分享.docx》由会员分享,可在线阅读,更多相关《高中算法与算法的描述知识分享.docx(27页珍藏版)》请在冰豆网上搜索。
高中算法与算法的描述知识分享
高中算法与算法的描述
第一章算法与算法的描述
1.算法的定义
算法:
就是解决问题的思想方法,对解题过程的精确描述。
计算机解决问题的步骤为分析问题、设计算法、编写程序、调试程序。
算法是程序设计的“灵魂”,最核心过程。
2.法的特征
一个算法应该具有以下五个重要的特征:
1、有穷性:
一个算法必须保证执行有限步之后结束;
2、确定性:
算法的每一步骤必须有确切的定义;
3、输入:
一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;
4、输出:
一个算法有一个或多个输出,以反映对输入数据加工后的结果。
没有输出的算法是毫无意义的;
5、可行性:
算法中执行的任何计算步都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成;(也称之为有效性)
3.算法的描述方法
算法的描述:
可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。
(1)自然语言描述法:
指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。
例1:
求圆的周长和面积
算法如下:
(自然语言描述法)
(1)输入半径r;
(2)计算周长c=2*π*r;
(3)计算面积s=π*r*r;
(4)输出周长c,输出面积s;
(5)结束
例2:
工人每天工作8小时,每小时9元,超过8小时的每小时增加15%的加班费,计算工人每天的应发的日工资。
(1)输入工作小时X
(2)判断X值,分别计算
●X小于8,工资=X*9
●X大于8,工资=X*9+(X-8)*9*0.15
(3)输出工资
(4)结束
练习:
求三个数中的最大数。
(用自然语言描述)
(2)流程图描述:
也称程序框图,它是算法的一种图形化表示方法。
且描述算法形象、直观,更易理解。
常用的“流程图”所用的基本符号及功能
程序框
名称
功能
开始/结束框
表示算法的开始或结束
输入/输出框
表示算法中变量的输入或输出
处理框
表示算法中变量的赋值与计算
判断框
表示算法中的条件判断
流程线
表示算法中的流向
连接点
表示算法中的连接
例1:
求圆的周长和面积
开始
结束
c←2*π*r
s←π*r*r
输入r
输出c,s
练习:
求三个数中的最大数。
(用流程图描述)
(3)伪代码描述法:
是介于自然语言和计算机程序语言之间的一种算法描述。
是专业软件开发人员常用方法。
流程图的基本图形及功能:
例1:
求圆的周长和面积
inputr
c=2*π*r
s=π*r*r
printc,s
练习:
求三个数中的最大数。
(用伪代码描述)
4.程序与程序语言
(1)程序的定义:
程序实际上是一组及其操作的指令或语句的序列,是算法的一种描述
(2)程序的基本特征:
程序一共有七个基本特征
1、程序中,每一个算法的步骤对应着程序设计语言的一个或多个语句,每个语句对应一个或者多个操作。
每个操作都要求有执行对象,并且根据对象状态变化形成动作的效果,同事可变的对象用变量来表示,变量的值的变化则可通过操作赋值来完成。
2、除非特殊索命程序都是从第一条语句开始顺序开始向下执行。
3、程序总是施行与操作与某些对象,这些对象通常称为数据。
4、这些数据一般应该有属性和取值范围,即类型说明。
5、有时语句要求执行者作出判断,即在某种条件成立情况下执行一条或一组语句,否则执行另一条或一组语句。
6、一条或一组语句可能需要执行一次以上,当一条或一组语句要重复时,必须指明重复的次数或重复的条件。
7、程序本身是一个静态的实体,而执行语句的进程是动态的。
(3)程序的基本结构:
顺序结构、选择结构、循环结构。
(4)程序设计语言的的产生和发展
1、机器语言:
二进制代码指令
2、汇编语言:
类似英语缩略词且带有助记性符号的语言,每条汇编指令和一条机器指令相对应,只是指令码和操作数都采用符号形式。
而这种语言是不能被机器直接接受,必须用一种语言翻译器将程序中的每条语句翻译成机器语言才能执行。
3、高级语言:
高级语言本身不是一种语言,只是一类语言的分类。
用高级语言编写的程序必须经过翻译器将其翻译成机器语言,才能在计算机上执行。
常见的高级语言:
C语言、C++、pascal、java、C#、VB、Basic
(5)程序的编辑和翻译
1、程序的编辑:
以汇编语言或者高级语言所编写的程序被称为“源代码”,这些代码需要我们逐一的输入到计算机中。
并把他们以文件的形式保存起来,这个过程称为程序的编辑
2、程序的翻译:
前面的学习中使我们知道,计算机只能识别和执行二进制的机器语言代码,而我们用级语言或汇编语言编写的程序要想被计算机执行,必须翻译成机器语言程序,最终才能被计算机执行。
高级语言的翻译程序一般则有两种类型:
编译程序和解释程序。
练习题:
1下面对算法描述正确的一项是:
( )
A、算法只能用自然语言来描述
B、算法只能用图形方式来表示
C、同一问题可以有不同的算法
D、同一问题的算法不同,结果必然不同
2.下面关于算法描述正确的是 ( )
(A)算法不可以用自然语言表示
(B)算法只能用框图来表示
(C)一个算法必须保证它的执行步骤是有限的
(D)算法的框图表示法有0个或多个输入,但只能有一个输出
3、图形符号""在算法流程图描述中表示().
A处理或运算的功能B输入输出操作
C用来判断条件是否满足需求D算法的开始或结束
4、以下哪个是算法的描述方法?
()
A流程图描述法B枚举法C顺序法D列表法
5、下面的语句是一个计算机程序的操作说明:
(1)初始值为x=1,y=1,z=0,n=0;
(2)n=n+1(将当前n+1的值赋予新的n);
(3)x=x+2(将当前x+2的值赋予新的x);
(4)y=2y(将当前2y的值赋予新的y);
(5)z=z+xy(将当前z+xy的值赋予新的z);
(6)如果z>7,则执行语句(7),否则返回语句
(2)继续进行;
(7)打印n,z;
(8)程序终止.
由语句(7)打印出的数值为______,_______.
6、以下属于计算机程序语言的有()
A、汇编语言B、高级语言C、机器语言D、低级语言
7、执行程序时,程序中的每一条语句至少要运行一次()
8、最早的程序设计语言是汇编语言()
9、程序设计语言是指人们编制程序所使用的计算机语言,VB是低级语言()
10、高级语言翻译程序有两种类型:
解释程序和编译程序()
第二章程序设计基础
第一节常量、变量的定义
VB程序的一般包括如下部分:
(1) 数据类型说明部分
(2) 数据的输入部分
(3) 数据的处理部分
(4) 数据的输出部分
例:
求圆的周长和面积
PrivateSubCommand1_Click()
DimrAsSingle//定义r为单精度型
DimcAsSingle//'定义c为单精度型
DimsAsSingle//定义s为单精度型
r=inputbox(“输入半径r”)//输入半径r
c=2*3.14159*r//计算周长
s=3.14159*r*r//计算面积
printc//输出周长
prints//输出面积
EndSub
一、常量:
在程序进行过程中不变的量,在VB中一般分数值常量与字符常量两种。
数值常量:
就是数学中说的常数,分整型常量和实型常量两种
整型常量:
即整数,指不带小数点的数值如1、0、-10、+35等都是合法的整数
实型常量:
即实数,指带小数点的数值。
实型常量又分为定点数和浮点数两种。
例:
定点数:
3.14159和-6.8,1.99
浮点数:
2E6、1E5
例:
1.2345×103可表示为1.2345E3,字母E表示底数10
浮点数就是数学上的科学计数法。
字符串常量:
被一对双引号括起来的若干个合法的字符称为字符串常量。
例如:
”China”、”VisualBasic”、”18”、”3.1415”等,双引号中字符,不包括双引号本身。
符号常量:
如果多次用到同一个常量,则可用一个有意义的名字表示这个常量。
二、变量:
在程序执行过程中,其值可以改变的量称为变量
变量命名注意要点:
1、必须以字母开头,不能以数字或其他字符开头。
2、只能由字母、汉字、数字学或下划线组成,不能含有小数点、空格等字符。
3、最长不超过255个字符
4、不能以VB保留字作变量名,如语句定义符、函数名等。
5、VB不区分变量名中字母大小写。
如HELLO和Hello是同一个变量。
表2-1常用数据类型
整型
Integer
从-32768到32767
长整型
Long
从-2147483648到2147483647
单精度实型
Single
负数-3.402823E+38到-1.401298E-45
正数1.40129E-45到3.402823E38但它只有7位有效数字
双精度实型
Double
绝对值小于10308的数,它有15位有效数字
日期型
Date(Time)
如:
#2008-01-31##01/31/2008#
字符型
String
如:
“中国”,“zhongguo”
布尔型
Boolean
True或False
三、常量和变量的定义
符号常量的声明:
Const常量名[As常量类型]=常量值
如:
ConstpiAsSingle=3.14159常量名为pi
变量的声明:
Dim<变量名>As<变量类型>
如:
DimaAsInteger定义一个 整型变量,变量名为a
变量的赋值:
变量=表达式
例:
PrivateSubForm_Click()
DimaAsInteger,bAsInteger,cAsInteger
DimstrAsString
a=54
b=114
c=a+b
str="HelloWorld"
Print"a=";a,"b=";b,"c=";c
Printstr
EndSub
四、运算符
1、算术运算:
+
-
*
^
/
\
mod
加
减
乘
乘方
除
整除
取余
^指数 例:
2^2=4
/(浮点)除 例:
5/2=2.5
\整除 例:
5\2=2
Mod求余数 例:
5Mod2=1
2、关系运算
=
>
<
>=
<=
<>
等于
大于
小于
大于等于
小于等于
不等于
注意:
关系表达式的运算结果为布尔值True或False
例:
3>2结果为True(真或是)
3、逻辑运算
Not(取反)And(与)Or(或)
运算结果为布尔型(Boolean)True或False
逻辑运算符的优先级为:
No>And>Or
4、日期运算符与日期表达式
日期表达式是用日期运算符“+”或“-”将算式表达式、日期型常量、日期型变量、日期函数等连接起来的式子,如表达式“#2003/09/01#+30”的运算结果是“2003-10-1”;表达式“#2003/10/20#-#2003/10/10#”的运算结果为整数10
5、字符运算
字符串连接符为“+”和“&”
“123”+“45”=“12345”
“123”&“45”=“12345”
123+“45”=168
“123”+45=168
运算符的执行顺序:
在VB中,当一个表达式中同时出现多种运算符时,运算次序由运算符的优先级决定,优先级高的运算符先运算,优先级相同的从左向右进行运算。
不同性质的运算符优先级如下。
算术运算符>字符串运算符> 关系运算符> 逻辑运算符
6、常用函数
函数名
说明
示例
结果
Sin(X)
X弧度的正弦
Sin(0)
0
Cos(X)
X弧度的余弦
Cos(0)
1
Tan(X)
X弧度的正切
Tan(0)
0
Atn(X)
X用弧度表示的反正切值
Atn(0)
0
Abs(X)
X的绝对值
Abs(-3.5)
3.5
Exp(X)
e的指定次幂,即ex
Exp(3)
20.086
Log(X)
一个数值X的自然对数
Log(10)
2.3
Sqr(X)
X的平方根
Sqr(9)
3
Sgn(X)
符号函数:
X>0,得到1,
X<0,得到-1,X=0得到0
Sgn(-3.5)
-1
Int(X)
不大于给定数X的最大整数
Int(-1.6)
-2
Fix(X)
X的整数部分
Fix(-1.6)
-1
Cint(X)
类型为:
Integer-322768~32767
小数部分四舍五入
CLng(X)
类型为:
Long-2147483648~2147483647小数部分四舍五入
Mid(C,N1,N2)
从C中N1位开始取出长度为N2的子串
Mid(“ABCDEFG”,3,2)
“CD”
Right(C,N)
返回字符串右边N个字符
Right(“ABCDEFG”,3)
“EFG”
Left(C,N)
返回字符串左边N个字符
Left(“ABCDEFG”,3)
“ABC”
Len(C,N)
测量字符串的长度
Len(“VB学习的开始”)
7
Space(N)
产生N个空格组成的字符串
“ABC”&“Space(N)”&“113”
“ABC123”
Date()
返回当前系统日期(yy-mm-dd)
Date()或Date
04-12-18
Time()
返回系统时间
Time()或Time
10:
36:
08
练习题:
1、下列变量名写法错误的是()
A、abc_123B、123abcC、abc123D、abc
2、下列语句中定义了一个实型变量的是()
A、DimendasIntegerB、DimsumAsSingle
C、DimNameAsStringD、其它三项都不对
3、在VB中,以下关于符号常量的声明,声明正确的是:
()
A、DimTAGasStringB、ConstTAGasString"Visual"+"Basic"
C、ConstTAGasString="VisualBasic"D、ConstTAGasString
4、下面()不是字符串常量
A、"True"B、#False#C、""D、"你好"
5、分析s=11\3+11Mod3,s的值是().
A、5B、6C、4D、3
6、下面表达式的值是false的有().
A、"969"<"n97"B、Int(4.99)<>len("basic")C、str(2000)<"1997"D、3>2
7、设a=2,b=3,在VB中,表达式a>bOrb>3值是:
()
A、FalseB、TrueC、-1D、1
8、VisualBasic中,下列()函数是求绝对值的。
A、ABS(X)B、SQR(X)C、INT(X)D、GN(X)
9、表达式Abs(-3.6)*sqr(100)的值是()。
A、-36B、360C、36D、-360
10、下列()数据类型不是数值型。
A、DateB、SingleC、DoubleD、Integer
11、下列函数中,返回值是字符串的是().
A、MidB、InstrC、ValD、Len
12、代数表达式
表达式后错误的是()
A、g*t*t/2B、1/2*g*t^2C、g*t^2/2D、gt^2/2
13、数学式子
在VB中的正确写法是:
()
A、(2*a+b)/4*aB、(2*a+b)/(4ab)C、(2a+b)(4ab)D、(2*a+b)/(4*a*b)
14、判断x是否在区间[a,b]上,在VB中以哪个逻辑表达式是正确的?
()
A、a
15、向n变量存入1个2位整数,要使此2位数十位和个位上的值分别存入x,y变量。
正确的算法是()。
选项:
x、①x=Left(n,1)②y=n-x*10③Printx:
Printy
B、①x=Left(n,1)②y=Right(n,1)③Printx:
Printy
C、①x=n/10②y=n-x*10③Printx:
Printy
D、①x=Int(n/10)②y=n-x*10③Printx:
Printy
16、向x变量中输入任意一个小写字母,再将x变量中的小写字母转成大写字母。
正确的算法是().
选项:
A、①输人字母到x②a=Asc(x)-32③x=chr(x)④Printx
B、①输人字母到x②a=Asc(x)+32③x=chr(x)④Printx
C、①输人字母到x②a=Val(x)一32③x=Chr(x)④Printx
D、①输人字母到x②a=Val(x)+32③x=Chr(x)④Printx
第二节程序的顺序结构
一、赋值语句
1.格式:
变量名=表达式
功能:
将右边的表达式的值赋给左边的变量
(1)“变量”可以是简单变量,也可以是字符变量;
(2)“=”是赋值符号,它的含义将表达式的值赋给左边的变量。
(3)表达式代表一个数值或一个字符串。
例1:
A=123;A=B;B=2*3;A=A+10;C$=“CHINA”
2.赋值语句的功能:
计算功能和赋值功能
3.注意事项
(1)赋值语句不是代数等式,赋值号与等号形同而意不同;
(2)赋值语句类型必须匹配;
(3)把字符串赋给串变量时,该字符串必须用双引号括起来;
(4)变量单元每次只能存一个数据,但可以多次赋值。
如:
C$=“COMPUTER”
注意:
“$”是区分字符串变量的的标志,即要在变量名后加“$”构成字符串变量,同时,字符串用双引号括起来,然后才赋给字符串变量。
二、输入数据的函数
InputBox()是提供从键盘输入数据的函数。
利用它可产生一个对话框,提示用户输入数据并单击命令按钮。
该函数返回值是字符串类型(string)。
InputBox()的语法格式为:
InputBox(提示信息,标题,默认值,位置)
提示信息:
指对输入数据的提示,显示在对话框中,不能省略
标题:
指运行此函数后弹出的对话框的标题。
默认值:
指默认的输入数据值
位置:
指运行此函数后弹出的对话框的左上角在屏幕上的位置
注意:
提示信息和标题是用引号引起来的字符串
三、输出数据的方法
1、基本格式:
Print输出内容
注意:
1、输出内容可以是数、变量、表达式,也可以是用引号括起来的字符串;
2、如果输出内容是数,变量,表达式,则输出的是数,变量,表达式,如果是用引号引起来的字符串,则原样输出;
3、多个输出内容,可以用逗号或分号分隔;如果用分号,则后面一个输出紧跟前一个输出;如果是逗号,则分区格式输出;
4、如果输出内容后面没有符号,则表示下一个Print换行输出,如果print中没有输出内容,则表示输出一个空行。
程序设计的顺序结构:
代码按照由上到下的顺序一行一行地执行。
程序执行过程中没有分支、没有重复,这种结构称为顺序结构。
例1:
交换两个变量中的数据。
PrivateSubcmdSwap_Click()
DimxAsSingle,yAsSingle
DimmAsSingle
x=inputbox(“请输入X的值”)
y=inputbox(“请输入Y的值”)
m=x
x=y
y=m//交换数据
printx,y
EndSub
例2:
从键盘上输入一个三位数,然后将它反向输出,如:
输入456,输出654。
(1)分析问题
设X为输入的三位整数,Y为X的方向输出。
因为X的百位、十位、个位分别为:
X1=X\100
X2=(X-X1*100)\10
X3=X-X1*100-X2*10
所以Y=X3*100+X2*10+X1
(2)设计算法
①输入X的值
②计算:
X1=X\100
③计算:
X2=(X-X1*100)\10
④计算:
X3=X-X1*100-X2*10
⑤计算:
Y=X3*100+X2*10+X1
⑥输出Y的值
(3)编写程序
Privatesubcommand_click()
Dimxasinteger,x1asinteger,x2asinteger,x3asinteger,yasinteger
X=inputbox(“x=”,”输入”)
X1=X\100
X2=(X-X1*100)\10
X3=X-X1*100-X2*10
Y=X3*100+X2*10+X1
Print“y=”;y
Endsub
(4)调试程序
练习题:
1、以下是一段VB程序:
a=1
b=a+1
c=a+b
它的基本结构属于()
A、顺序结构B、选择结构C、循环结构D、树型结构
2、下列VB程序运行后,变量x的值为().
x=2
Printx+l
Printx+2
3、执行以下程序,在弹出的第1个输入框输入“10”,第2个输入框输入“15”,则输出的结果为( )。
DimaAsInteger,bAsInteger
a=InputBox("输入","a=")
b=InputBox("输入","b=")
Printa;"+";b;"=",a+b
A.b+a=25 B.10+15=25C.a+b=25 D.15+10=25
4、已知A,B,C,D是整型变量,且都已有互不相同的值,执行语句“B=8:
A=C:
D=A:
D=B”后,其值相等的变量是( )。
A.A,DB.A,CC.C,BD.B,A
5、要交换变量A和B之值,应使用的语句组是( )。
A.A=B:
B=C:
C=AB.C=A:
A=B:
B=C
C.A=B:
B=AD.C=A:
B=A:
B=C
6、有如下VisualBasic程序段:
m="VB"
n="is"
t="easy"
t=m+n+t
该程序段运行后,变量t的值为。
7、试编写一个程序,实现输入一个四位数的数,然后将它倒序输出。
第三节程序设计的分支结构
一、行If语句
行If是指在一行中写完的If语句。
其一般格式为:
格式一:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高中 算法 描述 知识 分享