中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

2020版算法與程序設計第五單元第1節 過程與自定義函數(16張PPT課件+學案)

資源下載
  1. 二一教育資源

2020版算法與程序設計第五單元第1節 過程與自定義函數(16張PPT課件+學案)

資源簡介


第1節 過程與自定義函數
考試內容
考試要求
過程
c
自定義函數
c
一、過程
1.VB應用程序是按模塊化的方式組成的,程序模塊分為過程和函數兩種,過程強調的是動作,而函數強調的是值的計算。
2.什么是過程
將程序劃分為一個個較小的邏輯單元,每個邏輯單元構成一個過程。過程中的代碼可以被重復地調用。
3.過程的分類
過程分成兩類:事件處理過程和通用過程。
①事件處理過程的一般格式:
Sub 事件處理過程名(參數表)
 語句塊
End Sub
②通用過程的一般格式:
Sub 通用過程名(參數表)
 語句塊
End Sub
過程調用:Call 過程名(參數表)
4.常見的VB事件
常見的VB事件有:Click(單擊)、DblClick(雙擊)、KeyPress(按鍵)、Load(裝載)、Change(改變)等。
作用在VB對象上的常見事件處理過程有:
文本框Text:Text1_Click、Text1_DblClick、Text1_KeyPress、Text1_Change
命令按鈕Command:Command1_Click
標簽Label:Label1_Click
窗體Form:Form_Load(窗體裝載)
二、自定義函數
1.函數
函數也是一個程序模塊,不同之處是函數執行完成后,函數的計算結果被送到函數的調用點上,供程序的后繼部分繼續執行,會返回一個函數值。函數值是通過函數名返回的。
2.自定義函數格式
Function 函數名(參數表)As類型名
 語句塊
End Function
一、過程
【典例1】 下面VB程序的功能是利用海倫公式求三角形面積。程序運行時,分別在文本框Text1、Text2、Text3中輸入三條邊的長度,單擊“計算”按鈕,若能構成三角形,則在標簽Label5中顯示三角形的面積,否則顯示信息“無法構成三角形”。
提示:海倫公式=,其中p為周長的一半。
運行效果如下圖所示:
實現上述功能的VB程序如下,請回答下列問題:
Private Sub Command1_Click()
 Dim a As Integer, b As Integer, c As Integer, d As Single, s As Single
 a = Val(Text1.Text)
 b = Val(Text2.Text)
 c = Val(Text3.Text)
 If a + b > c And a + c > b And ____①____ Then
d = (a + b + c) / 2
s = ________②________
Label5.Caption = Str(s)
 Else
Label5.Caption = “無法構成三角形”
 End If
End Sub
(1)“Private Sub Command1_Click()”中Command1是指__________,Click是指________,Command1_Click為__________________(選填:對象名 /事件名/屬性名/過程名)。
(2)請在劃線處填入合適的代碼。
解析 (1)本小題主要考查的是VB的對象、事件及事件處理過程。Command1是指對象名,Click是指事件名(鼠標單擊),Command1_Click為過程名。
(2)本小題主要考查的是VB表達式。程序①處語句表示能否構成三角形的條件(任二條之和大于第三邊),因此①處代碼為b + c > a;程序②處代碼表示用海倫公式求三角形面積,將數學公式轉換為VB公式,因此②處代碼為Sqr(d * (d - a) * (d - b) * (d - c))。
答案 (1)對象名 事件名 過程名 
(2)①b + c > a 或a < b + c ②Sqr(d * (d - a) * (d - b) * (d - c))
二、自定義函數
【典例2】 編寫一個求[a,b]區間內的所有素數的VB程序。程序運行時,分別在文本框Text1、Text2中輸入a、b的值,單擊“求解”按鈕,在列表框List1中輸出[a,b]區間內的所有素數,并統計個數,顯示在列表框的最后一行。程序運行效果如下圖所示:
實現上述功能的VB程序如下,請回答下列問題:
Function prime(x As Integer) As Boolean
 Dim k As Integer
 k = 2
 prime = True
 Do While k < x And prime
If x Mod k = 0 Then
  ________①________
Else
  k = k + 1
End If
 Loop
End Function
Private Sub Command1_Click()
 Dim i As Integer, a As Integer, b As Integer, n As Integer
 a = Val(Text1.Text)
 b = Val(Text2.Text)
 For i = a To b
If ________②______ Then
  List1.AddItem Str(i)
  n = n + 1
End If
 Next i
 List1.AddItem “共有素數:” + ______③______ + “ 個”
End Sub
(1)代碼“List1.AddItem Str(i)”中的AddItem是指____________(填:屬性名 / 事件名 / 方法名)。
(2)請在劃線處填入合適的代碼。
解析 本題主要考查的是自定義函數。(1)代碼“List1.AddItem Str(i)”中的AddItem是指方法名。(2)函數值是通過函數名來返回的,prime函數的初值為True,當整數x能被整數k整除時,表示x不是素數,因此修改函數值為False,即①處代碼為prime = False;②處代碼為調用prime函數,當整數i為素數時,則在列表框List1中輸出,因此代碼為Prime(i)= True ,也可寫為prime(i);變量n用來統計素數個數,因為與其他字符串連接后在列表框中輸出,因此③處代碼為Str(n),而不能寫為n。
答案 (1)方法名 (2)①prime = False
②Prime(i)= True 或prime(i) ③Str(n)
1.下列VB程序的功能是:求數組d中指定范圍內元素的最大值,并將最大值顯示在標簽Label3中。
Dim d(1 To 10) As Integer
Sub zds(x As Integer, y As Integer)
Dim i As Integer, ans As Integer
ans = -32767
For i =__________①________
If ans < d(i) Then ans = d(i)
Next i
Label3.Caption = Str(ans)
End Sub
Private Sub Command1_Click()
 Dim a As Integer, b As Integer, j As Integer, ans As Integer
 For j = 1 To 10
  d(j) = Int(Rnd * 100 + 1)
  List1.AddItem Str(d(j))
 Next j
 a = Val(Text1.Text)
 b = Val(Text2.Text)
 Call ________②________
End Sub
請回答下列問題:
(1)在程序劃線①②處填入合適的代碼。
(2)若數組元素d(1)~d(10)分別為“50,36,23, 85,45,12,88,49,91,100”,文本框Text1、Text2中輸入的數據分別為3和9,則在標簽Label3中輸出的結果為______________。
解析 (1)①處代碼表示求數組元素d(x)~d(y)中的最大數,i表示范圍,因此①處代碼為x To y;②處代碼表示調用過程,過程名為zds,參數為a、b,表示求數組元素d(a)~d(b)中的最大數,因此②處代碼為zds(a, b)。(2)求數組元素d(3)~d(9)中的最大值是91,因此答案為91。
答案 (1)①x To y ②zds(a, b) (2)91
2.下列程序的功能是統計某個數字在正整數中出現的次數。若數字y在正整數x中出現,則在標簽Label1中輸出出現的次數,否則輸出“未出現”。
實現上述功能的VB程序如下,請在程序劃線處填入合適的代碼。
Function fx(x As String, y As String) As Integer
 Dim n As Integer, i As Integer, times As Integer
  times = 0
  i = 1
  n = Len(x)
  Do While i <= n And Not flag
If Mid(x, i, 1) = y Then times = times + 1
i = i + 1
  Loop
  ________①________
End Function
Private Sub Command1_Click()
 Dim st1 As String, st2 As String
 st1 = Text1.Text
 st2 = Text2.Text
 If fx(st1, st2) > 0 Then
Label1.Caption =“共出現” + ____②____+ “ 次”
 Else
Label1.Caption = “未出現”
 End If
End Sub
解析 劃線①處主要考查的是函數值的返回,函數值是通過函數名來返回的,變量times用來存儲數字y在整數x中出現的次數,因此①處代碼為fx=times;劃線②處代碼考查函數的調用表示將出現的次數顯示在標簽Label1中,fx(st1, st2)返回的結果為出現的次數,因此②處代碼為Str(fx(st1, st2)),因為times是局部變量,因此不能填Str(times)。
答案 ①fx = times ②Str(fx(st1, st2))
基礎鞏固
1.有如下程序段:
Private Sub Command1_Click()
 Dim d(1 To 10) As Integer, f(1 To 10) As Boolean
 Dim i As Integer, ans As Integer
 ′給數組元素d(1)~d(10)賦值,代碼略
 For i = 1 To 10
f(i) = False
 Next i
 For i = 2 To 10
If d(i) - d(i - 1) > 0 Then
  f(i) = True
  d(i) = d(i) - d(i - 1)
End If
 Next i
 For i = 1 To 10
If f(i) Then ans = ans + 1
 Next i
 Label1.Caption = Str(ans)
End Sub
程序運行時,數組元素d(1)~d(10)的賦值分別為:25、15、10、8、1、7、8、11、16、5,則標簽Label1中顯示的內容為(  )
A.3 B.4
C.5 D.6
解析 本題主要考查的是程序的綜合運用能力。程序執行過程各變量的變化如下表所示:
i
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
i=10
數組元素d(i)初值
25
15
10
8
1
7
8
11
16
5
d(i)>d(i - 1)?
N
N
N
N
N
Y
Y
Y
Y
N
f(i)
F
F
F
F
F
T
T
T
T
F
d(i)
6
2
9
7
因此答案為B。
答案 B
2.下面VB程序的功能為:在文本框Text1中輸入一個整數n,單擊按鈕Command1,在標簽Label1中顯示1+2+…+n的和。
Function qh(x) As Integer
 Dim sum1 As Long,i As Integer
 For i=1 To x
sum1=sum1+i
 Next i
 qh=sum1
End Function
Private Sub Command1_Click()
 Dim n As Integer, sum As Long
 n = Val(Text1.Text)
 sum =________________
 Label1.Caption =Str(sum)
End Sub
要實現上述功能,程序劃線處應填入的語句為(  )
A.qh B.qh(x)
C.qh(n) D.qh(n,x)
解析 本題主要考查的自定義函數的調用。自定義函數qh的功能是求整數1+2+…+n的和,由于輸入的整數為n,即調用函數時對應的參數為n,因此劃線處應填的語句為qh(n),答案為C。
答案 C
能力提升
3.下面VB程序的功能是將一個十進制數n轉換為二進制數。
程序運行時,在文本框Text1中輸入一個正整數n,單擊“轉換為二進制數”的按鈕,在標簽Label2中顯示該十進制數對應的二進制數。程序運行效果如下圖所示。
實現上述功能的VB程序如下,請回答下列問題:
Function dtob(x As Integer) As String
  Dim y As Integer, s As String
  s = “ ”
  Do While x > 0
  y = x Mod 2
  x = x 2
  s = y & s
  Loop
  ________①________
End Function
Private Sub Command1_Click()
 Dim n As Integer
 n = Val(Text1.Text)
 Label2.Caption = “整數” + Str(n) + “轉換為二進制數為:” +________②________
End Sub
(1)要在窗體的標題行上顯示“十進制轉二進制”,應修改Form1窗體的________屬性的屬性值。
(2)請在程序劃線處填入合適的代碼。
解析 (1)本小題主要考查的是窗體的Caption屬性。(2)劃線①處主要考查的是函數值的返回,因此代碼為dtob = s;劃線②處主要考查的是自定義函數的調用,函數值為字符串類型,因此②處代碼不能加Str函數,答案為dtob(n)。
答案 (1)Caption (2)①dtob = s ②dtob(n)
4.超級素數的定義:當一個素數從低位到高位依次去掉一位數后剩下的數仍然是素數,則此數為超級素數。例如:7331、733、73、7均為素數,所以7331為超級素數。單擊“查找按鈕”Command1,則在列表框List1中顯示所有四位數的超級素數,并在文本框Text1中顯示超級素數的數量。
Private Sub Command1_Click()
 Dim i As Integer, temp As Integer
 Dim flag As Boolean, n As Integer
 n = 0
 For i = 1001 To 9999 Step 2
flag = True : temp = i
Do While temp <> 0
  If  Then flag = False: Exit Do′(1)
  temp = temp '10
Loop
If flag Then List1.AddItem Str(i):n = n + 1
 Next i
 Text1.Text = Str(n)
End Sub
Function prime(x As Integer) As Boolean
 Dim j As Integer
 prime = False
 If x >= 2 Then
j = 2
Do While x Mod j <> 0
  j = j + 1
  Loop
  If   Then prime = True′(2)
 End If
End Function
程序中加框(1)處應改正為___________________________________________;
加框(2)處應改正為_________________________________________________。
解析 該題采用枚舉算法思想,找出1001到9999之間的超級素數。prime函數的功能是判斷x是否是素數,若x是素數,他將不能被2至x-1之間的數整除,每一個能被x整除的數是他本身,因此第二處應為j=x。超級素數的條件是依次去除各個數字,去除后的數還是素數,變量flag表示是否是素數的標志。在第一處錯誤中,如果prime(temp)為假時,flag才為False。
答案 (1)prime(temp)=False (2)j = x
課件16張PPT。第1節 過程與自定義函數一、過程
1.VB應用程序是按模塊化的方式組成的,程序模塊分為過程和函數兩種,過程強調的是動作,而函數強調的是值的計算。
2.什么是過程
將程序劃分為一個個較小的邏輯單元,每個邏輯單元構成一個過程。過程中的代碼可以被重復地調用。3.過程的分類過程分成兩類:事件處理過程和通用過程。
①事件處理過程的一般格式:
Sub 事件處理過程名(參數表)
 語句塊
End Sub
②通用過程的一般格式:
Sub 通用過程名(參數表)
 語句塊
End Sub
過程調用:Call 過程名(參數表)4.常見的VB事件常見的VB事件有:Click(單擊)、DblClick(雙擊)、KeyPress(按鍵)、Load(裝載)、Change(改變)等。
作用在VB對象上的常見事件處理過程有:
文本框Text:Text1_Click、Text1_DblClick、Text1_KeyPress、Text1_Change
命令按鈕Command:Command1_Click
標簽Label:Label1_Click
窗體Form:Form_Load(窗體裝載)二、自定義函數
1.函數
函數也是一個程序模塊,不同之處是函數執行完成后,函數的計算結果被送到函數的調用點上,供程序的后繼部分繼續執行,會返回一個函數值。函數值是通過函數名返回的。
2.自定義函數格式
Function 函數名(參數表)As類型名
  語句塊
End Function一、過程
【典例1】 下面VB程序的功能是利用海倫公式求三角形面積。程序運行時,分別在文本框Text1、Text2、Text3中輸入三條邊的長度,單擊“計算”按鈕,若能構成三角形,則在標簽Label5中顯示三角形的面積,否則顯示信息“無法構成三角形”。其中p為周長的一半。
運行效果如下圖所示:實現上述功能的VB程序如下,請回答下列問題:
Private Sub Command1_Click()
 Dim a As Integer, b As Integer, c As Integer, d As Single, s As Single
 a = Val(Text1.Text)
 b = Val(Text2.Text)
 c = Val(Text3.Text) If a + b > c And a + c > b And ____①____ Then
d = (a + b + c) / 2
s = ________②________
Label5.Caption = Str(s)
 Else
Label5.Caption = “無法構成三角形”
 End If
End Sub(1)“Private Sub Command1_Click()”中Command1是指__________,Click是指________,Command1_Click為__________________(選填:對象名 /事件名/屬性名/過程名)。(2)請在劃線處填入合適的代碼。解析 (1)本小題主要考查的是VB的對象、事件及事件處理過程。Command1是指對象名,Click是指事件名(鼠標單擊),Command1_Click為過程名。
(2)本小題主要考查的是VB表達式。程序①處語句表示能否構成三角形的條件(任二條之和大于第三邊),因此①處代碼為b + c > a;程序②處代碼表示用海倫公式求三角形面積,將數學公式轉換為VB公式,因此②處代碼為Sqr(d * (d - a) * (d - b) * (d - c))。答案 (1)對象名 事件名 過程名 
(2)①b + c > a 或a < b + c ②Sqr(d * (d - a) * (d - b) * (d - c))二、自定義函數
【典例2】 編寫一個求[a,b]區間內的所有素數的VB程序。程序運行時,分別在文本框Text1、Text2中輸入a、b的值,單擊“求解”按鈕,在列表框List1中輸出[a,b]區間內的所有素數,并統計個數,顯示在列表框的最后一行。程序運行效果如下圖所示:實現上述功能的VB程序如下,請回答下列問題:
Function prime(x As Integer) As Boolean
 Dim k As Integer
 k = 2
 prime = True
 Do While k < x And prime
If x Mod k = 0 Then
  ________①________
Else
  k = k + 1
End If Loop
End Function
Private Sub Command1_Click()
 Dim i As Integer, a As Integer, b As Integer, n As Integer
 a = Val(Text1.Text)
 b = Val(Text2.Text)
 For i = a To b
If ________②______ Then
  List1.AddItem Str(i)
  n = n + 1
End If Next i
 List1.AddItem “共有素數:” + ______③______ + “ 個”
End Sub
(1)代碼“List1.AddItem Str(i)”中的AddItem是指____________(填:屬性名 / 事件名 / 方法名)。
(2)請在劃線處填入合適的代碼。解析 本題主要考查的是自定義函數。(1)代碼“List1.AddItem Str(i)”中的AddItem是指方法名。(2)函數值是通過函數名來返回的,prime函數的初值為True,當整數x能被整數k整除時,表示x不是素數,因此修改函數值為False,即①處代碼為prime = False;②處代碼為調用prime函數,當整數i為素數時,則在列表框List1中輸出,因此代碼為Prime(i)= True ,也可寫為prime(i);變量n用來統計素數個數,因為與其他字符串連接后在列表框中輸出,因此③處代碼為Str(n),而不能寫為n。
答案 (1)方法名 (2)①prime = False
②Prime(i)= True 或prime(i) ③Str(n)

展開更多......

收起↑

資源列表

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 天祝| 运城市| 江源县| 东兰县| 广水市| 琼结县| 沈阳市| 开平市| 谷城县| 莲花县| 界首市| 东港市| 江都市| 乌拉特前旗| 宜宾市| 响水县| 罗城| 武陟县| 扎赉特旗| 鸡西市| 临桂县| 陇川县| 大连市| 嵊州市| 确山县| 吕梁市| 溧阳市| 响水县| 洛阳市| 桂东县| 郸城县| 新昌县| 灵石县| 阿拉尔市| 栾城县| 许昌县| 库尔勒市| 兴国县| 蓬溪县| 会泽县| 桓仁|