原博主:算法
http://blog.sina.com.cn/buyanshibai編程
【轉載】數據結構
(一)算法編程語言
1.定義函數
相關題解:工具
1算法:就是解決問題的方法和步驟。算法是程序設計的「靈魂」,算法+數據結構=程序。oop
單選題字體
一、運用計算機程序解決實際問題時,合理的步驟是(B)。spa
A、設計算法→分析問題→編寫程序→調試程序設計
B、分析問題→設計算法→編寫程序→調試程序
C、分析問題→編寫程序→設計算法→調試程序
D、設計算法→編寫程序→分析問題→調試程序
2.算法的描述方法:
1算法的描述:可分多種表達方法,通常用天然語言、流程圖和僞代碼進行描述。
2天然語言描述法:指用人們平常生活中使用的語言(本國語言),用天然語言描述符合咱們的習慣,且容易理解。
3流程圖描述:也稱程序框圖,它是算法的一種圖形化表示方法。且描述算法形象、直觀,更易理解。
4僞代碼描述法:是介於天然語言和計算機程序語言之間的一種算法描述。是專業軟件開發人員經常使用方法。
相關題解:
單選題
一、圖形符號" 菱形 "在算法流程圖描述中表示( B ).
A 處理或運算的功能 B 輸入輸出操做
C 用來判斷條件是否知足需求 D 算法的開始或結束
二、圖形符號" 矩形 "在算法流程圖描述中表示( A ).
A 處理或運算的功能 B 輸入輸出操做
C 用來判斷條件是否知足需求D 算法的開始或結束
三、如下哪一個是算法的描述方法?( A )
A 流程圖描述法 B 枚舉法 C 順序法 D 列表法
四、如下哪一個是算法的描述方法?( D )
A 順序法B 列表法C 集合法D 天然語言描述法
介於天然語言和計算機語言之間的一種算法描述是下列哪一個選項?( )
A、僞代碼
B、流程圖
C、高級語言
D、VB 程序設計語言
(二)程序設計基礎
(1)經常使用高級編程語言:BASIC、VB、Pascal、C、C++、Java
1面向對象的程序設計語言:其中的對象主要是系統設計好的對象,包括窗體等、控件等
2控件:是指工具箱中的工具在窗體中畫出的、能實現必定功能的部件,如文本框,命令按鈕等。
經常使用控件:
控件 |
對象的類型 |
前綴 |
名字舉例 |
窗體 |
Form |
frm |
frmfind |
命令按鈕 |
Command button |
cmd |
cmdok |
標籤 |
Label |
lbl |
lblinput |
文本框 |
TextBox |
tmr |
tmrClock |
若命令按鈕(Command)的Enabled屬性設置爲True時按鈕有效,設置爲False時按鈕無效 |
3對象的屬性、方法和事件
1屬性
屬性 |
|
Name |
設置對象的名稱 |
Caption |
決定控件中顯示的內容(文字) |
Text |
決定窗體中文本框中顯示的內容(初始爲空白) |
Height |
決定控件高度 |
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
相關題解:
單選題
一、下列關於程序設計說法正確的是( B )。
A、程序設計語言的發展經歷了機器語言、彙編語言到高級語言的過程,比
較流行的高級語言是PASCAL, FORTRAN, EXCEL, C++等
B、程序設計就是尋求解決問題的方法,並將其實現步驟編寫成計算機能夠執行的程序的過程
C、程序設計語言和計算機語言是同一個概念的兩個方面
D、程序設計就是指示計算機如何去解決間題或完成一組可執行指令的過程
二、下列說法錯誤的是( D ).
A、程序設計就是尋求解決問題的方法,並將其實現步驟編寫成計算機能夠執行的程序的過程
B、程序設計語言的發展經歷了機器語言、彙編語言、高級語言的過程
C、計算機程序就是指計算機如何去解決間題或完成一組可執行指令的過程
D、程序設計語言和計算機語言是同一律唸的兩個方面
三、下列不屬於程序設計語言中高級語言的是(C)。
A、BASIC B、C語言 C、彙編語言 D、PASCAL
四、程序設計語言的發展歷程中,不包括( A )。
A、天然語言 B、機器語言 C、彙編語言 D、高級語言
五、介於天然語言和計算機語言之間的一種算法描述是下列哪一個選項?( A )
A、僞代碼
B、流程圖
C、高級語言
D、VB 程序設計語言
1、常量:批在程序進行過程當中不變的量在VB中通常分數值常量與字符常量兩種
數值常量:就是數學中說的常數,分整型常量和實型常量兩種
整型常量:即整數,指不帶小數點的數值如一、0、、-十、+35等都是合法的整數
實型常量:即實數,指帶小數點的數值。
實型常量又分爲定點數和浮點數兩種。
例:定點數:3.14159和-6.8,1.99
浮點數:2E六、1E五、88E
例:1.2345×103 可表示爲1.2345E3,字母E表示底數10
浮點數就是數學上的科學計數法。
字符串常量:被一對雙引號括起來的若干個合法的字符稱爲字符串常量。例如:」China」、」Visual Basic」、」18」、」3.1415」等,雙引號中字符,不包括雙引號自己。
符號常量:若是屢次用到同一個常量,則可用一個有意義的名字表示這個常量。
2、變量:在程序執行過程當中,其值能夠改變的量稱爲變量
變量命名注意要點:
一、必須以字母開頭,不能以數字或其餘字符開頭。
二、只能由字母、漢字、數字學或下劃線組成,不能含有小數點、空格等字符。
三、最長不超過255個字符
四、不能以VB保留字做變量名,如語句定義符、函數名等。
五、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
運算符
一、 算術運算:
+ 加 -- 減 *乘
^ 指數 例:2^2 = 4
/ (浮點)除 例:5 / 2 = 2.5
\ 整除 例: 5 \ 2 = 2
Mod 求餘數 例:5 Mod 2 = 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(真或是)
相關題解
單選題
一、下面表達式的值是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
一、下列邏輯表達式的值爲「假」的是(A)。
A、2 + 4 > 8 B、3 + 12 = 15 C、5 > 0 And 4 > 3 D、10 / 5 <3
二、下列邏輯表達式的值爲「假」的是(D)。
A、3 + 5 > 7 B、8 / 4 < 4 C、5 > 3 And 3 > 2 D、4 + 11 > 20
三、已知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
相關題解
單選題
一、設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(提示信息[,按鈕][,標題] )
相關題解
單選題
一、Visual Basic中,下列( A )函數是求絕對值的。
A、ABS(X) B、SQR(X) C、INT(X) D、GN(X)
二、表達式Abs(-3.6)*sqr(100)的值是( C )。
A、-36 B、360 C、36 D、-360
三、下列( A )數據類型不是數值型。
A、Date B、Single C、Double D、Integer
四、下列函數中,返回值是字符串的是 ( A ).
A、Mid B、Instr C、Val D、Len
五、下列( A )函數返回系統的當前時間。
A、time() B、date() C、day() D、year()
六、代數表達式 表達式後錯誤的是( D )
A、g*t*t/2 B、1/2*g*t^2 C、g*t^2/2 D、gt^2/2
七、數學式子 在VB中的正確寫法是:( )
A、 (2*a+b)/4*a B 、(2*a+b)/(4ab) C 、(2a+b)(4ab) D 、(2*a+b)/(4*a*b)
八、判斷x是否在區間[a, b]上,在VB中以哪一個邏輯表達式是正確的?( C )
A 、a<x and x<=b B、 a<x<=b C、a<x and x≤b D 、a>x and x<=b
綜合分析
一、向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
二、向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
End Sub
相關題解
單選題
一、如下是一段VB程序:
a = 1
b = a + 1
c = a + b
它的基本結構屬於( A )
A、順序結構 B、選擇結構 C、循環結構 D、樹型結構
二、下列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
End Sub
執行這種形式的語句時,先進行判斷。若條件成立,則執行語句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
相關題解
單選題
一、如下是一段Visual Basic程序:
If I=1 Then
X=X+1
Else
X=X*2
End If
它的基本結構屬於( A ).
A、選擇結構 B、循環結構C、順序結構D、樹型結構
二、下列程序段運行後,變量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
綜合分析
一、如要完成:從鍵盤輸入一個正整數,判斷是不是奇數,如是就在屏幕上顯示。比較好
的算法是( 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中值
二、下面是判斷變量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
三、如要完成:從鍵盤輸入一個正整數,判斷是不是偶數,如是就在屏幕上顯示。比較好
的算法是( 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中值
四、下列程序段運行後,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、提示錯誤,無答案
程序設計的循環結構
1、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
一、 循環變量取初值;
二、 循環變量與終值比較,沒有超過終值轉3,不然循結束,接着執行循環語句的後繼語句;
三、 執行一次循環體
四、 循環變量增長一個增量
五、 重複步驟2~4。
以上能夠看出,For-Next循環變量是一種當型循環。說明
(a) For語句與Next語句必須成對出現,並且它們當中的「循環變量」必須是同一個變量,如上例中均爲I。
(b) 當循環變量爲正時,循環變量超過終值,是指循環變量的值大於終值時;若爲負,則是指循環變量的值小於終值。
|
|
入口 |
出口 |
2、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成立退出循環體。
A |
P |
N |
例題:若是我國人口每一年以平均1.5%的速度增加,問多少年後我國人口達到或超過15億?設如今人口爲12.3億。
Private Sub Form_Click()
Dim p As Single
Dim r As Single
Dim n As Integer
p = 1230000000#
r = 0.015
n = 0
Do
p = p * (1 + r)
n = n + 1
Loop Until p >= 1500000000#
Print n; "年後", "人口="; p
End Sub
下列程序段執行結束後,變量y的值是(C)。
y=2
Do while y<=6
y=y+y
Loop
A、2 B、6 C、8 D、16
分析程序,寫出執行結果。
Private Sub command1_click()
Dim S As Integer,I As Integer
S=0
For i=1 to 10 Step 2
S=S+i
Next i
Print 「S=」;s
End Sub
答案:S= 25
(三)算法與問題解決
1、解析法
2、窮舉法
3、遞歸法
綜合分析
一、有5人,問第5人年齡,說比前面第4人小3歲,問第4. 3. 2人,都說比前面人小3歲,問第1人,說他的年齡爲38歲。問第5人的年齡多大。用遞歸法解決此問題的正確步驟是( B )。
選項:
A、①定義age (n)函數 ②函數中當n>1時返回函數值爲age (n-1)當n=1返回函數值爲38
B、①定義age (n)函數 ②函數中當n>1時返回函數值爲age (n-1)-3當n=1返回函數值爲38
C、①定義age (n)函數 ②函數中不斷地調用age (n-1)-3
D、①定義age (n)函數 ②函數中不斷地調用age (n)函數本身
4、排序與查找數據
4、應用程序設計
一、程序設計的通常步驟
二、 簡單程序設計
綜合分析
一、a,b,c三變量存放不一樣的數,值a 最大,b 第二,比較好的算法是( )
A、①定義一個max(x,y)函數(值爲 x,y 中的大值)② a = max(max(a,b),c)
B、①如a < b就a = b ②如 a < c 就 a = c l如 b <c 就 b = c
C、①如a > b就a = b ②如 a > c 就 a = c l如 b >c 就 b = c
D、①如a < b就兩變量交換 ②如 a < c 就兩變量交換 l如 b <c 就兩變量交換
二、求2! +3! +4! +5!……+10!的值。能完成此運算,而且比較好的算法是( A )。
選項:
A、①定義求階乘的函數用j c(n) ②主程序中用一個循環9次調用j c(n)函數進行累加
B、用一個程序完成:每一項階乘用一個For/Next循環完成,整個程序包括9個循環
C、用解析法:s=1*2+1*2*3+1*2*3*4+…+1*2*3*4*5*6*7*8*9*10
D、沒必要定義函數,只要用一個單重循環就能完成
三、要求打印 100 至 200之間全部偶數的平方根( C )
A、① i = 100 ② Do While i < 200:Print i,Sqr(i):loop
B、① i = 100 ② Do While i < 200:Print i,Sqr(i):i = i + 1:loop
C、① For i = 100 to 200 step 2:Print i,Sqr(i) : Next i
D、① For i = 100 to 200:Print i,Sqr(i):Next i
編程題
必修1_1五、編寫程序,使能打印下面所示的圖案。
*
**
***
**
*
程序:
Private Sub Form Click()
Dim i As Integer '定義i爲整型變量
Dim j As Integer '定義j爲整型變量
For i = -3 To 3
Print Tab(Abs(i)+5)
For j=1 To (4-Abs(i))-1
Print "*";
Next j
Print '換行
Next i
End Sub
必修2_1五、編寫程序,使能打印下面所示的圖案。
*
***
*****
***
*
程序:
Private Sub Form Click()
Dim i As Integer '定義i爲整型變量
Dim j As Integer '定義j爲整型變量
For i = -3 To 3
Print Tab(Abs(i)+5);
For j=1 To 2*(3-Abs(i))-1
Print "*";
Next j
Print '換行
Next i
End Sub
必修3_1五、編寫程序,使能打印下面所示的圖案。
@
@@
@@@
@@@@
@@@@@
@@@@@@
程序:
Private Sub Form_Click()
Dim i As Integer
Dim j As Integer
For i = 1 To 6
Print Tab(10);
For j = 1 To i
Print 「@」;
Next j
Next i
End Sub
必修4_1五、完善顯示按鈕的click程序,將代碼段中「變量1「、「變量2.「變量
三、處換成正確的變量名,使當單擊該按鈕時,Labell. Label2分別
顯示30、10,
完成全部操做後,諸按「Ctrl+S」保存。
Private Sub Command_Click( )
x = 10
y = 30
If x < y Then
t = x
x = y
y = t
End If
Label1.Caption = x
Label2.Caption = y
End Sub
必修5_1五、完善"判斷"按鈕的click程序,使當從Textl中輸入一個數時,當該數
大於或等於60時在Lebell中顯示"及格",該數小於60時在Labell中顯
示"不及格"。
完成全部操做後,諸按「Ctrl+S」保存。
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
必修1_1六、編寫程序,求函數y的值(當x<=0時,y=3x+1;當x>0時,y=4x+1)。
程序:
Private Sub Form Click()
Dim x As Single '定義x爲單精度型變量
Dim y As Single '定義y爲單精度型變量
x = Val(InputBox("請輸入變量x"))
If x <=0 Then
y = 3 * x + 1
Else
y = 4 * x + 1
End If
Print "y=";y
End Sub
必修2_1六、編寫程序,求y=6x-5的值。(x的值在程序中調用InputBox函數,在
彈出的標準輸入對話框中輸入)
程序:
Private Sub Form_Click()
Dim x As Single
Dim y As Single
x = Val(InputBox(「請輸入變量x」))
y = 6*x – 5
Print 「y=」;
End Sub
必修3_1六、一隻猴子摘了一堆桃子,它天天吃當天桃子數的一半,每次忍不住多
吃了一個。這樣到第十天時只有一個桃子能夠吃了,編程計算猴子最
初共有多少個桃子。
完成全部操做後,諸按「Ctrl+S」保存。
程序:
Private Sub Form_Click()
Dim i As Integer
Dim s As Integer
s = 1
For i =1 To 9
s = (s + 1)*2
Next
Print 「s=」;s
End Sub
必修4_1六、完善按鈕「計算7!」的Click事件程序,當單擊命令按鈕時Text1顯示7!的值。
Private Sub Command1_Click( )
Dim a As Integer
Dim i As Integer
a = 1
For i = 1 To 7
a = a * i
Next i
Text1.Text = a
End Sub
必修5_1六、請將按鈕"計算1+2+……+100"的Click事件程序中的"常量"和"變量"換成
正確的常量和變量,當單擊命令按鈕時Text1顯示1+2+"""+100的
值。
完成全部操做後,諸按「Ctrl+S」保存。
Private Sub Command1_Click( )
Dim a As Integer
Dim I As Integer
a = 0
For i = 1 To 100
a = a + i
Next i
Text1.Text = a
必修4_1八、編寫程序,當在Textl中輸入x的值後,單擊計算按鈕,求 y = |3x - 5|的值。
Private Sub Command1_Click( )
Dim x As Single
Dim y As Single
x = Text1.Text
y = Abs(3*x-5)
Text2.Text = y
End Sub
必修5_1八、在打開的窗體Forml中,在窗體中增長一個文本框Text3,在完整按
鈕中的程序,使當單擊"計算"按鈕時,計算b*b一4ec的值,並在Text3
中顯示出來。
Private Sub Command1_Click( )
Dim b As Single
Dim c As Single
Dim x As Single
b = Text1.Text
c = Text2.Text
x = b * b – 4 * c
Text3.Text = x
End Sub
必修1_1七、編程計算 s=1-2+3-4+5-……+99-100
程序:
Private Sub Form Click()
Dim s As Integer '定義變量s爲整型變量
Dim i As Integer '定義循環變量
s = 0
For i=1 To 100
if int(i/2) <> i/2 Then
s = s + i
Else
s = s - i
End
Next i
Print "s=";s
End Sub
必修2_1七、編寫程序,求I+2+…+n>=500中最小的n
程序:
Private Sub Form_Click( )
Dim s As Integer
Dim n As Integer
s = 0
n = 0
Do
n = n + 1
s = s + n
Loop Until s > 500
Print 「n=」;n
End Sub
必修3_1七、編程計算s = 1*2+2*3+3*4+……+n*(n+1)的值,其中n =10
Private Sub Form_Click()
Dim s As Single
Dim i As Integer
s = 0
For i = 1 To 10
s = s + i * (i +1);
Next i
Print 「s=」;s
End Sub
必修1_1八、編程求:雞和兔在一個籠裏,共有腿100條,頭40個,問雞有幾隻,兔有幾隻?
程序:
Private Sub Form Click()
Dim Ji As Integer '雞
Dim Tu As Integer '兔
Dim Leg As Integer '腿數
Dim Head As Integer '頭數
For Ji=1 To 50
For Tu=1 To 25
Leg = Ji*2 + Tu*4 '計算腿
Head= Ji + Tu '計算頭
If Leg = 100 And Head = 40 Then
Print "雞=";Ji;"只", "兔=";Tu;"只"
End If
Next Tu
Next Ji
End Sub
必修2_1八、編寫遞歸函數求5!的值。
Public Function s(n As Integer) As Long
If n = 1 Then
s = 1
Else
s=n * s(n-1)
End If
End Function
Private Sub Form_Click()
Print 「s(5)=」;s(5)
End Sub
必修3_1八、編寫遞歸函數求10!的值。
Public Function s(n As Integer) As Long
If n = 1 Then
s = 1
Else
s=n * s(n-1)
End If
End Function
Private Sub Form_Click()
Print 「s(10)=」;s(10)
End Sub