(一)算法
1.定义
相关题解:
1算法:就是解决问题的方法和步骤。算法是程序设计的“灵魂”,算法+数据结构=程序。单选题
1、运用计算机程序解决实际问题时,合理的步骤是(B)。
A、设计算法→分析问题→编写程序→调试程序
B、分析问题→设计算法→编写程序→调试程序
C、分析问题→编写程序→设计算法→调试程序
D、设计算法→编写程序→分析问题→调试程序
2.算法的描述方法:
1算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。
2自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。
3流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。
4伪代码描述法:是介于自然语言和计算机程序语言之间的一种算法描述。是专业软件开发人员常用方法。
相关题解:
单选题
1、图形符号" 菱形"在算法流程图描述中表示( B ).
A 处理或运算的功能
B 输入输出操作
C 用来判断条件是否满足需求
D 算法的开始或结束
2、图形符号" 矩形"在算法流程图描述中表示( A ).
A 处理或运算的功能
B 输入输出操作
C 用来判断条件是否满足需求
D 算法的开始或结束
3、以下哪个是算法的描述方法?( A )
A 流程图描述法
B 枚举法
C 顺序法
D 列表法
4、以下哪个是算法的描述方法?( D )
A 顺序法
B 列表法
C 集合法
D 自然语言描述法
介于自然语言和计算机语言之间的一种算法描述是下列哪个选项?()
Width决定控件宽度
TOP决定控件的靠顶部位置
Left决定控件的靠左边位置
Font设置控件中字体格式BackColor设置控件背景色ForeColor设置控件的前景色BorderStyle设置控件的边框风格
Alignment 即标签文字对齐属性:(0)Left Justify时文本左对齐;(1)Right Justify 时文本右对齐;设置为(2)Center时文本居中。
AutoSize 设置为False时输入控件Caption中文字超过控件宽度时超出部分被裁剪掉,设置为True时,控件可水平扩充,以适应控件Caption属性。
Visible决定控件是否可见
Enabled决定控件运行时是否有效
对象.属性=属性值
对象中属性可以在设计界面时通过属性窗中设置,也可以在运行时通过程序代码设置,方法如下
例:给文本框“Txt123”的“Text”属性赋值为字符串“20”,代码如下
Txt123.text =”20”
变量=对象.属性
如果要获取对象的状态或特性,这时就要读取对象的属性值,方法如下
例:读取文本框“txt123”的“Text”属性的代码如下
a = txt123.text
2方法
[对象].方法[参数名表]
例:form.print ”欢迎使用”
该语句使用print方法在form1窗体中显示字符串“欢迎使用”
3事件及事件驱动
事件是对象对外部操作的响应,如在程序执行时,单击命令按钮会产生一个Click事件。如需要命令按钮响应Click事件,就把完成Click事件功能的代码写到Click事件的事件过程中,与事件一一对应。
事件过程的形式如下:
Private Sub 对象_事件名( )
……………(事件过程代码)
End Sub
一个简单的VB程序
求圆的周长和面积
Private Sub Command1_Click()
Dim r As Single '定义r为单精度型
Dim c As Single '定义c为单精度型
Dim s As Single '定义s为单精度型
r = Val(Text1.Text) '输入半径r
c = 2 * 3.14159 * r '计算周长
s = 3.14159 * r * r '计算面积
Text2.Text = c '输出周长
Text3.Text = s '输出面积
End Sub
Private Sub Command2_Click()
End '退出
End Sub
相关题解:
单选题
1、下列关于程序设计说法正确的是( B )。
A、程序设计语言的发展经历了机器语言、汇编语言到高级语言的过程,比
较流行的高级语言是PASCAL, FORTRAN, EXCEL, C++等
B、程序设计就是寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程
C、程序设计语言和计算机语言是同一个概念的两个方面
D、程序设计就是指示计算机如何去解决间题或完成一组可执行指令的过程
2、下列说法错误的是(D ).
A、程序设计就是寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程
B、程序设计语言的发展经历了机器语言、汇编语言、高级语言的过程
C、计算机程序就是指计算机如何去解决间题或完成一组可执行指令的过程
D、程序设计语言和计算机语言是同一概念的两个方面
3、下列不属于程序设计语言中高级语言的是(C)。
A、BASIC
B、C语言
C、汇编语言
D、PASCAL
4、程序设计语言的发展历程中,不包括( A )。
A、自然语言
B、机器语言
C、汇编语言
D、高级语言
5、介于自然语言和计算机语言之间的一种算法描述是下列哪个选项?( A )
A、伪代码
B、流程图
C、高级语言
D、VB 程序设计语言
一、常量:批在程序进行过程中不变的量在VB中一般分数值常量与字符常量两种
数值常量:就是数学中说的常数,分整型常量和实型常量两种
整型常量:即整数,指不带小数点的数值如1、0、、-10、+35等都是合法的整数
实型常量:即实数,指带小数点的数值。
实型常量又分为定点数和浮点数两种。
例:定点数:3.14159和-6.8,1.99
浮点数:2E6、1E5、88E
例:1.2345×103可表示为1.2345E3,字母E表示底数10
浮点数就是数学上的科学计数法。
字符串常量:被一对双引号括起来的若干个合法的字符称为字符串常量。例
如:”China”、”Visual Basic”、”18”、”3.1415”等,双引号中字符,不包括双引号本身。符号常量:如果多次用到同一个常量,则可用一个有意义的名字表示这个常量。
二、变量:在程序执行过程中,其值可以改变的量称为变量
变量命名注意要点:
1、必须以字母开头,不能以数字或其他字符开头。
2、只能由字母、汉字、数字学或下划线组成,不能含有小数点、空格等字符。
3、最长不超过255个字符
4、不能以VB保留字作变量名,如语句定义符、函数名等。
5、VB不区分变量名中字母大小写。如HELLO和Hello是同一个变量。
数据及运算
(1)常用数据类型:(整型)Integer、(长整型)Long、(单精度型)Single、(双精度型)Double、(字符串型)String、(布尔型)Boolean、(日期型)Date
其中(整型)Integer、(长整型)Long、(单精度型)Single、(双精度型)Double属于数值型
表示范围:
(整型)Integer (-32768 —— 32767,存储为16 位,2 个字节)
(长整型)Long(-21亿—— 21亿,可以表示人口数量)
(布尔型)Boolean(True 真、是或False假、非)
(字符串型)String(定长字符串:0——65535个字符,不定长字符串:0——20亿个字符)
字符串型数据是指用“ ”括起来的一串字符。如“欢迎进入VB世界!”、“ Visual Basic” 、“1234 ”都是字符串类型。
(日期型)Date(100/1/1——9999/12/31)
日期型数据专门用来处理日期和时间。VB采用一对“#”把日期和时间的值括起来,如#2003/08/20#表示2003年8月20日。
(2)常量和变量的命名、声明及赋值
符号常量的声明:Const 常量名[As 常量类型] = 常量值(表达式)
如:Const pi As Single = 3.14159 常量名为pi
变量的声明:
Dim <变量名>As <变量类型>
如:Dim a As Integer 定义一个整型变量,变量名为a
变量的赋值
VB中使用Let语句给变量赋值,其形式如下:
[Let] 变量= 表达式其中,方括号[]表示这部分内容是可选的,通常可以省略该关键字。
例题
Private Sub Form_Click()
Dim a As Integer, b As Integer, c As Integer
Dim str As String
Let a = 54
Let b = 114
c = a + b
str = "Hello World"
Print "a="; a, "b="; b, "c="; c
Print str
End Sub
VB语言中,下列数据类型说明符中表示整型的是(B)。
A、Boolean
B、Integer
C、Date
D、String
数据的输出
程序中运算得到的结果,除可以使用文本框和标签显示外,对于大批量的数据更适合用Pint 方法输出,格式如下
[对象] . Pint [表达式列表]
例题:
Private Sub Form_Click()
Dim x As Single, y As Single
Form1.Print -61; -34
Form1.Print 9 * 2; 12
Form1.Print "This is"; "a book"
x = 3: y = 4
Print "x="; x, "y="; y
End Sub
注意:Print方法
相关题解:
单选题
在VB 语言中,下列合法的变量名是(B)。
A、34ab
B、ab34
C、*abc
D、c\c
下列选项中属于字符串常量的是()。
A、ab
B、a+b
C、"1235"
D、1235
在VB 语言中,下列合法的变量名是()。
A、aa
B、a*b
C、7ab
D、dim
运算符
1、算术运算:
+ 加-- 减*乘
^ 指数例:2^2 = 4
/ (浮点)除例:5 / 2 = 2.5
\ 整除例:5 \ 2 = 2
Mod 求余数例:5 Mod 2 = 1
相关题解
单选题
1、分析下列程序:
Private Sub Form_Click()
s=11\3 + 11 Mod 3
Print s
End Sub
当单击窗体时s的值是( A ).
A、5
B、6
C、4
D、3
关系运算
=赋值、<小于号
<>不等于>大于号
>=大于等于号<=小于等于号
注意:关系表达式的运算结果为布尔值True 或False
例:3 > 2 结果为True(真或是)
相关题解
单选题
1、下面表达式的值是false的有( C ).
A、"969" < "n97"
B、Int(4.99) <> len("basic")
C、str(2000) < "1997"
D、3 > 2
逻辑运算
Not(取反)And(与)Or(或)
运算结果为布尔型(Boolean)True 或False
逻辑运算符的优先级为:No > And > Or
1、下列逻辑表达式的值为“假”的是(A)。
A、2 + 4 > 8
B、3 + 12 = 15
C、5 > 0 And 4 > 3
D、10 / 5 <3
2、下列逻辑表达式的值为“假”的是(D)。
A、3 + 5 > 7
B、8 / 4 < 4
C、5 > 3 And 3 > 2
D、4 + 11 > 20
3、已知A,B,C,D 是简单变量,且都已有互不相同的值,执行语句A=C: D=B 后,下列
关系表达式逻辑值为“真”的是(A)。
A、C=A
B、A=B
C、D=C
D、B=C
日期运算符与日期表达式
日期表达式是用日期运算符“+”或“-”将算式表达式、日期型常量、日期型变量、日期函数等连接起来的式子,如表达式“#2003/09/01# +30”的运算结果是“2003-10-1”;表达式“#2003/10/20# - #2003/10/10#”的运算结果为整数10
相关题解
单选题
1、设a=2, b=3,在VB中,表达式a>b Or b>3值是:( B )
A、False
B、True
C、-1
D、1
字符运算
字符串连接符为“+”和“&”
“123” + “45” = “12345”
“123” & “45” = “12345”
123 + “45” = 168
“123” + 45 = 168
相关题解
单选题
VB的字符串运算符是“&”,该运算符主要用于连接两个或更多的字符串。如:"abcd" & "efg" 连接后的运算结果为:"abcdefg"。那么,"1+2" & "3"的运算结果为:(C)。
A、33
B、6
C、"1+23"
D、True
运算符的执行顺序
在VB中,当一个表达式中同时出现多种运算符时,运算次序由运算符的优先级决定,优先级高的运算符先运算,优先级相同的从左向右进行运算。不同性质的运算符优先级如下。算术运算符>字符串运算符> 关系运算符> 逻辑运算符
相关题解
单选题
在VB语言中,表示“a大于0且b小于12”的正确表达式是(D)。
A、b<12 or a > 0
B、b > 12 And a < 0
C、a > 12 Or a < 0
D、a > 0 And b < 12
常用函数
数学函数
Abs(x) 求x 的绝对值,例:abs(-3.6) = 3.6
Sqr(x) 求x 的平方根,例:sqr(100) = 10
Int(x)求≤x的最大整数例:int(3.6) = 3 int(--3.6) = --4
Rnd(x)产生[0,1)之间的随机数(不包括1)
Sin(x)
Cos(x)
Tan(x)
Atn(x)
Exp(x)
Log(x)
使用三角函数时,参数应是弧度,如数学中sin300应写为:sin(30*3.14159/180)字符串函数
Len(字符串) 求字符串的长度,例:Len(“hello”) = 5
Left(字符串,截取长度) 截取字符串左边部分,例:Left(“hello”,2) = “he”
Mid(字符串,起始位置,截取长度) ,例:Mid(“hello”,2,2) = “el”
Right (字符串,长度)
截取字符串右边部分。例: Right (“hello”,2) = “lo”
String(数值,字符)生成指定长度与指定字符的字符串,例:String(3,”9”) = ”999”
函数mid (C,N1,N2)的作用是从字符串C中N1位开始取出长度为N2 的子串。那么,
Mid ("aBcDeFg", 3, 3)的值为(D)。
A、aBc
B、cde
C、eFg
D、cDe
常用转换函数
Val(字符串) 将字符串转换为数值
Str(数值) 将数值转换为字符串
Chr(字符代码)
Asc(字符)
Tab定位函数的使用
例题
Private Sub Form_Click()
Dim a As Integer
Dim b As Integer
a = 4:
b = 9
Print Tab(1); "数"; Tab(9); "平方"; Tab(18); "立方"; Tab(27); "平方根"
Print Tab(1); a; Tab(9); a * a; Tab(18); a * a * a; Tab(27); Sqr(a)
Print Tab(1); b; Tab(9); b * b; Tab(18); b * b * b; Tab(27); Sqr(b)
End Sub
用户交互函数
VB提供InputBox( )和MsgBox( )函数用于人机交互
InputBox( )其语法格式为:
InputBox(提示[,标题][,默认值][,X坐标][,Y坐标])
MsgBox( )其语法格式为:
MsgBox(提示信息[,按钮][,标题] )
相关题解
单选题
1、Visual Basic中,下列( A )函数是求绝对值的。
A、ABS(X)
B、SQR(X)
C、INT(X)
D、GN(X)
2、表达式Abs(-3.6)*sqr(100)的值是( C )。
A、-36
B、360
C、36
D、-360
3、下列( A )数据类型不是数值型。
A、Date
B、Single
C、Double
D、Integer
4、下列函数中,返回值是字符串的是( A ).
A、Mid
B、Instr
C、Val
D、Len
5、下列( A )函数返回系统的当前时间。
A、time()
B、date()
C、day()
D、year()
6、代数表达式表达式后错误的是( D )
A、g*t*t/2
B、1/2*g*t^2
C、g*t^2/2
D、gt^2/2
7、数学式子在VB中的正确写法是:()
A、(2*a+b)/4*a B 、(2*a+b)/(4ab) C 、(2a+b)(4ab) D 、(2*a+b)/(4*a*b)
8、判断x是否在区间[a, b]上,在VB中以哪个逻辑表达式是正确的?( C )
A 、a
综合分析
1、向n变量存入1个2位整数,要使此2位数十位和个位上的值分别存入x, y变量。正确的算法是( D )。
选项:
x、①x=Left(n, 1) ②y=n-x*10 ③Print x:Print y
B、①x=Left(n, 1) ②y=Right(n, 1) ③Print x:Print y
C、①x=n/10 ②y=n-x*10 ③Print x:Print y
D、①x=Int(n/10) ②y=n-x*10 ③Print x:Print y
2、向x变量中输入任意一个小写字母,再将x变量中的小写字母转成大写字母。正确的算法是( A ).
选项:
A、①输人字母到x ②a=Asc(x)-32 ③x=chr(x) ④Print x
B、①输人字母到x ②a=Asc(x)+32 ③x=chr(x) ④Print x
C、①输人字母到x ②a=Val(x)一32 ③x=Chr(x) ④Print x
D、①输人字母到x ②a=Val(x)+32 ③x=Chr(x) ④Print x
程序设计的顺序结构
顺序结构:代码按照由上到下的顺序一行一行地执行。程序执行过程中没有分支、没有重复,这种结构称为顺序结构。
例题:交换两个变量中的数据。
Private Sub cmdSwap_Click()
Dim x As Single, y As Single
Dim m As Single
x = Val(txtsx.Text)
y = Val(txtsy.Text)
m = x: x = y: y = m '交换数据
txtdx.Text = Str(x)
txtdy.Text = Str(y)
End Sub
Private Sub cmdEnd_Click()
End
相关题解
单选题
1、以下是一段VB程序:
a = 1
b = a + 1
c = a + b
它的基本结构属于(A )
A、顺序结构
B、选择结构
C、循环结构
D、树型结构
2、下列VB程序运行后,变量x的值为( A ).
x=2
Print x+l
Print x+2
A、2
B、3
C、5
D、8
程序设计的分支结构
行If语句
行If是指在一行中写完的If语句。其一般格式为:
格式一:If条件Then语句
执行这种形式的If语句时,首先对条件进行判断。若条件成立,则执行Then后面的语句;若条件不成立,则执行If语句后继程序行的语句
格式二:If条件Then语句1 Else语句2
例题:输入三个不相同的数,求出其中最小数。
Private Sub Form_Click()
Dim a As Single, b As Single, c As Single
Dim Min As Single
a = InputBox("输入a", "输入框")
b = InputBox("输入b", "输入框")
c = InputBox("输入c", "输入框")
If a < b Then Min = a Else Min = b
If c < Min Then Min = c
Print "最小数="; Min
执行这种形式的语句时,先进行判断。若条件成立,则执行语句1;否则执行语句2。
块If语句
上述If-then语句只能根据条件的真假是否执行一条语句,当Then部分和Else部分包含的内容较多时,则可选用“块If语句”结构。
格式三:If条件Then
语句块
End If
例题:当从输入一个数时,当该数大于或等于60时显示"及格",该数小于60时显示"不及格"。
Private Sub Command1_Click()
Dim a As Single
a = Val(Text1.Text)
If a >= 60 Then
Label1.Caption = "及格"
End If
If a < 60 Then
Label1.Caption = "不及格"
End If
End Sub
格式四:If条件Then
语句块1
Else
语句块2
End If
例题:编写程序,求函数Y的值(当x≤0时,y=3x+1;当x>0时,y=4x+1)。Private Sub Form_Click()
Dim x As Single
Dim y As Single
x = Val(InputBox("请输入变量x"))
If x <= 0 Then
y = 3 * x + 1
Else
y = 4 * x + 1
End If
Print "y="; y
End Sub
相关题解
单选题
1、以下是一段Visual Basic程序:
If I=1 Then
X=X+1
Else
X=X*2
End If
它的基本结构属于( A ).
A、选择结构
B、循环结构
C、顺序结构
D、树型结构
2、下列程序段运行后,变量Value的值是(A )
x = 20
If x >= 10 Then
Value = 5 * x
Else
Value = 4 * x
End If
A、100
B、80
C、90
D、70
综合分析
1、如要完成:从键盘输入一个正整数,判断是否是奇数,如是就在屏幕上显示。比较好的算法是( B D )。
选项:
A、①输人的数存人n变量②f=(n/2=Int(n/2))③如果f中的值为True就显示n中值
B、①输人的数存人n变量②f=(n/2=Int(n/2))③如果f中的值为False就显示n中值
C、①输人的数存人n变量②如果n/2=Int(n/2)成立,就显示n中值
D、①输人的数存人n变量②如果n/2=Int(n/2)不成立,就显示n中值
2、下面是判断变量x是不是能被5整除的偶数的程序,横线上的逻辑表达式应为( AB ) Private Sub commandl_Click()
Dim x As Integer
x=Val(Text1. Text)
If ____ = 0 Then
Labell.Caption=这个数是能被5整除的偶数
Else
Labell.Caption=这个数不是能被5整除的偶数
End If
选项:
A、(x Mod 5) = 0 And (x Mod 2 ) = 0
B、x Mod 10 = 0
C、x Mod 5 = 0
D、x Mod 2 = 0
3、如要完成:从键盘输入一个正整数,判断是否是偶数,如是就在屏幕上显示。比较好
的算法是( AC )。
选项:
A、①输入的数存人n变量②f=(n/2=Int(n/2))③如果f中的值为True就显示n中值
B、①输入的数存人n变量②f=(n/2=Int(n/2))③如果f中的值为False就显示n中值
C、①输入的数存人n变量②如果n/2=Int(n/2)成立,就显示n中值
D、①输入的数存人n变量②如果n/2=Int(n/2)不成立,就显示n中值
4、下列程序段运行后,m的值为( A )
A=2: b=1: c=5
If A < b Then m = A Else m = b
If c < m Then m = c
选项:
A、1
B、2
C、5
D、提示错误,无答案
程序设计的循环结构
一、For-Next循环
For循环变量一般形式是:
For循环变量=初值To终值Step循环变量增量
循环体
Nxt循环变量
例题1:求s=1+2+3+4.....+100
Private Sub Form_Click()
Dim i As Integer
Dim sum As Integer
sum = 0
For i = 1 To 100
sum = sum + i ' 循环体
Next i
Print "sum="; sum
End Sub
例题2:Step循环变量增量
Private Sub Form_Click()
For j = 3 To 15 Step 2
Print j
Next j
End Sub
循环变量的初值、终值、循环变量增量都是数值型。其中要重复执行的操作称为循环体,增量可正可负,如果没有设置Step,则增量的缺省值为1
1、循环变量取初值;
2、循环变量与终值比较,没有超过终值转3,否则循结束,接着执行循环语句的后继语句;
3、执行一次循环体
4、循环变量增加一个增量
5、重复步骤2~4。
以上可以看出,For-Next循环变量是一种当型循环。说明
(a)For语句与Next语句必须成对出现,而且它们当中的“循环变量”必须是同一个变量,如上例中均为I。
(b)当循环变量为正时,循环变量超过终值,是指循环变量的值大于终值时;若为负,则是指循环变量的值小于终值。
二、Do-Loop循环
For-Next循环的次数是确定的,但是有的问题只知道循环结束的条件,重复执行的次数事先并不知道,这是需要Do-Loop循环
格式一:Do While条件
循环体
Loop
例题:求最大公约数
Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
Dim r As Integer
a = Val(Text1.Text)
b = Val(Text2.Text)
r = a Mod b
Do While r <> 0
a = b
b = r
r = a Mod b
Loop
Text3.Text = Str(b)
End Sub
Private Sub Command2_Click()
End
End Sub
当VB执行Do While-Loop循环时,先判断指定的条件是否为真,若条件为真,执行循环体,条件为假时退出循环。
格式二:Do
循环体
Loop Until条件
这种循环的执行过程如图所示。进入循环体后,先执行一次循环体A,然后再检查条件P 是否成立。如果不成立,就重复执行循环体A,直到条件P成立退出循环体。
数学知识点学练考-算法与程序框图 【教法探析】 【一】创设情境: 算法能够用自然语言来描述,但为了使算法的程序或步骤表达得更为直观,我们更经常地用图形方式来表示它。 差不多概念: 〔1 序的开始和结束,因此一个完整的流程图的首末两端必须是起止框。 〔2 算法中的任何需要输入、输出的位置。 〔3 的图形符号。 〔4 个出口,它是惟一的具有两个或两个以上出口的符号,在只有两个出口的情形中,通常都分成“是”与“否”〔也可用“Y”与“N”〕两个分支。 〔5〕流程线::程序框与程序框间的连接线。 〔6〕连接点::连接程序框界点。
在学习这部分知识的时候,要掌握各个图形的形状、作用及使用规那么,画程序框图的规那么如下: 〔1〕使用标准的图形符号。 〔2〕框图一般按从上到下、从左到右的方向画。 〔3〕除判断框外,大多数流程图符号只有一个进入点和一个退出点。判断框具有超过一个退出点的惟一符号。 〔4〕判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。 〔5〕在图形符号内描述的语言要特别简练清晰。 【二】算法的差不多逻辑结构: 1〕顺序结构:顺序结构描述的是是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的。 2〕条件结构:一些简单的算法能够用顺序结构来表示,然而这种结构无法对描述对象进行逻辑判断,并依照判断结果进行不同的处理。因此,需要有另一种逻辑结构来处理这类问题,这种结构叫做条
件结构。它是依照指定条件选择执行不同指令的操纵结构。 【学法导引】 例1:一个三角形的三边分别为2、3、4,利用海伦公式设计一个算法,求出它的面积,并画出算法的程序框图。 算法分析:这是一个简单的问题,只需先算出p 的值,再将它代入公式,最后输出结果,只用顺序结构就能够表达出算法。 程序框图: 练习1积的框图。 例23个数为三边边长的三角形是否存在,画出那个算法的程序框图。 算法分析:判断分别以这3个数为三边边长的三角形是否存在,只需要验收这3个数当中任意两个数的和是否大于第3个数,这就需要用到条件结构。 程序框图: a+b>c,a+c>b,b+c>a 否同时成立? 是 课堂小结: 本节课要紧讲述了程序框图的差不多知识,包括常用的图形符号、算法的差不多逻辑结构,算法的差不多逻辑结构有三种,即顺序 结构、条件结构和循环结构。其中顺序结构是最简单的结构,也是最
学习必备欢迎下载 第一课初识算法与程序设计 一、教学目标 1、知识与技能 (1)理解算法的概念,培养学生自我探索信息,高效获取信息的能力; (2)能初步利用算法解决简单的问题,培养学生的理论联系实际能力和动 手操作能力。 2、情感、态度、价值观 学生在学习过程中,通过亲身经历体验获得对此算法的感性认识,培养学 生自我获取信息、分析评价信息、、表达呈现信息的能力,进一步提高其信息素养。 二、教学重点难点 重点:算法概念的理解 难点:如何科学合理的选择和设计算法。 三、教学策略与手段 以趣味性问题设置情境,激发学生探索解决问题的兴趣,与学生进行互动 探讨,通过 Flash 演示材料,比较直观地把抽象的问题简单化,使学生的思考 逐步深入,从而总结出算法的概念,学会如何设计和选择算法,培养学生自主 探究学习的能力。 四、教学过程( 1 课时) (一)我们来共同寻找下面一些生活中比较现实的问题的解决方法。 【问题一】天下真的有“不要钱的午餐”吗? 某一餐馆门口海报上写着“不要钱的午餐”,规则如下:在三个月内,来
的顺序都坐一遍,以后来吃饭就可永远免费” 。于是有人想,这太容易了,每人每次坐不同的位置,吃五次不就行了?于是他就叫上自己的朋友参加这项活动,可是,吃了十次之后,还没有吃上免费午餐,这是怎么回事呢? 学生们感觉非常有意思,很快以小组为单位进行热烈的讨论并得出了破解问题 的步骤:①第一个座位5个人都有坐的机会②第二个座位只有4个人中的任一 个有坐的机会(一个人不能同时坐两个座位)③第三个座位只有3个人中的任 一个有坐的机会④第四个座位只有2个人中的任一个有坐的机会⑤第五个座位 只有1个人有坐的机会⑥计算:5×4×3×2×1=120⑦得出结论:需 要吃120次才有可能吃上免费午餐。 【问题二】有三个和尚和三个妖怪过河,只有一条能装下两个人的船,在河的 任何一方或者船上,如果妖怪的人数大于和尚的人数,那么和尚就会有被吃掉 的危险。你能不能找出一种安全的渡河方法呢?请写一写你的渡河方案。学 生:学生讨论回答。 〖展示步骤〗 ①两个妖怪先过河,一个妖怪回来; ②再两个妖怪过河,一个妖怪回来; ③两个和尚过河,一个妖怪和一个和尚回来; ④两个和尚过河,一个妖怪回来; ⑤两个妖怪过河,一个妖怪回来; ⑥两个妖怪过河。 【F lash 动画展示】通过讨论和动画展示,我们可以知道,计算机解决问题和 人解决问题一样需要有清晰的解题步骤。算法就是解决问题的程序或步骤。(二)【课件展示】算法的概念:
算法与程序框图 一、程序框图与算法基本逻辑结构: 1.程序框图符号及作用: 例:解一元二次方程:2 0(0)ax bx c a ++=≠ 2.画程序框图的规则: 为了使大家彼此之间能够读懂各自画出的框图,必须遵守一些共同的规则,下面对一些常用的规则做一简要介绍. (1)实用标准的框图符号. (2)框图一般按从上到下、从左到右的方向画. (3)一个完整的程序框图必须有终端框,用于表示程序的开始和结束. (4)除判断框外,大多数框图符号只有一个进入点和一个退出点,判断框是具有超过一个退出点的唯一 符号,另外,一种判断框是“是”与“不是”两分支的判断,而且有且仅有两个结果;还有一种是多分支判断,有几个不同的结果. (5)在图形符号内用于描述的语言要非常简练清楚.
3.算法的三种基本逻辑结构: (1)顺序结构 顺序结构是最简单的算法结构,语句与语句之间, 框与框之间是按从上到下的顺序进行的,它是由 若干个依次执行的处理步骤组成的,它是任何一 个算法离不开的基本结构.如图,只有在执行完步 骤n 后,才能接着执行步骤n+1. 例:.已知梯形的上底、下底和高分别为5、8、9,写出求梯形的面积的算法,画出流程图. 解:算法如下: S1 a ←5; S2 b ←8; S3 h ←9; S4 S ←(a +b )×h /2; S5 输出S . 流程图如下: (2)条件结构 一些简单的算法可以用顺序结构来实现,顺序结构中所表达的逻辑关系是自然串行,线性排列的.但这种结构无法描述逻辑判断,并根据判断结果进行不同的处理的操作,(例如遇到十字路口看信号灯过马路的问题)因此,需要另一种逻辑结构来处理这类问题. 条件结构的结构形式如图,在此结构中含有一个判断框,算法执行到此判断框给定的条件P 时,根据条件P 是否成立,选择不同的执行框(步骤A ,步骤B ),无论条件P 是否成立,只能执行步骤A 或步骤B 之一,不可以两者都执行或都不执行.步骤A 和步骤B 中可以有一个是空的. 例:某铁路客运部门规定甲、乙两地之间旅客托运行李的费用为 0.53, 50, 500.53(50)0.85, 50, c ωωωω?≤?=? ?+-?>?其中ω(单位:kg )为行李的重量. 试给出计算费用c (单位:元)的一个算法,并画出流程图. 1S 输入行李的重量ω; 2S 如果50ω≤,那么0.53c ω=?, 否则500.53(50)0.85c ω=?+-?; 3S 输出行李的重量ω和运费c . 步骤n 步骤n+1 ↓ ↓ ↓ 开始结束b h a 589S (+)×/2a b h 输出S 满足条件?步骤A 步骤B 是否满足条件?步骤A 是 否
对分查找算法及程序实现 一、设计思想 对分查找是计算机科学中的一个基础算法。对于一个基础算法的学习,同样可以让学生在一定的情境下,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程。本堂课以一个游戏暖场,同时激活学生的思维,引导学生去探索游戏或生活背后的科学原理。为了让学生在教师的引导下能自我解析算法的形成过程,本课分解了问题动作,找出问题的全部可能情况,在对全部可能情况总结归纳的情况下,得出对分查找的基础算法,最后在程序中得到实现,从而使学生建立起对分查找算法形成的科学逻辑结构。 二、教材分析 本课的课程标准内容: (一)计算机解决问题的基本过程(1)结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。 (三)算法与问题解决例举 C 查找、排序与问题解决 (2)通过实例,掌握使用数据查找算法设计程序解决问题的方法。 本课的《学科教学指导意见》内容: 基本要求:1.初步掌握对分查找算法。 2.初步掌握对分查找算法的程序实现。
教材内容:第二章算法实例 2.4.3对分查找和第五章5.4查找算法的程序实现,课题定为对分查找算法及程序实现,安排两个课时,第一课时着重是对分查找算法的形成和初步程序实现,第二课时利用对分查找算法解决一些实际问题的程序实现,本教学设计为第一课时。 从《课程标准》和《学科教学指导意见》对本课教学内容的要求来看,要求学生能从问题出发,通过相应的科学步骤形成对分查找的算法。对学生来说,要求通过这一课时的学习能初步掌握或了解对分查找的前提条件、解决问题的对象,明确对分查找算法结构和对分查找的意义。 三、学情分析 学生应该已经掌握程序设计的基本思想,掌握赋值语句、选择语句、循环语句的基本用法和VB基本操作,这节课学生可能会遇到的最大问题是:如何归纳总结对分查找解决不同情况问题的一般规律,鉴于此,在教学中要积极引导学生采取分解动作、比较迁移等学习策略。 四、教学目标 知识与技能:理解对分查找的概念和特点,通过分步解析获取对分查找的解题结构,初步掌握对分查找算法的程序实现。 过程与方法:通过分析多种不同的可能情况,逐步归纳对分查找的基本思想和方法,确定解题步骤。 情感态度与价值观:通过实践体验科学解题的重要性,增强效率意识和全局观念,感受对分查找算法的魅力,养成始终坚持、不断积累才能获得成功的意志品质。 五、重点难点 教学重点和难点:分解并理解对分查找的过程。 六、教学策略与手段
第二节算法与程序框图 一、基础知识 1.算法 (1)算法通常是指按照一定规则解决某一类问题的明确和有限的步骤. (2)应用:算法通常可以编成计算机程序,让计算机执行并解决问题. 2.程序框图 程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形.3.三种基本逻辑结构 (1)顺序结构 (2)条件结构
(3)循环结构 三种基本逻辑结构的适用情境 (1)顺序结构:要解决的问题不需要分类讨论. (2)条件结构:要解决的问题需要分类讨论. (3)循环结构:要解决的问题要进行许多重复的步骤,且这些步骤之间有相同的规律.考点一顺序结构和条件结构
[例1] (2019·沈阳质检)已知一个算法的程序框图如图所示,当输出的结果为0时,输入的实数x 的值为( ) A .-3 B .-3或9 C .3或-9 D .-3或-9 [解析] 当x ≤0时,y =????12x -8=0,x =-3;当x >0时,y =2-log 3x =0,x =9.故x =-3或x =9,选B. [答案] B [例2] 某程序框图如图所示,现输入如下四个函数,则可以输出的函数为( ) A .f (x )=cos x x ????-π 2 C .f (x )=|x | x D .f (x )=x 2ln(x 2+1) [解析] 由程序框图知该程序输出的是存在零点的奇函数,选项A 、C 中的函数虽然是奇函数,但在给定区间上不存在零点,故排除A 、C.选项D 中的函数是偶函数,故排除D.选B. [答案] B [解题技法] 顺序结构和条件结构的运算方法 (1)顺序结构是最简单的算法结构,语句与语句之间、框与框之间是按从上到下的顺序进行的.解决此类问题,只需分清运算步骤,赋值量及其范围进行逐步运算即可. (2)条件结构中条件的判断关键是明确条件结构的功能,然后根据“是”的分支成立的条件进行判断. (3)对于条件结构,无论判断框中的条件是否成立,都只能执行两个分支中的一个,不能同时执行两个分支. [题组训练] 1.半径为r 的圆的面积公式为S =πr 2,当r =5时,计算面积的流程图为( ) 解析:选D 因为输入和输出框是平行四边形,故计算面积的流程图为D. 2.运行如图所示的程序框图,可输出B =______,C =______. 递归算法的实现 【基本信息】 【课标要求】 (三)算法与问题解决例举 1. 内容标准 递归法与问题解决 (1)了解使用递归法设计算法的基本过程。 (2)能够根据具体问题的要求,使用递归法设计算法、编写递归函数、编写程序、求解问题。 【教材分析】 “算法的程序实现”是《算法与程序设计》选修模块第三单元的内容,本节课是“递归算法的程序实现”,前面学习了用解析法解决问题、穷举法解决问题、在数组中查找数据、对数进行排序以及本节的前一小节知识点“什么是自定义函数”的学习,在学习自定义函数的基础上,学习递归算法的程序实现是自定义函数的具体应用,培养学生“自顶向下”、“逐步求精”的意识起着重要的作用。 『递归算法在算法的学习过程中是一个难点,在PASCAL和C语言等程序语言的学习过程中,往往是将其放在“函数与过程”这一章节中来讲解的。递归算法的实现也是用函数或是过程的自我调用来实现的。从这一点上来讲,作者对教材的分析与把握是准确的,思路是清晰的,目标是明确的。』 【学情分析】 教学对象是高中二年级学生,前面学习了程序设计的各种结构,在学习程序设计各种结构的应用过程中培养了用计算机编程解决现实中问题的能力,特别是在学习循环语句的过程中,应用了大量的“递推”算法。前一节课学习了如何自定义函数,在此基础上学习深入学习和体会自定义函数的应用。以递推算法的逆向思维进行求解问题,在学习过程中体会递归算法的思想过程。多维度的思考问题和解决问题是提高学生的学习兴趣关键。 『递归算法的本质是递推,而递推的实现正是通过循环语句来完成的。作者准确把握了学生前面的学习情况,对递归算法的本质与特征也分析的很透彻,可以说作者对教学任务的分析是很成功的,接来就要看,在成功分析的基础上作者是如何通过设计教学来解决教学难点的了。』 【教学目标】 算法与程序设计思想 【基本信息】 【课标要求】 (一)利用计算机解决问题的基本过程 (1)结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。 (2)经历用自然语言、流程图或伪代码等方法描述算法的过程。 (4)了解程序设计语言、编辑程序、编译程序、连接程序以及程序开发环境等基本知识。 【学情分析】 高一年级的学生已具备了一定的观察、思考、分析和解决问题能力,也已有了顺序结构、分支结构、循环结构等知识的储备。因此,对于如何将解决问题的思路画成流程图已有一定的基础,但可能还不很熟练,尤其对刚学过的循环结构,教师在课堂上要注意引导。 『此处说“已有了顺序结构、分支结构、循环结构等知识的储备”,应该是指在必修部分对“计算机解决实际问题的基本过程”已有所体验与了解,或是指已学习过数学中相关模块的知识,这是本案例教学得以实施的必不可少的前提条件。』 【教学目标】 1.知识与技能: 建立求一批数据中最大值的算法设计思想,并将算法的设计思想用流程图表示出来。 2.过程与方法: 利用现实生活中比较身高的活动,以及对武术比赛中“打擂台”流程的逐步梳理,让学生学会从此类生活实际中提炼出求最大值的思想方法,即算法思想。 培养学生分析问题、解决问题的能力,让学生学会在面对问题时能梳理出解决问题的清晰思路,进而设计出解决某个特定问题的有限步骤,从而理解计算机是如何解决、处理某种问题的。 『在过程上,通过现实生活中的实例来引导学生总结“求最大值”的算法思想。过程的实现关键在于实例引用是否贴切,是否有利于学生向抽象结论的构建。本案例的实例选择是符合这一要求的。在方法上,注重培养学生分析、解决问题的一般能力,再次体验与理解应用计算机解决问题的基本过程,为后面更一步的学习打下基础,积累信心。』 3.情感态度与价值观: 算法与程序框图习题(含答案) 一、单选题 1.执行如图所示的程序框图输出的结果是() A.B.C.D. 2.已知某程序框图如图所示,则执行该程序后输出的结果是 A.B. C.D. 3.下图是把二进制的数化成十进制数的一个程序框图,则判断框内应填入的条件是() A.B.C.D. 4.我国元朝著名数学家朱世杰在《四元玉鉴》中有一首待:“我有一壶酒,携着游春走,遇店添一倍,逢有饮一斗,店友经三处,没有壶中酒,借问此壶中,当原多少酒?”用程序框图表达如图所示,即最终输出的,问一开始输入的() A.B.C.D. 5.中国有个名句“运筹帷幄之中,决胜千里之外”.其中的“筹”原意是指《孙子算经》中记载的算筹,古代是用算筹来进行计算,算筹是将几寸长的小竹棍摆在平面上进行运算,算筹的摆放形式有纵横两种形式,如下表: 表示一个多位数时,像阿拉伯计数一样,把各个数位的数码从左到右排列,但各位数码的筹式需要纵横相间,个位,百位,万位用纵式表示,十位,千位,十万位用横式表示,以此类推,例如2268用算筹表示就是=||丄|||.执行如图所示程序框图,若输人的x=1, y = 2,则输出的S用算筹表示为 A.B.C.D. 6.在中,,,边的四等分点分别为,靠近,执行下图算法后结果为() A.6 B.7 C.8 D.9 7.宋元时期名著《算学启蒙》中有关于“松竹并生”的问题:松长五尺,竹长五尺,若输入的分别是5,2,则输出的=() A.B.C.D. 8.如图所示的程序框图,输出的 A.18B.41 C.88D.183 9.执行图1所示的程序框图,则S的值为() 图1 A.16B.32 C.64D.128 二、填空题 10.我国南北朝时期的数学家张丘建是世界数学史上解决不定方程的第一人,他在《张丘建算经》中给出一个解不定方程的百鸡问题,问题如下:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一.百钱买百鸡,问鸡翁母雏各几何?用代数方法表述为:设鸡翁、鸡母、鸡雏的数量分别为,,,则鸡翁、鸡母、鸡雏的数量即为方程组 的解.其解题过程可用框图表示如下图所示,则框图中正整数的值为______. 11.运行如图所示的程序,若输入的是,则输出的值是__________. 解析法 一、基本说明 1、教学内容所属模块:信息技术选修1《算法与程序设计》 2、年级:高一年级 3、所用教材出版单位:上海科技教育出版社 4、所属的章节:第三章第一节 5、学时数:45分钟 二、教学设计 1、教学目标: (1)了解解析算法的基本概念。通过实例的学习,掌握用解析算法设计程序的基本思路。 (2)学会根据问题寻找恰当算法和解决问题的方法,并进一步理解分析问题、设计算法、编写程序、调试程序这一用计算机解决问题的过程和方法。 (3)学会合作、交流,培养勇于实践、勤于思考和善于总结的精神和态度。 2、内容分析: 本节内容为用解析法设计程序,解析法是一种最基本的常用算法,在之前三种基本结构程序设计的例题分析中也曾使用过,该算法的分析也为今后的各种算法学习做好了准备。本课教学重点是“理解解析算法的思想,能写出求解问题的解析式并用程序实现”,本课的教学难点是“如何学会分析问题,合理设计算法,建立求解问题的解析式”。 3、学情分析: 学生已经具备了可视化编程的能力及程序设计的基本技能,这样就可以将教学的重点放在算法的分析上,培养学生解决实际问题的能力。 4、设计思路: 本课采用一个测量树高的例子进行引入,用简单的例子分析解析算法,然后采用教材上的活动“求解铁丝问题”让学生掌握解析算法的实现过程,用“求岛屿面积”的实践环节巩固学生的学习。课堂教学中主要采用任务驱动、分析归纳、小组合作、自主探究相结合的学习方法。 题 2’ 从A、B两点仰角的角度与两点之 间的距离可计算出MN的高度。 引出课题:解析法 探究学习 8’[学习任务一] 问题:MN是竖直于地面的物体, 其底部N不可到达。为了测量MN 的高度,在地面上选取一条与MN 在同一平面的水平线线段AB为 基线,测得AB的长为a=20米, 在A点向M点张望的仰角α =38.4°,在B点向M点张望的仰 角β=22.8°。试设计程序计算高 度MN。 要求:完成“学习任务一”(填 写电子文档) 1、问题分析:怎样写出计算表达 式。(请学生回答) 2、设计求解表达式MN=a/(1/tan β- 1/tanα)的算法。 (以下部分小组合作完成) 3、实现应用程序:老师提供程序 的可视化界面及不完整的程序, 要求学生程序填空,完善程序。 4、将程序输入到程序窗体的按钮 中并调试计算本题结果。附带计 算学校中一棵桂花树和一棵龙柏 的高度。 1、由α、β与a 推导出计算表达 式。 2、根据计算表达 式,分析解题算 法。 3、小组合作,填 空完成程序,交流 填空结果。 4、复制程序,调 试并得出运算结 果。 让学生在 老师的带 领下了解 解析法解 题的一般 过程。 学习小结2’老师提问:请同学说说求解任务 一的步骤是怎样的? 老师用流程图表示这个步 骤,提出解析法的概念。 了解解析算法的 概念。 让学生初 步了解解 析算法的 概念。 [学习任务二]求解“铁丝问题” “智力大比拼”活动: (1)一根长为6米,可制作一个 2平方米的矩形框,问该矩形长 和宽各为多少? (2)上面同样的问题,制作的面 积为2.1平方米,那么长、宽各 参与“智力大比 拼”活动。 产生计算机程序 解决问题与简单 人脑思维运算的 比较。 让学生参 与“智力大 比拼”活 动,产生冲 突,激发学 生学习的 兴趣。 第3课算法的程序实现 一、教学设计思想: 本节课是程序设计上机的第一节课,本节课的目的是让学生了解程序设计的上机规范,掌握顺序结构程序设计的基本步骤,因此,本节课采取先介绍程序设计软件界面,然后再选择用一道最简单的加法程序来让学生达到以上的目的,之所以选择这个加法程序,第一是程序简单,学生可以撇开复杂问题,直接了解顺序结构程序设计的过程和步骤,第二,可以用借这个例题来更直观地掌握val()函数的用法。 本节课设计讲解,演示,加上学生练习相结合的方式进行,以期让学生掌握顺序结构程序设计的基本方法。 二、教学目标: (一)知识与技能 (1)初步掌握程序的顺序结构,了解程序设计的基本思想和方法。 (2)学会使用输出语句、赋值语句、输入语句来实现顺序结构 (3)初步体验并掌握程序调试和运行的方法,初步掌握顺序结构程序的设计方法 (二)过程与方法 (1)通过比较、观察、实践、分析程序,了解用VB编写程序的要点。 (2)通过模仿,讨论等方式体验设计顺序结构程序的过程。 (三)情感与价值观 体验程序解决实际问题的思想方法,激发学生学习程序设计的求知欲,形成积极主动地学习和使用信息技术、参与信息活动的态度,培养学生的创新、探索精神、与人共事的合作意识和实事求是的科学态度。 三、教学重点: 能根据程序顺序结构的执行流程、编写程序解决简单的问题。 四、教学难点: 根据问题要求写出正确的程序。 五、学情分析: 学生对程序的认识和编程的知识相当少,在学习的过程中,要注重学生编程思想的培养。要通过简单的例子让学生模仿、体验,提高学生学习的兴趣,开始老师和学生一起探讨学习降低难度,先从模仿入手,后让学生尝试编写。对于基本的一些控件,赋值语句、基本输入输出语句让学生感受功能,通过今后的多次学生让学生掌握用法。 六、教学过程: 1.作业订正 1.请画流程图描述解决问题的算法: (1) 输入一个矩形的长和宽的值,求该矩形的面积(P.9 例1)。 (2) 如图所示:大圆半径为R1,小圆半径为R2。 请计算出阴影部分的面积S ,并输出。 2.请根据常量、变量和表达式的概念,写出下列流程图的输出结果: (1)12 (2)8 6 Input x Input y S=x*y Print S Input R1 Input R2 S=3.14*R1*R1-3.14*R2*R2 Print S 算法与程序框图练习题 1、若某程序图如图所示,则该程序运行后输出的k 的值是____________. 2、阅读右边的程序框图,运行相应的程序,若输出x 的值为,则输出y 的值( ) A 、0.5 B 、1 C 、2 D 、4 3、如右框图,当 时, 等于( ) A 、7 B 、8 C 、10 D 、11 4、阅读右边的程序框图,运行相应的程序,则输出的值为( ) A 、3 B 、4 C 、5 D 、6 5、执行右面的程序框图,如果输入的n 是4,则输出的P 是_____ A 、8 B 、5 C 、3 D 、2 6、执行如图所示的程序框图,输入 ,则输出的y 的值是 _______________. 是 否输出k a>b? 结束4b=k k a=4k=k+1 k=2开始 7、右图中,,,为某次考试三个评阅人对同一道题的独立评分,为该题的最终得分,当,, 时, 等于( )A 、11 B 、10 C 、8 D 、7 8、若执行如图2所示的框图,输入,则输出的数等于 ___________. 9、若执行如图3所示的框图,输入 , ,则输出的数等于___________. 10、执行右面得程序框图,如果输入的是6,那么输出的是( ) A 、120 B 、720 C 、1440 D 、5040 11、执行如图所示的程序框图,若输入A 的值为2,则输出的P 值为( )A 、2 B 、3 C 、4 D 、5 12、执行如图所示的程序框图,输出的s 值为( ) A 、-3 B 、- C 、 D 、 2 13、如图所示,程序框图(算法流程图)的输出结果是__________. 是 否 折半查找算法及程序实现 一、教材分析 教学重点:以图示法方式,演示折半查找算法的基本思想。 教学难点:由折半查找算法的思想到程序代码编写的转换,尤其是其中关键性语句的编写是教学中的难点。 二、学情分析 学生应该已经掌握程序设计的基本思想,掌握赋值语句、选择语句、循环语句的基本用法和VB基本操作,这节课学生可能会遇到的最大问题是:如何归纳总结对分查找解决不同情况问题的一般规律,鉴于此,在教学中要积极引导学生采取分解动作、比较迁移等学习策略。 三、教学目标 知识与技能:理解对分查找的概念和特点,通过分步解析获取对分查找的解题结构,初步掌握对分查找算法的程序实现。 过程与方法:通过分析多种不同的可能情况,逐步归纳对分查找的基本思想和方法,确定解题步骤。 情感态度与价值观:通过实践体验科学解题的重要性,增强效率意识和全局观念,感受对分查找算法的魅力,养成始终坚持、不断积累才能获得成功的意志品质。 四、教学策略与手段 1、教学线索:游戏引领---提出对分查找原理--- 解析对分查找的算法特征---实践解决问题。 2、学习线索:分解问题---归纳问题---实践提升,在三个阶段的不断推进中明确对分查找算法,总结规律。 五、教学过程 1、新课导入 (1)热身:游戏(2分钟) 找同学上来找一本上千页电话册里面的一个名字。(课程导入我写的不是很详细,自己设计哦) (2)教师引导:所以我不希望只有他一个人体验这种方便,我们教室里还有一大帮人,其实这种什么不止用于查找电话铺,还可以运用到实际生活中,教室里有这么多人,坦白说,按学校的老方法一个人一个人的数,对所有老师来说都及其费力,那我们想想,是不是数数2368,这样好点对吗?。不要小看这种想法,他其实是非常棒的,他能把解决问题的时间缩短一半,因此我们提出了这种算法 2、新课: 首先我们一起来看一看折半查询算法中的“折半”的含义。 师:何为折半呢? 生:减半;打一半的折扣。 例如,我手里拿着一根绳子,现在我们来进行折半试验,首先拿住绳子的两个端点, 然后从中点的位置进行对折,这样绳子就缩短为原来长度一半,然后将一半的绳子继续执行与刚才相同的操作,使得绳子的长度逐渐的缩短,直到绳子长度短得不能再进行折半了。 师:那什么时候就不能再折半了呢? 生:即绳子的两个端点合二为一为止。 折半查找算法的思想与绳子折半的过程基本相同。下面我们先通过图示来看看折半查找算法究竟是什么? 教学步骤二:分解对分查找算法(5分钟) 目录 CS1:斐波那契数列 (1) CS2:正整数解 (6) CS3:鸡兔同笼 (7) CS4:棋盘上的距离 (10) CS5:校门外的树木 (12) CS6:填词 (14) CS7:装箱问题 (17) CS8:求平均年龄 (19) CS9:数字求和 (20) CS10:两倍 (21) CS11:肿瘤面积 (22) CS12:肿瘤检测 (23) CS13:垂直直方图 (24) CS14:谁拿了最多的奖学金 (25) CS15:简单密码 (27) CS16:化验诊断 (29) CS17:密码 (31) CS18:数字阶梯 (32) CS19:假票 (34) CS20:纸牌(Deck) (35) 《算法与程序实践》习题解答1——简单计算这一章的主要目的是通过编写一些简单的计算题,熟悉C/C++语言的基本语法。 基本思想:解决简单的计算问题的基本过程包括将一个用自然语言描述的实际问题抽象成一个计算问题,给出计算过程,继而编程实现计算过程,并将计算结果还原成对原来问题的解答。这里首要的是读懂问题,搞清输入和输出的数据的含义及给出的格式,并且通过输入输出样例验证自己的理解是否正确。 课堂练习:CS1、CS2、CS3 课堂讲解:CS4(CS5) A类(满分80)课堂练习:CS8、CS9、CS10 B类(满分100)课堂上机:CS11、CS20 CS1:斐波那契数列 问题描述: 已知斐波那契数列第n项的计算公式如下。在计算时有两种算法:递归和非递归,请分别给出这两种算法。 当n=0时,Fib(n)=0,当n=1时,Fib(n)=1,当n>1时,Fib(n)= Fib(n-1)+ Fib(n-2) 输入: 第一行是测试数据的组数m,后面跟着m行输入。每行包括一个项数n和一个正整数a。(m,n,a均大于0,且均小于10000000) 专题:算法与程序框图 1.如下图,程序框图所进行的求和运算是( ) A.23111222+++ (10) 12+ B.11123+++ (110) + C.111246+++ (118) + D.111246+++ (120) + 2.在可行域内任取一点,规则如下程序框图所示,则能输出数对(x,y)的概率为( ) A.14 B.2π C.4π D.8 π 3.已知程序框图如下图所示,若输入n=6,则该程序运行的结果是( ) A.2 B.3 C.4 D.15 4.流程线的功能是( ) A.表示算法的起始和结束 B.表示算法输入和输出的信息 C.赋值、计算 D.按照算法的顺序连接程序框 6.在一个算法中,如果需要反复执行某一处理步骤,最好采用的逻辑结 构是( ) A.顺序结构 B.条件结构 C.循环结构 D.顺序结构 或条件结构 9.已知某算法的程序框图如图所示,若将输出的(x,y)值依次记为 1122()()x y x y ,,,,…()n n x y ,,,… (1)若程序运行中输出的一个数组是(9,t),则t= ; (2)程序结束时,共输出(x,y)的组数为 . 10.下边程序框图给出的程序执行后输出的结果是. 4.下图是一个算法的程序框图,则输出S的值是. 2.如下程序框图,则最后输出的结果是( ) A.5 049 B.4 850 C.2 450 D.2 550 4.如果下边程序运行后输出的结果是132,那么在程序中UNTIL后面的“条件”应为( ) A.i>11 B.i>=11 C.i<=11 D.i<11 6.阅读下边的程序框图,运行相应的程序,则输出s的值为( ) A.-1 B.0 C.1 D.3 算法与程序设计 算法的程序实现 [浙江考试标准] 一、枚举算法 1.枚举算法的基本思想 根据问题的本身性质,①________出该问题②________可能的情况,并根据题目的条件逐一分析、判断是否满足条件,若满足,则它是问题的一个解,从而挑选出符合条件的③________。 2.枚举算法解题的基本思路 (1)确定枚举对象、枚举范围和判断条件。 (2)一一列举可能的解,验证是否是问题的解。 3.枚举算法程序实现的三要素。 (1)枚举解时,既不能遗漏任何一个真正解,又不能有重复,用循环语句实现。 (2)条件判断时,利用问题提供的约束条件筛选、判断解的正确性,用分支语句实现。 (3)求解形式一般以输出解的内容或进行与解有关的其他计算。 二、解析算法 1.解析算法的基本思想 用解析的方法找出表示问题的前提条件与所求结果之间关系的④________,并通过表达式的计算来实现问题的求解。 2.解析算法解题的基本思路 (1)建立正确的数学模型,即得出正确的数学表达式。 (2)保证计算过程描述的正确性。 用正确合理的VB变量、表达式来表示已经得出的数学表达式。 3.解析算法程序实现的步骤 (1)运用解析算法分析问题,寻找问题中各要素之间的关系,用⑤________表示它们的关系。 (2)写出解决问题的解析步骤,编写程序实现,通过运行程序求得问题的正确解。 三、冒泡排序 1.冒泡排序 基本思想是在待排序的数据中,先找到最小(大)的数据将它放到最前面,再从第二个数据开始,找到第二小(大)的数据将它放到第二个位置,以此类推,直到只剩下最后一个数据为止。 2.冒泡排序的实现要素 (1)将数据存放在数组中,确定数组的名称、元素个数。 (2)比较与交换⑥________进行,在冒泡排序中,第i遍排序比较n-i次,最多交换n-i次。 算法与程序框图练习题 1、 2、 A 、若某程序图如图所示,则该程序运行后输出的k的值是_____________ . 阅读右边的程序框图,运行相应的程序,若输出x的值为-二,则输出y的值()0.5 B、1 C、2 D、4 3如右框图,当4■.,:|.■时,乜等于( ) A 、B、8 C、10 D、11 /输人X2轴X、/ x.-xMx.-x 4、5、 「开始i k=k+ 1 a=4k 否 输出k b=k4 a>b? 是 阅读右边的程序框图, A、3 B、4 执行右面的程序框图, A、8 B、5 输入 1 1 :| F = 11亠釘 L “ c结東J 运行相应的程序,则输出:的值为() C、5 如果输入的 D、6 n是4,则输出的P是, 6、执行如图所示的程序框图, /SX^7 [P口暑十 广 [x ■!. p- 1 L f Z1S7 7 7、右图中,门,二:,心为某次考试三个评阅人对同一道题的独立评分,-r,为该题的最终得分,当V- = - 一二 时,p等于()A、11B、10 C、8 D、7 &若执行如图2所示的框图,输入为=?,I 】- '+_则输出的数等于 9、若执行如图3所示的框图,输入人-, '| -—-—,则输出的数等 于 10、执行右面得程序框图,如果输入 的 A、120 B、720 11、执行如图所示的程序框图,若输入 12、执行如图所示的程序框图,输出 的 13、如图所示,程序框图(算法流程 图) :'是6,那么输出的是() C1440D、5040 A的值为2,则输出的P值为() A、 1 s值为()A、-3B、 幵始 1 现二2 -J-1 f 1 >-1^.t 1 否 的输出结果是 、程序框图与算法基本逻辑结构: 1. 程序框图符号及作用: 程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形 图形符号名称功能 C_■)终端框(起止框) 表示一个算法的起始和结束,是任何算法程序框图不可缺少的 口输入、输岀框 表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位 置 处理框(执行框) 赋值、计算.算法中处理数据需要的算式、公式等,它们分别写在不同的 用以处理数据的处理框内 O判断框判断某一条件是否成立,成立时岀口处标明“是”或“丫”; 不成立时标明“否”或“ N” 流程线 连接程序框,表示算法进行的前进方向以及先后顺序 O连接点如果一个流程图需要分开来画,要在断开处画上连接点,并标岀连接的号 码 例:解一元二次方程:ax2 bx c 0(a 0) 开始 2. 画程序框图的规则: 为了使大家彼此之间能够读懂各自画岀的框图,必须遵守一些共同的规则,下面对一些常用的规则做一简要介绍. (1)实用标准的框图符号. (2)框图一般按从上到下、从左到右的方向画 (3)—个完整的程序框图必须有终端框,用于表示程序的开始和结束 (4)除判断框外,大多数框图符号只有一个进入点和一个退岀点,判断框是具有超过一个退岀点的唯一符号, 另外,一种判断框是“是”与“不是”两分支的判断,而且有且仅有两个结果;还有一种是多分支判断,有几个不同的结果. (5)在图形符号内用于描述的语言要非常简练清楚 算法与程序框图 辅出£ 3. 算法的三种基本逻辑结构: 1)顺序结构 顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法离不开的基本结构?如图,只有在执行完步骤n后,才 能接着执行步骤n+1. 例: .已知梯形的上底、下底和高分别为5、8、9,写岀求梯形的面积的算法,画岀流程图 [开始) 解: 算法如下: 丄 a^5 S1a—5;J J j S2b—8; b—8 J S3h—9; h^9 S4S—( a+b)x h/2 ;J S5输出S.s J(a+b) x h/2 流程图如下:J (2)条件结构 一些简单的算法可以用顺序结构来实现,顺序结构中所表达的逻辑关系是自然串行,线性排列的.但这种结构无法描述逻辑判断,并根据判断结果进行不同的处理的操作,(例如遇到十字路口看信号灯过马路的问题)因此, 需要另一种逻辑结构来处理这类问题. 条件结构的结构形式如图,在此结构中含有一个判断框,算法执行到此判断框给定的条件P时,根据条件P是否成立,选择不同的执行框(步骤A,步骤B),无论条件P是否成立,只能执行步骤A或步骤B之一,不可以两者都执行或都不执行.步骤A和步骤B中可以有一个是空的. 例:某铁路客运部门规定甲、乙两地之间旅客托运行李的费用为 S3输出行李的重量和运费c . (3)循环结构 步骤n 步骤n+1 0.53 , 50, 、 c 其中(单位: 50 0.53 (50) 0.85, 50, 试给岀计算费用c (单位:元)的一个算法,并画岀流程图. S1输入行李的重量; S2如果50,那么c 0.53 , 否则c 50 0.53 (50) 0.85 ; kg)为行李的重量. 输人 r—H 釣X R u —WX竹竹十50)X0 S5 江苏省高中信息技术算法与程序设计VB(选修) 《算法与程序设计VB (选修)》 知识要点 相关知识点 (一)算法 1.定义 相关题解: 1算法:就是解决问题的方法和步骤。算法是程序设计的“灵魂”,算法+数据结构=程序。 单选题 1、下列关于算法说法不正确的是( A ) A 、算法独立于任何具体的语言,BASIC 算法只能用BASIC 语言来实现 B 、解决问题的过程就是实现算法的过程 C 、算法是程序设计的“灵魂” D 、其它三项都正确 2.算法的描述方法: 1算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。 2自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。 3流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。 4伪代码描述法:是介于自然语言和计算机程序语言之间的一种算法描述。是专业软件开发人员常用方法。 1" ( A 处理或运算的功 ( A ). B D 3、以下哪个是算法的描述方法?( A ) A 流程图描述法 B 枚举法 C 顺序法 D 列表法 4、以下哪个是算法的描述方法?( D ) A 顺序法 B 列表法 C 集合法 D 自然语言描述法 (二)程序设计基础 (1)常用高级编程语言:BASIC 、VB 、Pascal 、C 、C++、Java 1面向对象的程序设计语言:其中的对象主要是系统设计好的对象,包括窗体等、控件等 2控件:是指工具箱中的工具在窗体中画出的、能实现一定功能的部件,如文本框,命令按钮等。 对象属性=属性值 对象中属性可以在设计界面时通过属性窗中设置,也可以在运行时通过程序代码设置,方法如下 例:给文本框“Txt123”的“Text”属性赋值为字符串“20”,代码如下 Txt123.text =”20” 变量=对象.属性 如果要获取对象的状态或特性,这时就要读取对象的属性值,方法如下 例:读取文本框“txt123”的“Text”属性的代码如下 a = txt123.text 2方法 [对象].方法[参数名表] 例:form.print ”欢迎使用” 该语句使用print方法在form1窗体中显示字符串“欢迎使用” 3事件及事件驱动 事件是对象对外部操作的响应,如在程序执行时,单击命令按钮会产生一个Click事件。如需要命令按钮响应Click 事件,就把完成Click事件功能的代码写到Click事件的事件过程中,与事件一一对应。 事件过程的形式如下: Private Sub 对象_事件名( ) ……………(事件过程代码) End Sub 一个简单的VB程序 求圆的周长和面积 Private Sub Command1_Click() Dim r As Single '定义r为单精度型 Dim c As Single '定义c为单精度型 Dim s As Single '定义s为单精度型 r = Val(Text1.Text) '输入半径r c = 2 * 3.14159 * r '计算周长 s = 3.14159 * r * r '计算面积 Text2.Text = c '输出周长 Text3.Text = s '输出面积 End Sub Private Sub Command2_Click() End '退出 End Sub相关题解: 单选题 1、下列关于程序设计说法正确的是( B )。 A、程序设计语言的发展经历了机器语言、汇编语言到高级语言的过程,比 1-1节计算机解决问题的过程 一、教学目标 1、知识与技能 (1)让学生了解算法、穷举法、程序设计语言、编写程序和调试程序等概念。 (2)让学生知道对现实问题的自然语言的描述,特别是类似程序设计语言的自然语言描述。 (3)让学生理解分析问题、设计算法、编写程序、调试程序这一用计算机解决问题的基本步骤,认识其在算法与程序设计中的作用。 2、方法与过程 (1)培养学生发现旧知识的规律、方法和步骤,并把它运用到新知识中去的能力。 (2)培养学生调试程序的能力。 (3)培养学生合作、讨论、观摩、交流和自主学习的能力。 3、情感态度和价值观 通过“韩信点兵”这个富有生动情节的实例和探究、讲授、观摩、交流等环节,让学生体验用计算机解决问题的基本过程。 二、重点难点 本节的重点用计算解决问题的过程中的分析问题、设计算法、和上机调试程序等步骤。用计算机解决问题的过程中的分析问题、设计算法也是本节的难点。 三、教学环境 1、教材处理 教学内容选用中华人民共和国教育部制订的《普通高中技术课程标准》(2003年4月版)中信息技术部分的选修模块1“算法与程序设计”第一章的第一课“计算机解决问题的过程”。教材选用《广东省普通高中信息技术选修一:算法与程序设计》第三章第一节,建议“算法与程序设计”模块在高中一年级下学期或高中二年级开设。 根据2003年4月版《普通高中技术课程标准》的阐述,“算法与程序设计”是普通高中信息技术的选修模块之1,它的前导课程是信息技术的必修模块“信息技术基础”。学生在“信息技术基础”模块里已经学习了计算机的基本操作,掌握了启动程序、窗口操作和文字编辑等基础知识。学生可以利用上述的基础知识,用于本节课的启动Visual Basic程序设计环境,输入程序代码,运行程序等操作。本节课“计算机解决问题的过程”是“算法与程序设计”模块的第一节课,上好这节课是使学生能否学好“算法与程序设计”这一模块的关键。本节课的教学目的是让学生理解分析问题、设计算法、编写程序和调试程序等用计算机解决问题的基本过程,认识其在算法与程序设计中的地位和作用,它也是后续课程如模块化程序设计、各种算法设计等课程的基础。 让学生在人工解题中发现分析问题、设计算法等步骤,并把它应用到用计算机解决问题中去,这是构建主义中知识迁移的方法。本节课还采用了探究、讲授、观摩、交流、阅读材料等多种教学活动的有机结合的方法。 2、预备知识 本节课相联系的旧知识是计算机的基本操作中鼠标、键盘操作,启动、关闭程序,窗口、菜单操作和文字编辑等基础知识,还有解决数学问题的步骤等知识。 3、硬件要求 可以进行屏幕广播的多媒体电脑室。教师自行设计制作的课件。准备《计算机解决问题的过程》教学活动表。 4、所需软件 学生机要安装VB6.0或以上版本。 5、所需课时 2课时(100分钟) 四、教学过程 (一)引入高中信息技术 算法与程序设计-递归算法的实现教案 教科版
算法与程序设计教案
算法与程序框图 习题含答案
高中信息技术算法与程序设计教案沪教版选修1
《算法的程序实现》教案
算法与程序框图练习题(整理)
折半查找算法及程序实现教案
算法与程序实践1(简单计算)
专题:算法与程序框图[学生版]
17-18版 算法与程序设计 算法的程序实现(1)
算法与程序框图练习题(整理)
算法与程序框图汇总
算法与程序设计
《算法与程序设计》VB教案