第一篇:算法与程序设计VB试题与答案08
VB08
1、打开“考生文件夹781”中的文件“test4.vbp”,完善Command1_Click事件代码并保存。
实现功能:回文字符串是指一个字符串从左往右读与从右往左读是一样的,如“ABCBA”,“123321”等等。输入一个字符串,若是回文字符串,则输出“Yes”,否则输出“No”。使用文本框Text1输入字符串,使用文本框Text2输出结果。
Private Sub Command1_Click()Dim s As String Dim ok As String Dim i As Integer s = Text1.Text ok = “Yes” For i = 1 To ①
If Mid(s, i, 1)<> ② Then ok = “No” Next i ③ End Sub ①len(s)2 ②Mid(s, len(s)+1-i, 1)③text2.text=ok
2、打开文件“考生文件夹606工程1.vbp”,完善Command1_Click事件代码并保存。
实现功能:当单击“计算1+2+3+…+100”按钮后,文本框Text1显示1+2+3+…+100的值。
Private Sub Command1_Click()Dim s As Integer Dim i As Integer s = ①
For i = 1 To ② s = ③ Next i Text1.Text = Str(④)End Sub ①0 ②100 ③s+i ④s
3、打开“考生文件夹779test2.vbp”,完善Command1_Click事件代码并保存。
实现功能:输入一个正整数,计算并输出它的各位数字之和。如输入123,则输出6。使用文本框Text1输入正整数,使用文本框Text2输出计算结果。
Private Sub Command1_Click()Dim x As Integer Dim s As Integer x = Val(Text1.Text)① Do s = s + ② x = x 10 Loop Until x = 0 ③ End Sub ①s=0 ②x mod 10 ③text2.text=str(s)
4、打开文件“考生文件夹607工程1.vbp”,完善Command1_Click事件代码并保存。
实现功能:当单击“显示”按钮后,随机产生10个属于区间[0,100)的自然数,并保存于数组a中,然后在窗体上显示这10个数及其平均值。(注:学生运算结果有可能跟样图中数值不一致)
Private Sub Command1_Click()Dim a(9)As Integer Dim s As Single Dim i As Integer Me.Cls s = 0 Randomize For i = 0 To ① a(i)= Int(Rnd * 100)Print a(i)Next i For i = 0 To 9 s = ②
③
Print “这10个自然数的平均值=”;s / 10 End Sub ①9
②s+a(i)③next i
5、打开文件“考生文件夹609工程1.vbp”,完善Form_Click事件代码并保存。
实现功能:单击窗体时在窗体上打印下面所示的图案。
**** *** ** *
Private Sub Form_Click()Dim i As Integer Dim j As Integer For i = ① To 1 Step-1 For j = 1 To i ② Next j Print ③ End Sub ①4
②print “*”;③next i
6、打开文件“考生文件夹610工程1.vbp”,完善Command1_Click事件代码并保存。
实现功能:当单击“显示”按钮后,在窗体上显示下面的图形:
@ @@ @@@ @@@@ @@@@@ @@@@@@
Private Sub Command1_Click()Dim i As Integer Dim j As Integer For i = 1 To 6 For j = 1 To ① Print ② Next ③ Print Next i End Sub ①i
②”@”;③j
第二篇:算法与程序设计VB试题与答案10
VB10
1、打开文件“考生文件夹178工程1.vbp”,完善Command1_Click事件及fac函数并保存。
实现功能:用递归法求3!+5!+7!的值,将结果输出到窗体上。
Public Function fac(a As Integer)As Integer If a = 1 Then fac = ① Else fac = a * ②(a1)+ fib(n1)End If End Function
Private Sub Command1_Click()Dim sum As Integer sum = s(③)Print “sum=”;sum End Sub ①1 ②n ③100
6、打开“考生文件夹776”中的文件“蜗牛爬竹.vbp”,完善Command1_Click事件代码并保存。
实现功能:青竹高17米,蜗牛从青竹底端慢慢爬向顶端,晴天每天爬1.4米,雨天每天爬1.8米,若蜗牛爬到顶端用了11天,计算晴天、雨天各多少天?(晴天对应文本框text1,雨天对应文本框text2)
Private Sub Command1_Click()Dim x As Single Dim y As Integer y =(171.4)① = 11-y Text1.Text = Str(②)+ “天” Text2.Text = Str(③)+ “天” End Sub ①x ②x ③y
第三篇:VB程序设计试题与答案
1.要使一个标签能够显示所需要的文本,应设置该标签的()属性的值(单)A.Caption B.Name
C.Text D.AutoSize 2.为使计时器对象每隔5秒钟产生一个时钟事件(Timer事件),则其Interval属性值应设置为()(单)A.5
B.300
C.500
D.5000 3.下列的()对象支持KeyPress事件(单)A.文本框
B.命令按钮
C.标签框
D.图像框 4.确定一个控件在窗体上的位置的属性是()(单)A.Width或Height
B.Top和Height
C.Top或Width
D.Top和Left 5.确定一个窗体或控件的大小的属性是()(单)A.Width或Height
B.Top和Width
C.Top或Left
D.Top和Left
6.用户在屏幕上画出应用程序界面,并设置好对象的属性,系统便可以自动生成程序代码,这称为()(单)A.面向对象的程序设计
B.结构化程序设计
C.事件驱动的编程机制
D.程序设计 7.在VB中,工程文件的扩展名是()(单)A..frm
B..vbp
C..bas
D..frx 8.在VB中,窗体文件的扩展名是()(单)A..frm B..vbp
C..bas
D..frx 9.VB集成开发环境可以(单)A.编辑、调试、运行程序,但不能生成可执行程序 B.编辑、生成可执行程序、运行程序,但不能调试程序 C.编辑、调试、生成可执行程序,但不能运行程序 D.编辑、调试、运行程序,也能生成可执行程序 10.英文“VISUAL”的含义是()(单)A.可视化
B.集成C.结构化
D.调试
11.标准模块文件的扩展名是()(单)A.frm B.vbp C.bas
D.vbg 12.VB集成开发环境中,在()中编写代码(单)A.状态栏
B.属性列表框
C.代码框
D.标题栏
13.在面向对象的程序设计过程中,英文缩写“OOP”的含义是()(单)A.事件驱动的编程机制
B.结构化程序设计语言
C.面向对象的程序设计
D.可视化程序设计
14.在窗体上画一个名称为Timer1的计时器控件,要求每隔0.5秒发生一次计时器事件,则以下正确的属性设置语句是()(单)A.Timer1.Interval=0.5
B.Timer1.Interval=5
C.Timer1.Interval=50 D.Timer1.Interval=500 15在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click()a$=“VisualBasic” Print String(3,a$)End Sub 程序运行后,单击命令按钮,在窗体上显示的内容是()(单)A.VVV
B.Vis
C.sic
D.11
16.以下关于多重窗体程序的叙述中,错误的是()(单)A.用Hide方法不但可以隐藏窗体,且能清除内存中的窗体 B.在多重窗体程序中,各窗体的菜单是彼此独立的 C.在多重窗体程序中,可以根据需要指定启动窗体 D.对于多重窗体程序中,单独保存每个窗体 17以下合法的Visual Basic变量的名称是()(单)A.a3
B.Const
C.9abc
D.a#x!
18.当一个复选框被选中时,它的Value属性的值是()(单)A.3
B.2
C.1
D.0
19.表达式 5 Mod 3+53的值是()(单)A.0
B.3
C.4
D.6
20设x=4,y=8,z=7, 表达式:(x<y)Or z<x 的值是()(单)A.1
B.-1 C.TRUE D.FALSE 21设有如下程序段: x=2 For c=1 To 4 Step 2 x=x+c Next c 运行以上程序后,x的值是()(单)A.6 B.7 C.8 D.9
22执行如下两条语句,窗体上显示的是()(单)A=9.8596 Print Format(a,“000.00”)A.0,009.86 B.9.86 C.009.86 D.0,009.86
23下列说法中正确的是:为了保存一个Visual Basic应用程序,应当()(单)A.只保存窗体模块文件(.frm)B.只保存工程文件(.vbp)C.分别保存工程文件和标准模块文件(.bas)D.分别保存工程文件、窗体文件和标准模块文件
24.要使一个文本框对象能够显示多行文字,应设置该对象的()属性值为True(单)A.Text B.MultiLine C.Style D.Visible 25.若要将窗体从内存中卸载,其实现的方法或语句是()(单)A.Show B.Unload C.Load D.Hide 26.以下选项中,不是VB标准控件的是()(单)A.命令按钮 B.定时器 C.通用对话框 D.单选框
27在窗体上画一个名称为Command1的命令按钮,然后编写如下程序: Dim a As Variant a = Array(1, 2, 3, 4, 5)Sum = 0 For i = 1 To 5 Sum = Sum + a(i1)“, a(i1)> x Then Print a(iNum2 Case 3 Op = ”ד Result = Num1 * Num2 Case 4 Op = ”÷“ Result = Num1 / Num2 End Select Label1= Num1 & Op & Num2 & ”=“ & Result End Sub 窗体运行后,输入1,则label1的标题显示结果为()(单)A.3+2=5 B.3-2=1 C.3×2=6 D.3÷2=1.5
42在窗体上画一个名称为Text1的文本框,然后画一个名称为HScroll1的滚动条,其Min和Max属性分别为0和100。程序运行后,如果移动滚动框,则在文本框中显示滚动条的当前值,以下能实现上述操作的程序段是()(单)A.Private Sub HScroll_Change()Text1.Text=HScroll1.Value End Sub
B.Private Sub HScroll_Click()Text1.Text=HScroll1.Value End Sub C.Private Sub HScroll_Change()Text1.Text=HScroll.Caption End Sub D.Private Sub HScroll_Click()Text1.Text=HScroll.Caption End Sub
43.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click()x=InputBox(”Input“)Select Case x Case 1,3 Print ”分支 1“ Case Is>4 Print ”分支 2“ Case Else Print ”Else 分支 “ End Select End Sub 程序运行后,如果在输入对话框中输入2,则窗体上显示的是()A.分支1 B.分支2 C.Else分支 D.程序出错
44.随机产生10个100~200之间的数,求它们的最大值程序如下: Private Sub Command1_Click()Max = 100 For i = 1 To 10 x = int【 】 Print x;If x > Max Then Max=x Next i Print Print ”最大值=“;Max End Sub 45设a=10,b=5,c=1,执行语句Print a >b > c后,窗体上显示的是()(单)A.True B.False C.1 D.出错信息
(46)在窗体上建立通用对话框需要添加的控件是
A)Data控件 B)From控件 C)CommonDialog控件 D)VBComboBox控件
(47)在Visual Basic中,要将一个窗体加载到内存进行预处理但不显示,应使用的语句是 A)Load B)Show C)Hide D)Unload
48)Sub过程与Function过程最根本的区别是
A)Sub过程可以用Call语句直接使用过程名调用,而Function过程不可以
B)Function过程可以有形参,Sub过程不可以
C)Sub过程不能返回值,而Function过程能返回值 D)两种过程参数的传递方式不同
49保存一个工程至少应保存两个文件,这两个文件分别是)A)文本文件和工程文件 B)窗体文件和工程文件 C)窗体文件和标准模块文件 D)类模块文件和工程文件
50.当对命令按钮的Picture属性装入.bmp图形文件后,命令按钮上并没有显示所需的图形,原因是没有对某个属性设置为1,该属性是
A)MousePicture B)Style C)DownPicture D)DisabledPicture
51假设变量bool_x是一个布尔型(逻辑型)的变量,则下面正确的赋值语句是)A)bool_x=”False“ B)bool_x=.False.C)bool_x=#False# D)bool_x=False
52.设S=“中华人民共和国”,表达式Left(S,1)+Right(S,1)+Mid(S,3,2)的值为()A)“中华民国”
B)“中国人民”
C)“中共人民”
D)“人民共和” 53下列表达式的值为2123的是()
A)Val(”123asd“)& 2000 B)Val(”123asd“)+ 2000 C)Str(123)& ”2000“ D)Str(123)+”2000“ 54假设在窗体上建立了一个通用对话框,其名称为CommonDialog1,然后画一个命令按钮Command1,并编写如下事件过程: Private Sub Command1_Click()CommonDialog1.Flags=4 CommonDialog1.Filter=”all files(*.*)|*.*|text Files(*.Txt)|*.txt|Batch Filse(*.bat)|*.bat“ CommonDialog1.FilterIndex=1 CommonDialog1.ShowOpen MsgBox CommonDialog1.FileName End Sub 程序运行后,单击命令按钮,将显示一个“打开”对话框,此时在“文件类型”对话框中显示的是()
A)All Files(*.*)B)Text Files(*.Txt)C)Batch Files(.bat)D)不确定
55当运行程序时,系统自动执行启动窗体的某个事件过程。这个事件过程是()A)Load B)Click C)Unload D)GotFocus 56.无论何控件,都具有一个共同属性。这个属性是()A)Text B)Font C)Name D)Caption 57.在一行内写多条语句时,语句之间要用某个符号分隔。这个符号是()A),B);
C)、D):
58.表达式12000 + ”129“ & 200的值是
A)12329 B)”12129200“ C)”12000129200“ D)”12329“ 59.Visual Basic是一种面向对象的程序设计语言,构成对象的三要素是()
A)属性、控件和方法 B)属性、事件和方法 C)窗体、控件和过程 D)控件、过程和模块
60表达式String(1,”I am student“)+ Replace(”am harass“,”rass“,”ppy“)& ”!“的值是()A)”I am happy!“ B)”I am student I am s am harass studentam happy!“ C)”I am student am harass!“ D)”I am student am happy!“ 61.引用列表框(List1)最后一个数据项应使用的表达式是()A)List1.List(List1.ListCount)B)List1.List(List1.ListCount-1)C)List1.List(ListCount)D)List1.List(ListCount-1)62.以下属性和方法中,可重定义坐标系的是)
A)DrawStyle属性 B)DrawWidth属性 C)Scale方法 D)ScaleMode属性 63.下面说法不正确的是()A)滚动条的重要事件是Change和Scroll B)框架的主要作用是将控件进行分组,以完成各自相对独立的功能 C)组合框是组合了文本框和列表框的特性而形成的一种控件
D)计时器控件可以通过对Visible属性的设置,在程序运行期间显示在窗体上
64.在窗体上画一个名称为Check1复选框,在程序运行的过程中,若选中复选框,则Check1.value的值是()A)True B)2 C)0 D)1 65.下列关于过程叙述不正确的是()
A)过程的传值调用是将实参的具体值传值递给形参 B)过程的传址调用是将实参在内存的地址传递给形参
C)过程的传值调用参数是单向传递的,过程的传址调用参数是双向传递的 D)无论过程传值调用还是过程传址调用,参数传递都是双向的
66.为了使标签能自动调整大小以显示全部文本内容,应把标签的【 】属性设置为true。67.要想在文本框中显示垂直滚动条,必须把scrollbars属性设置为2,同时还应把【 】属性设置为true。
68.假定有一个文本框,其名称为text1,为了使该文本框具有焦点,应执行的语句是【 】.setfocus。
69.假定有一个名为pic2.bmp的图形文件,要在运行期间把该文件装入一个图片框,应执行的语句为 图片控件名.picture=【
】。
70.为了能自动放大或缩小图像框中的图形以与图像框的大小相适应,必须把该图像框的【 】属性设置为true。
71.窗体、图片框或图像框中图形通过对象的【 】属性设置。72.计时器事件之间的间隔通过【
】属性设置。
73.有时候要暂关闭计时器,这可以通过【 】属性设置为false来实现。74.设a=sqr(2),则语句Print format$(a,”000.0“)的输出结果是【 】。75.设a=sqr(3),则语句Print format$(a,”###.0“)的输出结果是【 】。76.VB应用程序通常由3类模块组成,即窗体模块、【 】模块和类模块。
77在窗体上画两个文本框和一个命令按钮,然后在命令按钮的代码窗口中编写如下事件过程:
Private sub command1_click()text1.text=”vb“ text2.text=text1.text
text1.text=”abcd“ End Sub 程序运行后,单击命令按钮,文本框text2中显示的内容为 ________。
78.在保存VB应用程序时,窗体文件和工程文件的扩展名分别为【.】和.vbp。79.下列可作为VB的变量名的是()(单)A.Filename B.A3B C.254D D.Print 80.与下列数学式cos2(c+d)对应的VB表达式是【 】。81.与下列数学式2a(7+b)对应地VB表达式是【 】。82.在VB中,字符串常量要用【 】括起来。83.下面的事件不属于鼠标器事件的是()(单)A.MouseDown事件 B.MouseUp事件 C.MouseMove事件 D.Move事件 84.下面的事件不属于键盘事件的是()(单)A.KeyPress事件 B.KeyDown事件 C.KeyUp事件 D.KeyMove事件
85.对以下程序说法不正确的是()(单)Private Sub FileOpen_Click()CommonDialog1.InitDir = ”C:“ CommonDialog1.Filter = ”文本文件 | *.Txt“ CommonDialog1.ShowOpen End Sub A.显示”文件“打开对话框 B.打开的对话框的初始目录为C盘根目录 C.打开的对话框的文件类型为文本文件 D.以上说法都不正确
86.以下程序是求最大公约数和最小公倍数的程序,在【】处填写合适的关系运算符。Private Sub Form_Click()Dim m1, n1, m, n, r As Integer n1 = InputBox(”输入自然数n“, ”输入数“)m1 = InputBox(”输入自然数m“, ”输入数“)n = n1 m = m1 If m <n Then t = m: m = n: n = t End If r = m Mod n Do While r 【 】 0 m = n n = r r = m Mod n Loop Print ”最大公约数=“, n Print ”最小公倍数= “, m1 * n1 / n End Sub 87.下面是求100以内素数的程序。Private Sub Command1_Click()Dim i As Integer, m As Integer, tag As Boolean
For m = 2 To 100 tag = True For i = 2 To m-1 If m Mod 【 】 = 0 Then tag = False Next i If tag Then Print m Next m End Sub 88.百元买百鸡问题: 假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,以下程序列出了所有可能的购鸡方案。Private Sub Command1_Click()Dim x%, y%, z% For x = 0 To 33 For y = 0 To 50 For z = 0 To 100 If 3 * x + 2 * y + 0.5 * z = 100 And 【 】 Then Picture1.Print x, y, z End If Next z Next y Next x End Sub 89.随机产生10个100~200之间的数,求它们的最大值程序如下: Private Sub Command1_Click()Max = 100 For i = 1 To 10 x = int【 】 Print x;If x > Max Then Max=x Next i Print Print ”最大值=“;Max End Sub 90.以下是求1~100之间5或7的倍数的和,如下程序段: Sum = 0 For i = 1 To 100 If i Mod 5 = 0 Or i Mod 7 = 0 Then 【】 End If Next i Print Sum 其中【】处书写正确的是()(单)A.Sum = i B.Sum = Sum +i C.Sum = Sum + 5+7 D.以上都不正确 91.要使得在按下鼠标左键时,激发mousedown事件,可以设置此事件中的button参数为()(单)
A.0 B.1 C.2 D.4 92.要使得在按下鼠标右键时,激发mousedown事件,可以设置此事件中的button参数为()(单)A.0 B.1 C.2 D.4 93.删除列表框中所有的项目所使用的方法为()(单)A.move B.remove C.clear D.removeitem 94.在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub command1_click()Dim a As String, b As String a = InputBox(”Enter the First integer“)b = InputBox(”Enter the Second integer“)Print b + a End Sub程序运行后,单击命令按钮,先后在两个输入对话框中分别输入456和111,则输出结果是()(单)A.456 B.111 C.567 D.111456 95.传值:形参得到的是实参的值,形参值的改变不会影响实参的值。在定义形参前加关键字Byval。
96.以下利用SUB关键字定义的子过程Rate,其调用格式不正确的是()(单)A.call Rate(12,56)B.Rate(12,56)C.Rate 12,56 D.以上A和C正确
97.以下程序的作用是单击Check1检查框将使得Text1文本框的字体在”加粗“和”常规“之间进行切换。
Private Sub Check1_Click()Text1.FontItalic = Not Text1.FontItalic End Sub 98.窗体中有一个名称为Slider1的可选择性刻度滑块控件,要设置它的如下属性值,可以编写程序()(单)(1)Slider控件的滑块处于最小位置时值为8(2)Slider控件的滑块处于最大位置时值为72(3)单击Slider控件两端箭头时,滑块的增量值为2(4)单击Slider控件的空白处时,滑块的增量值为8 A.Slider1.Min = 8: Slider1.Max = 72:
Slider1.SmallChange =2: Slider1.LargeChange = 8 B.Slider1.Min = 2: Slider1.Max = 8:
Slider1.SmallChange = 72: Slider1.LargeChange = 8 C.Slider1.Min = 8: Slider1.Max = 72:
Slider1.SmallChange = 8: Slider1.LargeChange = 2 D.Slider1.Min = 72: Slider1.Max = 8:
Slider1.SmallChange = 2:
Slider1.LargeChange = 8 99.以下能判断指针是否指向文件尾的函数是()(单)A.BOF B.LOC C.LOF D.EOF 00.窗体的过程Form_MouseDown(Button As Integer, Shift As Integer, X As Single, YAs Single),有4个参数,关于这些参数,正确的描述是()(单)A.通过Button参数判定当前按下的是键盘上哪一个键 B.Shift参数只能用来确定是否按下Shift键
C.Shift参数只能用来确定是否按下Alt和Ctrl键 D.参数x,y用来设置鼠标当前位置的坐标
01.设组合框Combo1中有3个项目,则以下能删除最后一项的语句是()(单)A.Combo1.RemoveItem Text B.Combo1.RemoveItem 2 C.Combo1.RemoveItem 3 D.Combo1.RemoveItem Combo1.Listcount
1-10ADADA ABADA 11-20CCCDA AACBC 21-30ACDBB CDCCC 31-40ABDAB fontname BAAC 41-45AAC RND*101+100或100+RND*101或RND()*101+100或100+RND()*101 B 46-50CACBB 51-55DBBAA 56-60CDBBA 61-65BCDDD 66Autosize 67Multiline 68Text1 669loadpicture(”pic2.bmp")70Stretch 71Picture 72Interval 73Enabled 74 001.4 75 1.7 76【标准】77VB 78frm 79B 80cos(2*(c+d))81 2*a*(7+b)82【双引号】83D 84D 85D 86<> 87【i】88x+y+z=100 89RND*101+100或100+RND*101或RND()*101+100或100+RND()*101 90B 91-95BBCDV 96-00BVADD 01B 13
第四篇:算法与程序设计
《算法与程序设计》教学中实施研究性学习探步
作者:赵濮民
摘要:研究性学习是教育科研领域中一个崭新的课题。信息技术教学作为以培养创新精神、研究能力和实践能力为目标取向的必修课程,它强调让学生通过研究性学习,提出问题,收集材料,对研究性课题进行探索、分析、研究,最后基于问题解决模式,在实践操作中培养学生科学的态度和价值观以及创新精神、创新思维、创造能力,并学会解决生活中与信息技术学习有关的实际问题。职业学校的学生,不仅应具有独立接受知识的能力,更应具有独立探索知识的能力,由“研究性学习”补充原有的“接受式学习”,使学习方式更趋完善,只有当这两种学习方式结合起来,优势互补,才能使基础教育适应时代对人才培养的要求。
关键词:程序设计;研究性学习;求真;求全;求变;求新;优势互补
《算法与程序设计》是职业学校信息技术教学中的一个重点,也是难点。传统的程序设计教学以老师讲授型为主,由于算法与程序设计的内容逻辑性强,普遍认为在程序设计教学中难以实施研究性学习。
研究性学习是以“培养学生具有永不满足、追求卓越的态度,培养学生发现问题、提出问题、从而解决问题的能力”为基本目标,以学生从学习中获得作品设计与制作方法的困惑为方向,以在提出问题和解决问题的全过程中学习到算法与程序设计为学习方法的课程。经过反复研究,我们认为研究性学习可以应用于程序设计教学中。实施研究性学习的关键是要确定一个目标,要鼓励学生主动地发现问题,并且通过探究或实践活动去试图解决问题。在课题研究的过程中采用分组交流讨论、查阅资料、协作探究、归纳总结等方式,一步步引领学生深刻掌握算法与程序设计的精髓。
一、通过研究性学习,重构算法知识体系,要求真 研究性学习是学生在老师的指导下,结合真实生活,选定主题,然后搜集相关材料,对材料进行归纳、加工处理、分析、总结,得到相应结论的学习活动。在《算法与程序设计》教学中,根据教学内容,经过反复研究,确定了研究主题《搜索算法的应用研究》和《动态规划算法的解题应用研究》,并根据学生的自愿报名成立了两个研究小组。然后各小组根据自己研究的算法,重新整理相应的知识,对知识进行认知、归纳、总结。如《搜索算法的应用研究》小组,对搜索算法从以下几方面进行整理:
1、搜索算法的算法思想、分类;
2、深度优先搜索的算法思想与算法结构;
3、广度优先搜索的算法思想与算法结构;
4、深度优先搜索的优先策略;
5、广度优先搜索的优化策略;
6、深度优先搜索与广度优先搜索的异同。学生通过对搜索算法知识进行整理、分类、小结,加深了对搜索算法的理性理解与感性认知。
二、通过研究性学习,同学之间取长补短,要求全
每个学生都有所长,也有所短,研究性学习一个重要的特点就是:分工合作,共同讨论,共同提高,使参与的学生全面发展。我们的“搜索算法的应用研究”小组共有五个成员,根椐学生的特点、特长,对他们进行分工,每位学生研究上述其中一个问题,然后整个小组一起讨论,每位学生介绍自己的研究情况、研究成果,然后其他同学进行补充,发表自己的见解,这样每个同学都使自己的研究内容得到补充,同时也学习到了其他同学研究方面的知识,可以取长补短,共同提高,得到全面发展。
三、通过研究性学习,总结算法的应用规律,要求变
研究性学习的目的,是要求学生搜集与主题有关的资料,归纳整理相关资料,根据相关材料和知识,对主题进行研究,提出自己的观点或结论。我们在程序设计教学中进行算法专题研究也是这样,除要求学生归纳、整理专题算法知识外,还要总结出算法的应用规律、应用算法解题的步骤和算法的框架,能根据实际情况,随机应变。如在“动态规划的应用研究”中,学生总结出:动规划是解符合“无后效性原则”的最优问题的一种算法思想;用动态规划解题的一般步骤是:(1)判断题目是否为求最优问题,是否符合“无后效性原则”;(2)确定如果划分阶段;(3)确定每个阶段有几种状态;(4)找出状态转移方程和边界条件;(5)用算法语言实现算法过程。又如在“搜索算法的应用研究”中,研究小组的同学总结出:(1)广度优先搜索算法通常应用于解最少步数问题,而深度优先搜索算法则通常用来解所有路径问题;(2)深度优先搜索和广度优先搜索都是搜索算法,前者时间复杂度较大,而后者则占用的内存较大;(3)深度优先搜索在实现时用递归或用堆栈来实现,而广度优先搜索是用队列来实现,实现两种算法所用的数据结构不同;(4)深度优先搜索和广度优先搜索都是搜索算法,但两者的算法结构有较大的不同。学生通过自己对算法应用规律的总结,对算法的应用得到升华,进一步提高算法的应用能力和程序设计能力。
四、通过研究性学习,提高分析、归纳和综合能力,要求新
对算法的专题研究,不仅要对算法理论进行总结,算法应用的研究也是很重要的一方面,通过算法的解题应用,既提高了学生分析问题的能力,也加深了学生对算法的理解,提高了学生的算法应用能力,进而得到对学生创新能力的培养。另外,我们在算法研究过程中,要求学生透切理解算法内容,用算法语言准确描述算法,通过这种途径,进一步加深学生对算法的理解,同时也提高了学生的算法表达能力和归纳、总结的能力。
通过对算法进行专题研究,可以进一步加深学生对算法知识的理解,也可以提高学生的算法应用能力和程序设计能力。实践告诉我们:在整个研究过程中要注意以下几个问题:
1、课题不宜太大。研究课题的确定是研究性学习实施过程中重要的一环,课题选择恰当与否,直接关系到整个课题研究的成败。在程序设计教学中进行研究性学习活动,选题要遵循下面的原则:(1)课题的范围不宜太大;(2)有一定的应用价值;(3)结合学生的实际。一个好的开始是成功的一半,在研究性学习活动中也是如此。
2、要理论研究与算法应用相结合。对算法的专题研究,算法应用是重点。在算法知识归纳总结的基础上,重点应研究算法应用的一般规律、算法结构、应用算法解题的一般步骤等。不应该只是对算法理论的空洞论述,否则效果不好、意义也不大。
3、充分发挥教师的引导作用、学生的主体作用。在算法研究活动中,应充分发挥教师的引导和指导作用,既不能放任自由,也不能包办代替,要充分发挥学生的主体作用。当学生遇到问题和困难时,老师应当引导和启发学生,让学生去探索和研究,而不是直接告诉学生答案,老师始终是学生的引导者,学生是真正的参与者,使学生通过算法研究,加深对算法的理解,提高算法应用能力和程序设计能力。
职业学校的学生,不仅应具有独立接受知识的能力,更应具有独立探索知识的能力,由“研究性学习”补充原有的“接受式学习”,使学习方式更趋完善,只有当这两种学习方式结合起来,优势互补,才能使基础教育适应时代对人才培养的要求。
第五篇:算法与程序设计教案
第一课 初识算法与程序设计
一、教学目标
1、知识与技能
(1)理解算法的概念,培养学生自我探索信息,高效获取信息的能力;
(2)能初步利用算法解决简单的问题,培养学生的理论联系实际能力和动手操作能力。
2、情感、态度、价值观
学生在学习过程中,通过亲身经历体验获得对此算法的感性认识,培养学生自我获取信息、分析评价信息、、表达呈现信息的能力,进一步提高其信息素养。
二、教学重点难点
重点:算法概念的理解
难点:如何科学合理的选择和设计算法。
三、教学策略与手段
以趣味性问题设置情境,激发学生探索解决问题的兴趣,与学生进行互动探讨,通过Flash演示材料,比较直观地把抽象的问题简单化,使学生的思考逐步深入,从而总结出算法的概念,学会如何设计和选择算法,培养学生自主探究学习的能力。
四、教学过程(1课时)
(一)我们来共同寻找下面一些生活中比较现实的问题的解决方法。【问题一】天下真的有“不要钱的午餐”吗?
某一餐馆门口海报上写着“不要钱的午餐”,规则如下:在三个月内,来宾必须凑够五个人,五人每次来就餐必须按照不同的顺序坐,直到把所有可能的顺序都坐一遍,以后来吃饭就可永远免费”。于是有人想,这太容易了,每人每次坐不同的位置,吃五次不就行了?于是他就叫上自己的朋友参加这项活动,可是,吃了十次之后,还没有吃上免费午餐,这是怎么回事呢?
学生们感觉非常有意思,很快以小组为单位进行热烈的讨论并得出了破解问题的步骤:①第一个座位5个人都有坐的机会②第二个座位只有4个人中的任一个有坐的机会(一个人不能同时坐两个座位)③第三个座位只有3个人中的任一个有坐的机会④第四个座位只有2个人中的任一个有坐的机会⑤第五个座位只有1个人有坐的机会⑥计算:5×4×3×2×1=120⑦得出结论:需要吃120次才有可能吃上免费午餐。
【问题二】有三个和尚和三个妖怪过河,只有一条能装下两个人的船,在河的任何一方或者船上,如果妖怪的人数大于和尚的人数,那么和尚就会有被吃掉的危险。你能不能找出一种安全的渡河方法呢?请写一写你的渡河方案。学生:学生讨论回答。〖展示步骤〗
①两个妖怪先过河,一个妖怪回来; ②再两个妖怪过河,一个妖怪回来; ③两个和尚过河,一个妖怪和一个和尚回来; ④两个和尚过河,一个妖怪回来; ⑤两个妖怪过河,一个妖怪回来; ⑥两个妖怪过河。
【Flash动画展示】通过讨论和动画展示,我们可以知道,计算机解决问题和人解决问题一样需要有清晰的解题步骤。算法就是解决问题的程序或步骤。
(二)【课件展示】算法的概念:
1、广义的算法是指完成某项工作的方法和步骤,在我们日常生活中也经常使用算法,只是没意识到罢了。如:洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等。
2、在数学中,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。
【小试身手】按照这样的理解,我们可以设计出很多由具体数学问题解决一类数学问题的算
法.下面看一个例子:(要求学生自己考虑并写出具体的算法)
鸡兔同笼问题。一个笼子里有鸡和兔,现在只知道里面一共有17个头,48只脚,鸡和兔各有多少只?试设计一个求解的算法。
【设计意图】求解鸡兔的问题简单直观,却包含着深刻的算法思想。应用解二元一次方程组的方法来求解鸡兔同笼问题。
第一步:设有小鸡x只,小兔y只,则有
第二步:将方程组中的第一个方程两边乘-2加到第二个方程中去,得到,得到y=7; 第三步:将y=7代入(1)得x=10。
【变一变】在笼中有鸡、兔若干,已知有头a个,有脚b只,求各有多少只鸡和兔。
【师生合作】老师带领学生共同书写规范的算法的具体步骤,最后引出算法使用的范围:能解决一类问题,并且能重复使用。
(三)【课件展示】算法的基本特征
①有穷性 ②确定性 ③不唯一性 ④有效性(逻辑性)
1、有穷性:一个算法应该包含有限个操作步骤,而不能是无限的。
2、确定性:算法的每个步骤都应该是明确无误的,不能含义模糊,使执行者无所适从。
3、有零个或者多个输入,有一个或者多个输出
4、有效性:算法中的每一步都应该能有效地执行,执行算法最后应该能得到确定的结果。
【教学总结】
1、本节课通过一些生活中看似简单问题的解决方法和步骤,使学生比较轻松的接受了生活算法的概念,进一步理解了计算机算法的概念。
2、课堂教学的效益取决于学生对所学知识理解了多少,能否用所学知识来解决一些实际问题。本节课的设计突出讲与练的结合,培养学生的动手能力,并且引出学生对下一节课的内容的思考,比较顺利的完成了本节课的教学任务。
3、如何优化算法,找到算法的形式和用算法解决问题的效益的最佳结合点,还尚需探讨。