第一課時 VB簡介
一、 VB是一種編程編程語言
Basic正是微軟公司售出的第一套軟件。Basic 發展到今天已經有很多版本,如 GW-Basic 、QuickBasic 、QBasic 、Visual Basic ,等等,其中,Visual Basic 是最容易學習與應用的程序語言之一。雖然最容易學習與使用,但它的功能卻非常強大,很多應用程序都是用它編寫出來的。
不是個個都能成為比爾蓋茨,但你想知道天天使用的Windows的諸多功能是如何實現的嗎?你想要編寫自己的應用程序嗎?通過學習VB就能寫出很多應用程序。
二、打開程序:
點擊桌面上的 Visual Basic 圖標(或從“程序”菜單中打開“Microsoft Visual Basic 6.0 中文版”),在彈出的如圖一的窗口中選擇“創建標準 EXE”按鈕。
圖一
確定后的狀態如圖二
圖二
三、 工作界面簡介:
1、 標題欄
2、 菜單欄
3、 工具欄
圖三
4、 工具箱面板
5、 程序設計區
6、 VB工程管理器:用來管理開發一個VB程序所需要的各種類型的窗體和模塊,如左圖是一個工程所包含的東西,窗體是一個程序表現在外面的界面、模塊是程序內部使用的代碼。
7、 屬性窗口
圖四
用來顯示控件的屬性,并允許我們修改,設定這些屬性的值,我們在窗體設計區域的窗體上選中一個控件,以按鈕為例,則在“屬性窗口”中會列出它的屬性,我們可以看到常用的“Name”、“Capition”、“Font”等等屬性,試著把“Capition”屬性改為“這是一個按鈕”,然后看看“窗體設計區域”的按鈕上顯示的文字是不是改變了。
8、 布局窗口
圖五
調整程序運行時,程序窗體在屏幕中的初始位置,把鼠標移到左圖屏幕中的窗體上,這時鼠標會變成移動形狀,拖動窗體,就設置好了運行時此窗體的位置。
四、 控件的使用
1、 控件的屬性
2、 控件的使用
以控件“按扭”的使用為例來說明
制作計算機器界面:
雙擊工具箱面板上的命令按鈕(Command Button)圖標,如圖六:
圖六
然后你會發現程序界面上多了一個命令按鈕,如圖七:
圖七
在控件屬性窗口中設置:“Caption”屬性為“0”,并調好大小,選擇好字體、字號,如圖八所示
圖8所示
單擊這個按鈕選中它,讓它周圍出現8個小句柄.選擇“編輯”菜單中的“復制”命令,再選擇“粘貼”命令,則在設計窗體上會出現一個和原有按鈕一模一樣的按鈕。重復以上步驟,做出18個按鈕,修改這18個按鈕的“Caption”屬性。
五、生成可執行的EXE文件
第二講 Label 控件
Label(標簽控件)是圖形控件,主要作用在于顯示文字信息,如大家比較熟悉的程序安裝界面:在某個軟件安裝過程中,常常會顯示一些幫助信息或與產品相關的介紹信息,而這些,大多是用標簽控件制成的。
在 Visual Basic 工具箱中,標簽控件的圖標如圖一所示。標簽的默認名稱(Name)和標題(Caption)為 LabelX(X為1、2、3,等等),規范的命名方式為:LblX(X為自己定義的詞,如 LblShow 、LblRed ,等等)
圖一
一、標簽控件的主要屬性: 1、Caption(標題)屬性: 此屬性用來設置在標簽上顯示的文本信息,可以在創建界面時設置,也可以在程序中改變文本信息,如第一章的例子中,通過點擊按鈕改變標簽顯示的字樣。
如果要在程序中修改標題屬性,代碼規則如下:
標簽名稱.Caption = "欲顯示的文本"
如:LblShow.Caption = "跟我來學 VB教程"
但是請大家注意,上面的代碼應該寫入供觸發的控件對應的程序代碼區,如第一章中,是在命令按鈕的程序代碼區輸入的代碼,而不是標簽本身的代碼區喲。
這也是初學者常常大惑不解的地方,為什么我要讓標簽改變字樣,卻要在其他控件中輸入代碼?這是因為,我們是通過觸發其他控件這個事件來讓標簽改變 Caption 屬性的。
當然,你也可以讓標簽本身來觸發 Caption 屬性改變事件,如用鼠標點擊標簽,這時你就需要在標簽對應的程序代碼區輸入代碼了,但在實際編寫中,這種情況非常罕見。畢竟,標簽控件用于顯示信息的本意遠遠超過了響應鼠標點擊的意圖。
2、BorderStyle(邊框)屬性: 本屬性用來設置標簽的邊框類型,有兩種值可選:0,代表標簽無邊框;1,代表標簽有邊框,并且具有三維效果,如圖二顯示的兩個標簽:
圖二
BorderStyle 屬性可以在設計界面時指定,如圖三:
圖三
也可以在程序中改變(但這種應用不多見),程序代碼規則:
標簽名.BorderStyle = 0/1(0或1,兩者取一)
3、Font(字體)屬性: 本屬性用來設置標簽顯示的字體,既可以在創建界面時設定,也可以在程序中改變。
在創建界面時設定,如圖四:
圖四
在圖四的設置界面中,除了可以選擇字體,還可以設置顯示文字是否為粗體、斜體、下劃線等。
在程序中改變 Font 屬性,程序代碼書寫規則如下:
字體改變:標簽名.FontName = "字體類型",其中,“字體類型”可以是中文,如“宋體”、“隸書”;也可以是英文名,如“Arial”、“Times New Roman”,等等,不過,這些字體名稱必須是電腦上有的。
字體大小改變:標簽名.FontSize = X ,其中,X 是阿拉伯數字,代表字體是幾號字。如:LblShow.FontSize = 11 。
粗體(FontBold)、斜體(FontItalic)、下劃線(FontUnderline)、刪除線(FontStrikethru)屬性的設置值是代表真/假的邏輯判斷值 True/False ,如下:
LblShow.FontBold = True/False LblShow.FontItalic = True/False
改變字體顏色
LblShow. ForeColor=顏色常量
顏色常量表
顏色常量 | 顏色 | 顏色常量 | 顏色 |
vbBlack | 黑色 | vbRed | 紅色 |
vbGreen | 綠色 | vbYellow | 黃色 |
vbBlue | 藍色 | vbMagenta | 洋紅色 |
vbCyan | 青色 | vbWhite | 白色 |
或者
LblShow. ForeColor=RGB(R,G,B)
R、G、B分別代表紅色、綠色、藍色的值,取值范圍是0到255的整數。
4、Alignment(對齊)屬性: 此屬性用來設置標簽上顯示的文本的對齊方式,分別是:左對齊,0;右對齊,1;居中顯示,2。可以在界面設置時設定,如圖五:
圖五
也可以在程序中改變,代碼如下:
標簽名.Alignment = 0/1/2
5、Visible(可見)屬性: 本屬性在大多數控件中都有,它能設定該控件是否可見。當值為 True ,控件可見;當值為 False ,控件隱藏。
控件的可見屬性可以在界面設置時設定,如圖六:
圖六
也可以在程序中改變,代碼如下:
標簽名.Visible = True/False
二、標簽控件(Label)的主要事件: 所謂的事件,其實就是用戶對應用程序的操作,如第一章中用鼠標點擊命令按鈕觸發的 Click 事件。
事件的作用在于觸發程序的執行,如第一章中的 Click 事件改變了標簽控件的 Caption 屬性。
標簽控件的主要作用在于顯示文本信息,但也支持一些為數不多的事件。
1、Click 事件(鼠標單擊): 用鼠標點擊標簽時觸發的事件,如改變標簽的字體屬性:
Private Sub LblShow_Click() LblShow.FontName = "隸書" End Sub
2、DbClick 事件(鼠標雙擊): 鼠標雙擊引發的事件,如改變標簽的可見性:
Private Sub LblShow_DbClick() LblShow.Visible = False End Sub
三、知識點: 1、用 VB 編寫程序猶如搭積木,把每塊“積木”(控件或其他對象)放在合理的位置,然后以某種機制(程序)將這些“積木”們運用起來,最后就搭成了我們需要的東西。所以,掌握每一種控件,包括它們的屬性與主要事件,是我們學習編程的基礎!
2、某些屬性是大多數控件所共有的,如 Name 、FontBold、FontItalic、Visible ,等等;但也有些屬性是某個控件所獨有的,如標簽控件的 WordWrap (標簽的標題顯示方式)。本節中我們只是講述了部分標簽控件的屬性,其他屬性可以在 VB 的幫助文件中查找到。
3、大家在學習過程中一定會疑惑,為什么在屬性設置時,“=” 右邊有時使用 "" ,有時又不使用 "" 。不知大家注意到沒有,我們在使用 "" 時,是因為引號里面的內容是字符串,如"隸書"、"Times New Roman",等等。
4、字符的大小寫問題:初學者還常常疑惑,字母什么時候應該大寫,什么時候應該小寫?其實,大寫小寫在 VB 程序中都是一樣的,但為了讓程序編寫得更為規范,程序可讀性更高,英文單詞的第一個字母一般都要大寫,如 Visible 、Name ,等等;
控件的命名也遵循以上原則,不同的是,命名都是由“控件類型名+具體名字”組成的,控件類型名的第一個字母要大寫,具體名字的第一個字母要大寫,如 LblShow 、CmdShow 、LblChange ,等等。
5、程序代碼的規范:上面有這樣的例子: Private Sub CmdShow_Click() LblShow.Caption = "跟我來學 VB 神童教程" End Sub
Private Sub CmdShow_Click()代表一個過程,共由兩部分組成,CmdShow 代表 CmdShow 這個按鈕,Click 代表這個按鈕的觸發事件。
以此類推,Private Sub LblShow_DbClick ()也代表一個過程,LblShow 是個標簽,DbClick 是雙擊事件。
另外,Private 意為“私有”,表明這個事件過程的類型;此外還有 Public 即“公有”事件。
Sub 表明這個過程是“子程序”,若干個“子程序”共同組成最終的應用程序。
()里面是用來裝參數的,關于參數,我們以后講述,如果沒有參數,()里面為空。
四、作業
1、開始界面
2、在“用鼠標點我”區域內單擊出現
在“用鼠標點我”區域內單擊出現
3、點擊“有邊框”出現
3、點擊“無邊框”出現
第三講 數據類型
一、數據類型
數據是指計算機程序中需要處理的各種信息。按數據的性質,數據可分為不同的類型。
例如:姓名、地址屬于文本類型的數據,數量、單價屬于數值類型的數據。
為了有效地進行數據處理,需要將數據劃分為不同的類型。VB提供的數據類型主要有數值型、字符串型(string)、布爾(boolean)和日期型(date)。
1、 數值型數據
(1)、字節型(byte),占1個字節
(2)、整型(integer),占2個字節
(3)、長整型(long),占4個字節
(4)、單精度(sing),占4個字節
(5)、雙精度(double),占8個字節
(6)、貨幣型(currency),占8個字節
2、 字符串類型(string)
字符串是一個用雙引號括起來的字符序列。例如,以下字符串都是合法的字符串:
“Hello”
“12345”
“ABCD123”
“Visual Basic 6.0程序設計”
“”
3、 布爾型(boolean)
布爾型數據占2個字節的存儲空間,用于進行邏輯判斷,只有True和False兩個值。
例如:3>2的值為True;0>3的值為False
4、 日期型(date)
當需要表達Date類型的數據時,需要用#號將具體日期括住。
例如:日期是:2004年2月23日,則應表達為:#2004-2-23#
二、算術運算與字符串運算
進行各種運算是解決的基礎。VB支持多種運算,本節課介紹算術運算與字符串運算。
1、 算術運算:VB提供了7個算術運算符,下表以優先級次序列出了這些運算符。
1 ^ 乘方 3^2 9
2 - 取負 -3 -3
3 * 乘法 3*5 15
3 / 浮點除法 10/3 3.33333333333333
4 \ 整數除法 10 3
5 Mod 取模 10 mod 3 1
6 + 加法 2+3 5
6 - 減法 2-3 -1
2、 字符串運算
字符串運算符有兩個:“&”、“+”,它們的作用都是將兩個字符串連接起來,合并成一個新的字符串。例如:
“廣州市” & “中山大學” 結果為”廣州市中山大學”
“168”+”號房” 結果為”168號房”
168+”號房” 數據類型不一致,錯誤
三、課堂練習:
第四講 TextBox的使用(一)
文本框控件在工具箱中的名稱為TextBox,在VB中,可以使用文本框控件輸入、輸出數據。
一、屬性:
(1)Text屬性:字符串類型。
返回或設置文本框中顯示的內容。
例如:Text1.text=”年年有余”
(2)MultiLine屬性:布爾型。
當MultiLine屬性為True時,文本框可以輸入或顯示多行文本。
(3)Passwordchar屬性:字符串類型。
當MultiLine屬性值為False時,該屬性可以用于口令輸入。如果把Passwordchar屬性設置為一個字符,如星號(*),則在文本框中鍵入字符時,只顯示星號,不顯示鍵入的字符。
(4)ScrollBars屬性:數值型。
該屬性用于確定文本框是否帶滾動條。有以下4種選擇:
0-None 沒有滾動條
1-Horizontal 只有水平滾動條
2-Vertical 只有垂直滾動條
3-Both 同時具有水平和垂直滾動條
只有當MultiLine屬性值為True時,文本框才顯示滾動條。
二、事件:
文本框除了支持鼠標的Click、DblClick事件外,還支持Change、GotFocus、LostFocus、KeyPress等事件。本節課,我們先學習Change事件。
(1)Change事件:當用戶向文本框輸入新的內容,或在程序代碼中對文本框的Text屬性進行賦值從而改變了文本框的Text屬性時,將觸發Change事件。
(2)示例:建立兩個文本框,名稱分別為:t1、t2。運行時,用戶在文本框t1中輸入內容的同時,文本框t2顯示相同的內容。
程序代碼:
Private Sub t1_Change()
t2.Text=t1.Text
End Sub
三、綜合練習(界面如下圖所示):
1、屬性設置如下:
2、程序代碼如下:
Private Sub Command1_Click()
t3.Text = t1.Text
End Sub
------------------------------------------------------------------
Private Sub Command2_Click()
t1.Text = ""
t2.Text = ""
t3.Text = ""
End Sub
------------------------------------------------------------------
Private Sub Command3_Click()
End
End Sub
Private Sub Command4_Click()
t3.Text = t1.Text & t2.Text
End Sub
------------------------------------------------------------------
Private Sub t1_Change()
t2.Text = t1.Text
End Sub
第五講 變量
一、變量的概念
1、變量:變量是應用程序在運行的過程中用來臨時保存數據的地方,它的值隨賦值而改變。 為了使用變量,需要為變量指定一個名稱和規定該變量所保存數據的類型, 這項工作稱為聲明變量。
2、為了使編寫的程序更符合規范和更加有效,推薦實行先聲明變量然后才使用。為了強制實施該項要求,需要在每個程序模塊的開始添加如下語句: option explicit
或者,使用以下方法: (1) 執行“工具”—“選項”菜單命令, (2) 然后在“選項”對話框架的“編輯器”選項卡中使“要求變量生命”項目有效,則每當在工程中添加一個新的窗體或模塊時,系統便自動在代碼窗口中添加上述語句。
(3) 如果加入了option explicit語句,則在運行時VB對沒有聲明的變量顯示錯誤信息。如圖:
二、變量命名規則 1.以字母或漢字開頭,后可跟字母、數字或下劃線組成; 2.長度小于等于255個字符; 3.不能使用VB中的關鍵字; 4.VB中不區分變量名的大小寫. 例如,mystring、count123、A1、姓名、性別等都是合法的變量名;而2x、a+b、as、if等是不合法的變量名。
二.變量聲明 在使用變量之前,一般必須先聲明變量名和類型,以便系統為其分配存儲單元。
1.用Dim語句顯式聲明變量 (1)一般格式: Dim 變量名 [AS 類型] 例如: dim a1 as integer ‘聲明整數型變量a1 dim a2 as strin ‘聲明字符串變量a2 dim s as Single ‘聲明單精度實數變量s dim ss as Double ‘聲明雙精度實數變量s 使用聲明語句聲明變量之后,VB自動對各類型變量進行初始化,數值變量被初始化為0;字符串變量被初始化為一個零長度的符串(””)。
三、應用舉例
1、說明下列語句的作用
y=3*x^3+5
a=a+1 '
說明:先計算右邊的值,然后再把計算結果賦給左邊的變量
2、例:計算圓的面積和周長
1、設計界面和運行界面,如圖所示。
2、代碼:
Option Explicit ------------------------------------------------ Private Sub Command1_Click() Dim pi As Single, r As Single, l As Single, s As Single r = Val(t1.Text) pi = 3.14 l = 2 * pi * r s = pi * r ^ 2 l1.Caption = Str(l) l2.Caption = Str(s) End Sub
****注意**** val(字符串):把字符串轉換為數值; str(數值): 把數值轉換為字符串 輸入的數據是字符型,轉換成數值型才能進行計算;標簽的Caption屬性是字符型,所以輸時又要把計算結果轉換成字符型。
第六講 VB編程入門
一、編寫程序的基本思路
1、人腦處理問題的過程
以“1+2=?”為例
第一步:收集信息
第二步:處理信息
第三步:輸出結果
2、編寫程序解決問題的思路與人腦處理問題的思路相同
第一步:數據輸入
可以通過TextBox(文本框)控件的Text屬性或通過賦值語句輸入數據
(1) 賦值語句用于輸入已知確定的數據;
(2) 用TextBox用于輸入暫時不確定或變化的數據。
**注意**
用TextBox輸入的數句是字符型,若要進行數值計算則要先轉換成數值型(用VAL函數)
第二步:數據處理
一般用用賦值語句進行計算處理或者用以后學的知識進行處理
第三步:數據輸出
用Label控件的Caption屬性或TextBox的Text屬性進行輸出
代碼書寫格式如下:
控件名.Caption=”要輸出的內容” (用Label控件輸出)
控件名.Text=”要輸出的內容” (用TextBox控件輸出)
**注意**
若輸出變量的類型是數值型時,要用STR()函數轉換成字符型。
二、VB編寫程序步驟
分析問題,確定程序要完成什么任務,按下面的步驟創建應用程序。
(1)新建工程。創建一個應用程序首先要打開一個新的工程。
(2)創建應用程序界面。
A、版面如何布局
B、要用幾個控件
C、各控件的“職責”、擺放位置
(3)設置屬性值。
A、名稱屬性
B、Cation、TextBox等屬隆的初始值
C、字號、字體、顏色、背景色等屬性
......
(4)對象事件過程的編程。
A、代碼應寫在哪一個控件上,即事件發生在哪一個控件上
B、確定解決問題的思路
C、寫代碼(要注意變量的定義)
(5)保存文件。
(6)程序運行與調試。生成EXE文件。
三、練習:
求函數y=5x^6+4的值
三、作業:
1、已知邊長求正方形的面積與周長。
第七講 內部函數
數學上的函數,是指對一個或多個自變量進行特定的計算,獲得一個因變量
的值。在VB程序設計中,擴充了函數的定義,使用起來更為靈活。VB為用戶預
定義了一批內部函數,供用戶隨時調用。
函數都帶有一個或幾個自變量,稱之為“參數”。函數對這些參數運算,返
回一個結果值。函數的一般調用格式為:
<函數名>([<參數表<])
如:sqr(9) rgb(0,0,0) date()
其中,函數的參數可以是常量、變量或表達式。若有多個參數,參數之間以
逗號分隔。
這些函數按其分類主要有以下幾個類別的函數:
一、轉換函數
二、數值函數
**注意**
要產生[a,b]區間范圍內的隨機整數,可以使用公式:int((b-a+1)*rnd+a)。例
如:要產生[10,100]區間的隨機整數,可以使用公式int(91*rnd+10)獲得。
三、字符串函數
四、日期時間函數
編號 | 函數 | 功能 | 例子 |
1 | now() | 返回系統日期和時間 | |
2 | date() | 返回系統日期 | |
3 | time() | 返回系統時間 |
五、其他函數
練習:
第八講 IF語句(一)
在程序設計中經常遇到這類問題,它需要根據不同的情況采用不同的處理方
法。例如,一元二次方程的求根問題,要根據判別式小于零或大于等于零的
情況,采用不同的數學表達式進行計算。對于這類問題,如果用順序結構編
程,顯然力不從心。必須借助分支結構。
一、If 語句
格式:
If 條件 then
語句塊1
[ Else
語句塊2]
End If
說明:
(1)“條件”一般為關系表達式或邏輯表達式。通常把關系表達式或邏輯表達式
的值為真時,稱為條件滿足;值為假時,稱為條件不滿足。反之亦然。
判斷下列條件是否成立:
1、1<0
2、1=0
3、1<=0
4、3>=3
5、3<=3
(2)語句塊1、語句塊2分別是“條件”滿足或不滿足時,處理方法的描述,可以
是若干個語句。
(3)If…Then 、Else、End If 是VB的保留字。
功能:
(1)塊If首先判斷“條件”,其值為真時,執行語句塊1;為假時執行語句塊2。
當缺省[Else…]中的內容時,該分支結構只對條件滿足的情況進行處理。執行過
程如下圖所示。
二、實例:火車站行李費的收費標準是50kg以內(包括50kg)0.20/kg,超過
部分0.50/kg。編寫程序,要求根據輸入的任意重量,計算出應付的行李費。
根據題意計算公式如下:
1、界面設計:
2、屬性設置:
3、代碼:
(1) ”計算"按鈕的代碼
Private Sub Command1_Click()
Dim w as single,pay as single
w= Text1.Text
If w > 50 Then
pay =(w - 50)* 0.5 + 50 * 0.2
Else
pay = w * 0.2
End If
Text2.Text = pay
End Sub
(2) ”清空"按鈕的代碼
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
End Sub
(3) ”退出"按鈕的代碼
Private Sub Command3_Click()
End
End Sub
三、(a不為0)
提示:如果則輸出“方程無實數根”,否則輸出方程兩實根。
將x1,x2的值轉換成VB表達式為
x1=(-b+sqr(b^2-4*a*c))/(2*a)
x2=(-b-sqr(b^2-4*a*c))/(2*a)
第九講 Select Case 語句
Select Case語句是多分支語句,又稱為情況語句。
格式:
Select Case 測試表達式
Case 表達式列表1
語句塊1
Case 表達式列表2
語句塊2
…
Case 表達式列表n
語句塊n
[Case Else
語句塊n+1]
End Select
功能:根據“測試表達式”的值,選擇第一個符合條件的語句塊執行。
Select Case語句的執行過程是:先求“測試表達式”的值,然后順序測試該值符合哪一個Case子句中情況,如果找到了,則執行該Case子句下面的語句塊,然后執行End Select下面的語句;如果沒找到,則執行Case Else下面的語句塊,然后執行End Select下面的語句。
說明:
· · · “測試表達式”可以是數值表達式或字符表達式;
· · · “表達式列表”形式有以下3種:
(1)一個表達式或用逗號隔開的若干表達式
select case val(t1.text)
case 1,3,5
L1.caption=”這是奇數”
case 2,4,6
L1.caption=”這是偶數”
end select
(2)表達式1 To 表達式2
select case t1.text
case 1 to 9
L1.caption =”此數是在1到10的范圍內”
case “A” to “Z”
L1.caption =”請輸入數字”
end select
(3)Is 關系運算符 表達式
select case val(t1.text)
case is>=30
L1.caption =”此數的范圍大于30”
case is>=20
L1.caption =”此數的范圍大于20”
case is>=10
L1.caption =”此數的范圍大于10”
end select
【例】輸入一個學生的一門課分數x(百分制),當x≥90時,輸出“優秀”;當80≤x<90 時,輸出“良好”;當 70≤x<80 時,輸出“中”;當60≤x<70 時,輸出“及格”,當 x<60 時,輸出“不及格”。
(1)界面設計
(2)代碼設計
Private Sub Command1_Click()
Dim score!
score = val(Text1.Text)
Select Case score
Case Is >= 90
Text2.Text = "優秀"
Case Is >= 80
Text2.Text = "良好"
Case Is >= 70
Text2.Text = "中"
Case Is >= 60
Text2.Text = "及格"
Case Else
Text2.Text = "不及格"
End Select
End Sub
作業:求分段函數的值
第十講 For 循環語句
在程序中,凡是需要重復相同或相似的操作步驟,都可以用循環結構來實現。
例如:計算1+2+3+...+1000;計算1*2*3*....*1000等等。
一、結構:
For循環的一般格式如下:
For 循環變量=初值 To 終值 [Step 步長]
[循環體]
Next [循環變量]
二、說明:
1.格式中各項的說明
· 循環變量:亦稱為循環控制變量,必須為數值型。
· 初值、終值:都是數值型,可以是數值表達式。
· 步長:循環變量的增量,是一個數值表達式。一般來說,其值為正,初值
應小于終值;若為負,初值應大于終值。但步長不能是0。如果步長是1,
Step 1可略去不寫。
· 循環體:在For語句和Next語句之間的語句序列。
· Next后面的循環變量與For語句中的循環變量必須相同。
2.執行過程
For循環語句的執行過程如下:
(1)系統將初值賦給循環變量,并自動記下終值和步長。
(2)檢查循環變量的值是否超過終值。如果超過就結束循環,執行Next后面的語句;否則,執行一次循環體。
(3)執行Next語句,將循環變量增加一個步長值再賦給循環變量,轉到(2)繼續執行。
以上執行過程用流程圖描述,如下圖所示。
這里所說的“超過”有兩種含義,即大于或小于。當步長為正值時,循環變量大于
終值為“超過”;當步長為負值時,循環變量小于終值為“超過”。
我們通過分析下面的程序來進一步理解For語句的執行過程。
For n=1 To 10 Step 3
Print n,
Next n
具體執行情況如下:
上面程序的執行結果為:
1 4 7 10
3.注意事項
For語句和Next語句必須成對出現,缺一不可,且For語句必須在Next語句之前。循環次數由初值、終值和步長確定,計算公式為:
循環次數=Int((終值-初值)/步長)+1
舉例分析:
For i = 1 To 10
Print i;
Next i
執行此語句將輸出:
1 2 3 4 5 6 7 8 9 10
i是循環變量,它的初值為1,執行print語句,輸出1;然后使i的值增加1,
直到i的值超過終值10,就不再執行循環,它的流程如圖所示:
三、例題與作業:
(1) 求s=1+3+5+…+101的值
(2) 求s=1*3*5*…*101的值
第十二講 循環的嵌套
通常,把循環體內不再包含其他循環的循環結構稱為單層循環。在處理某些
問題時,常常要在循環體內再進行循環操作,這種情況稱為多重循環,又稱為循
環的嵌套。如二重循環、三重循環等。
多重循環的執行過程是,外層循環每執行一次,內層循環就要從頭開始執行
一輪,如:
for i=1 to 9
for j=1 to 9
print i*j
next j
next i
在以上的雙重循環中,外層循環變量I取1時,內層循環就要執行9次;接
著,外層循環變量I取2,內層循環同樣要重新執行9次……所以,循環共執行了
9×9次,即81次。
【例1】單擊 “正方形” 按鈕時,在窗體上顯示相應的圖形。
【效果圖】
【代碼分析】
For i = 1 To 5 //外層循環
For j = 1 To 5 //內層循環,連續打印5個"*"號
Print "*";
Next j
Print //換行
Next i
【例2】單擊 “平行四邊形” 按鈕時,在窗體上顯示相應的圖形。
【效果圖】
【代碼分析】
For i = 1 To 5 //外層循環
Print Spc(5 - i); //每行的開頭需留有空格
For j = 1 To 5 //內層循環,連續打印5個"*"號
Print "*";
Next j
Print //換行
Next i
【例3】單擊 “直角三角形1” 按鈕時,在窗體上顯示相應的圖形。
【效果圖】
【代碼分析】
For i = 1 To 5 //外層循環
For j = 1 To i //內層循環,連續打印i個"*"號
Print "*";
Next j
Print //換行
Next i
【練習】請完成以下圖案。
【效果圖】
【知識拓充】下面的兩個圖案,你能打印出來嗎?
基于硬件的快速發展目前主流操作系統都是64位的,當然微軟也提供 32 位版給某些配置比較低的平板電腦使用。
32位之前還有16位,不過微軟早在Windows 95 時代就開始逐漸遠離16位操作系統,現在16位上古軟件不常見。
發布于2012年的Windows 8其實也支持16位上古軟件,當時微軟在32位版的Windows 8 為16位軟件提供支持。
而64位Windows 8直接拋棄對16位軟件的支持,但萬萬沒想到如今64位Windows 10竟然還可以運行16位軟件。
在64位Windows 10上運行VB3.0
微軟工程師德米特里日前發布博客介紹開發者如何通過開源軟件OTVDM和微軟.MSIX格式封裝16位的上古軟件。
通過這種方式封裝的 16 位上古軟件可以直接在Windows 10里運行,只是從開始菜單點擊圖標會顯示不受支持。
當然嚴格來說這并不是Windows 10原生支持16位軟件,畢竟Windows 8就拋棄16位幾年后怎么可能繼續支持?
由于Windows 10已經不支持NT DOS虛擬機,所以有開發者開發的 OTVDM/WINEVDM 可幫助我們解決問題。
OTVDM/WINEVDM本質上是個16位的模擬器,該模擬器可兼容Windows 10因此能夠繼續運行16位上古軟件。
當然德米特里的重點自然不是怎么介紹使用模擬器運行軟件 , 而是如何通過 MSIX 格式對這些軟件進行封裝運行。
通過MSIX格式進行封裝后可以顯著降低終端用戶的操作步驟---只需要10秒鐘雙擊打開軟件包點擊確認按鈕即可。
簡單來說開發者可以將WINEVDM模擬器與16位軟件進行封裝整合 ,這樣可以把16位軟件打包成兼容的新格式。
通過這種方式封裝的上古軟件可以在Windows 10上穩定運行,就是從開始菜單點擊快捷方式時可能會無法啟動。
當然就目前來說絕大多數用戶已經不需要使用上古軟件,而那些需要上古軟件的環境估計系統也沒有升級最新版。
所以德米特里的這篇博客算是給開發者們提供封裝的新思路,有興趣開發者們可以點擊這里查看德米特里的原文。
原文:https://techcommunity.microsoft.com/t5/windows-dev-appconsult/running-16-bit-applications-on-windows-10-64-bit/ba-p/1671418
轉載:藍點網 landiannews.com