易語言知識學習教學教程-從基礎學習到精通_第1頁
易語言知識學習教學教程-從基礎學習到精通_第2頁
易語言知識學習教學教程-從基礎學習到精通_第3頁
易語言知識學習教學教程-從基礎學習到精通_第4頁
易語言知識學習教學教程-從基礎學習到精通_第5頁
已閱讀5頁,還剩106頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

.PAGE46易語言教程-從入門到精通第一課.計算機的一般知識 1.1電子計算機的發展及其基本結構1.1.1電子計算機的發展史1945年底,在美國首次研制成功人類第一臺計算機,這臺機器重30噸,占地面積達167平方米,加之它的工作原理,因此,人類后來的計算機并不是在這臺機器的基礎上發展起來的。現代計算機理論的奠基人是圖靈。在美國數學家馮.諾伊曼的主持下,1949年誕生了第一臺存儲程序的計算機,又稱第一代機,這臺計算機為后來的計算機發展奠定了基礎。1959年,第一臺晶體管計算機問世,由此,計算機進入了第二代。1964年,IBM第一代360系列計算機問世,這是第一代通用計算機,為研制這種計算機,IBM投資50億美元,比二戰期間美國政府投入到原子彈研究的錢(20億美元)還要多;由此,計算機進入了第三代。進入到80年代以后,中大型計算機問世,于是開始了第四代計算機的時代。70年代以后,出現了計算速度更快、存儲量更大的巨型機。70年代微處理器的問世,標志著計算機的發展開始了又一場革命。1977年3月蘋果公司的個人用計算機問世,自此,計算機開始進入千家萬戶。1.1.2電子計算機的基本結構計算機由硬件和軟件組成。而硬件是由主機和外部設備組成;軟件由系統軟件和應用軟件組成。計算機硬件是軟件的基礎,是軟件發揮功能的工作環境,而軟件則是管理和利用硬件資源來實現計算機的功能,軟件和硬件是相互促進和發展的。硬件大體上有以下幾個部分:控制器,運算器,內存儲器(RAM、ROM),輸入設備和輸出設備。前三者又合稱主機,后兩者又稱作外部設備。現在就這五個部分的功能,作一些簡要說明。1.輸入設備。輸入設備是用來向主機輸入原始數據和處理這些數據所使用的計算程序列的設備。輸入設備的種類很多,但在微型機上不外乎下列幾種:(1)終端鍵盤。利用手指擊鍵方法向計算機輸入信息。用戶自己寫的程序列化和準備處理的數據,都可由鍵盤上敲入。(2)磁盤。磁盤,實際上也是存儲信息的,因為它們都是主機之外的設備,所以也稱為外存儲器。外存儲器上的信息,也可以輸入到機器中去。(3)模—數(A/D)轉換器。它可以將連續變化的模擬量(如電壓、電流、長度、角度等)轉換為數字量,送入到機器中去。此外,圖形輸入板、聲音輸入裝置等,實際上是專用的模數轉換器,同樣可以為計算機輸入信息。2.輸出設備。輸出設備是用來輸出計算結果或其它信息的。常用的輸出設備有:(1)顯示終端。用以顯示計算機的有關信息,占用戶從鍵盤上敲入并為機器接收的字符、機器清單、機器向用戶的提示,程序運行時的輸紿(包括數字、文字或圖形)等。(2)打印機。顯示終端上可顯示的東西幾乎都可以由打印機打印到紙上。(3)磁盤。可以用來存儲程序和數據(包括數字、文字、圖形和聲音信息等)。3.主存儲器,即內存儲器(簡稱內存)。它用來存放原始數據、處理這些數據的程序以及計算結果(包括中間結果,也包括圖形和聲音信息等)。系統程序也存放在內存中。內存儲器分為一個個單元,好似一間間房子,并按順序編了號碼(從0號開始),通常又稱為一個個地址。機器中的所有信息都以一定的規則存放在內存的一個個單元中。對任何一個單元來說,它很象從左到右順序安放的一排燈泡,每個燈泡代表一位數字:燈泡點亮代表1,燈泡熄滅代表0。于是這一排燈泡就可表示由0和1

構成的一個數這排燈泡的個數,就稱為位數或字長。目前,一般微型計算機的內存儲器是用半導體器件組成的電路制成的,稱為半導體存儲器。字長,一般取決于微處理器的字長。一般微型機的內存儲器又分為兩個部分。一部分是隨機存儲器(RAM),每個單元的數據是可以改變的,而且關電以后所有信息都會自動消失。這類存儲器是用戶可以使用的空間。另外,還有一部分是只讀存儲器(ROM),每個單元一信息是固化的,用戶只可讀出使用,但無法使其改變。任何時候,只要接通電源,這些信息就建立好了。4.運算器。運算器是計算機進行信息加工的場所,所有算術運算邏輯運算等都在這里進行。就象用算盤算題時一樣,它只能放當前被操作完的一個數據,中間結果一般配要送內存中保存起來,以備以后使用。所以,沒有內存,單靠運算器是無所作為的。5.控制器。它是用來實現計算機各部分協調動作使計算過程自動進行的裝置。也就是說,它是計算機內的指揮部。控制器可以向計算機的其它部件發出信號,控制數據的傳輸與加工;同時,控制器也接收其它部件送來的信號,以便調整其控制功能。所以,在計算機工作時,有兩和種信息流:控制流與數據測定流,由控制流控制數據的傳輸與加工,完成所有的計算動作。這里介紹的運算器、控制器、內存儲器、輸入輸出設備等,都是一些看得見、摸得著的“硬”東西,所以又稱它們為“硬件”或“硬設備”。相對地,那些在計算機工作過程中必不可少的數據以及對這些數據進行處理的控制命令等信息流都是摸不著的“軟”東西,通常稱之為“軟件”或“軟設備”。易語言本身,屬于軟件的范疇。1.2計算機中數的表示日常生活中,我們非常習慣使用十進制計數法,可是在日常生活里我們也還會遇到一些另的進制,如二進制(兩只為一從)、十二進制(十二英寸為一英尺,十二個月為一年)、十六進制(中國老秤十六兩為一斤)、二十四進制(二十四小時為一天)和六十進制(六十分為一小時,六十秒為一分等)等等。在計算機內部,則釆用二進制計數法。為什么計算機要使用二進制計數法呢?這是因為電氣元件中兩種狀態最容易實現(如電路的通斷、電位的高低等),也最為穩定,并且最容易實現對電路本身的控制。在計算機里,一般以高電位代表1,低電位代表0。二進制的兩個數基,就用0和1來表示。凡夠2時,就向左進一位。比如十進制的2,用10表示;十進制的4,用100表示等。用邏輯電路實現二進制數的運算,是極為方便的。用不同進位制表示的數之間,可以根據一定的規則相互轉換。1.2.1十六進制數、二進制數、八進制數在計算機內部運算中常用的進位制有4種:二進制:逢2進1,由數字0和1組成,以下標2或后綴B表示。八進制:逢8進1,由數字0至7組成,以下標8或后綴Q表示。十進制:逢10進1,由數字0至8組成,以下標10后綴D表示,該后綴可以省略。十六進制:逢16進1,由數字0至8和字母A至F組成,以下標16或后綴H表示。例如:二進制數1001010表示為1001010(B)、八進制數234512表示為234512(Q)、十六進制數4523ADF表示為4523ADF(H),十進制數的后綴可以省略。用不同進位制表示的數之間,可以根據一定的規則相互轉換。1.十六進制數、八進制數與二進制數之間的轉換一位十六進制數用四位二進制數表示,一位八進制數用3位二進制數表示。二進制數轉換為十六進制數時,以小數點位置為界,向兩側每四位分組,當兩側不足四位時補0。例如:101010.010101(B)=00101010.01010100(B)=2A.54(H)二進制數轉換為八進制數時,以小數點位置為界,向兩側每三位分組,當兩側不足三位時補0。例如:101010.010101(B)=101,010.010,101(B)=52.25(Q)十六進制數轉換為二進制數時,以小數點為界,每一位十六進制數轉換為四位二進制數向兩側排列;八進制數轉換為二進制數時,以小數點為界,每一位八進制數轉換為三位二進制數向兩側排列。1.2.2十進制數和二進制數之間的轉換把一個十進制數轉換為二進制數,方法如下:把這個十進制數反復地除以2,直到商為零,所得的余數(從末一位讀起)就是這個數的二進制表示。如十進制的11,反復用2除:用二進制表示,是1011。換句話說,把一個十進制數化成以2為底的指數形式,則它的系數(由高次到低次)就是其二進制表示的數。像上面提到的十進制數11,換成以2為底的指數形式為:11=1×23+0×22+1×21+1×20把它的系數順序排列起來,就是1011,這就是它的二進制表示。反之,一個二進制數它的十進制表示,就可以用1×23+0×22+1×21+1×20=11換言之,將一個二進制數轉換成十進制數的方法是:將這個二進制數的最末一位乘以20,倒數第2位乘以21,……最后將各項相加即可。1.2.3十進制數與十六進制數的轉換在計算機內,所有的數都是用二進制表示的(電位的高低表示1或0)。然而,如果讓人們對任何二進制數能象對十進制數那樣一目了然,實在不是一件容易的事。這一方面由于人們用二進制數終歸沒有用十進制數來得那么普遍與習慣;另一方面,用二進制表示一個數時,其位數較長(比如大于十進制63的數,用二進制表示至少要6位),且每位數只有0和1可資區別。為此,人們引進了八進制和十六進制的表示方法。必須指出,八進制或十六進制并不是機器中的某一位有八種狀態或十六種狀態,在機器內仍是以二進制為藉款礎的(每一位只可有兩種狀態),只是為著輸入或輸出一個二進制數的方便,擊機器內的二進鑰數從右向左每三位分作一組,每組便可表示0-7的某個數,顯然最右一組滿8時要向左鄰一組進1,于是這三位一組構成了八進制數。類似地,把二進制數從右到左每四位分作一組,每組表示0-15中的某個數,這一組一組就構成了十六進則數。目前用十六進制表示較為普遍。可以想見,把兩個四位連在一起可以用兩個十六進制數表示,其數值范圍可為十進制數的0到255,共256個數,選用它們來代表所有英文字符的內部編碼(以便用二進制數代表字符)是足夠使用了。因此又把兩個十六進制數作為一個基本單位,稱作“字節”。十六進制數的表示法,0-9仍沿用十進制中的0-9,接下去的六個數依次用A、B、C、D、E、F表示。因此,十進制的0-16表示成二進制數和十六進制數。如下表所示。十進制表示二進制表示十六進制表示01234567891011121314151601101110010111011110001001101010111100110111101111100000123456789ABCDEF10十進制數和十六進制數之間的轉換,類似于十進制數和二進制數之間的轉換。把一個十進制數反復地除以16,直到商為0,將所有余數(從末一個起)順序排列起來,就是這個數的十六進制表示。如,十進制的269轉換為十六進制數為10D,反之,把一個十六進制數的末位乘以160,倒數第二位乘以161…再將各項累加,所得的數就是那個十六進制數的十進制表示。如:10D=1×162+0×161+13×160=269關于八進制數及其與十進制數之間的轉換,不再敘述,請讀者自己考慮。1.3計算機語言人們進行思維活動或人與人之間交流思想,要通過語言,計算機進行或人與計算機交流信息,也需要通過語言。這就是計算機語言。計算機語言是用來指明讓計算機依次做些什么事情的,所以又稱為程序設計語言,這種語言有其自身的特點和發展過程。1.3.1機器語言前文提到,計算機的指揮中心是控制器,且計算機中的數都是用二進制數表示的。實際上,控制器也是用二進制數的0或1(即低電平、高電平)來實現其控制功能的。原來,任何一種電子計算機,都是一套指令系統,由若干條指令組成,每條指令都可指揮計算機實現某些功能。一條指令,通常由操作碼和操作數兩部分構成。操作碼由若干位二進制數組成,由于這若干位0和1(即低電位、高電位)的不同組合,因而能使計算機產生不同的。操作數部分也是由若干位二進制數構成,它指明被操作的對象。一般地,它可以是被操作數的本身,也可是被操作數在內存中存放的地址,甚至不指明操作數部分(有時是隱含的)。如果操作數部分指明的是地址,不同類型的機器待,又可能只指明一個地址(被操作數地址)、或指明兩個地址(兩個操作數的地址,或一個被操作數地址,一個操作結果存放地址),或指明三個地址(被操作的兩個數的地址和操作結果存放地址)等等,它們分別被稱為一地址、二地址或三地址指令。控制器每遇到一個操作碼,就會產生不同高低電位的組合,控制機器作相應的動作。地圵部分的不同高低電位組合,又會指向相應的被操作對象。從而完成一條指令的功能。一條條指令執行完結,運算就告結束。由于指令的操作碼會直接使機器產生相應動作,操作數部分會直接指向被操作對象,所以用一條條指令寫成的機器語言程序,能為機器直接認識。換之,機器語言是計算機能懂得的唯一語言。用機器語言寫的程序,在機器上運行時,速度是最快的。值得說明的是,上述例子中,由七個連續單元中;十六進制數的20號單元中也得事先送入一個數;還有,結果存放的地圵也是用戶指定的。這就是說,內存中什么地方放程序,什么地方放被操作的數,什么地方放結果,得由用戶自行分配。短小的程序比較好辦,長而復雜的程序,分配內存時得格外小心,以防止搞亂了。顯然,用機器語言編制計算程序,對用戶來說有著很大的缺陷:1.難寫、難讀、難修改;2.由于每種機器的指令系統不一樣,這種程序沒有通用性;3.需要人工分配內存。1.3.2匯編語言為著克服機器語言固有的缺陷,人們經過研究探討,引進了一種匯編語言。匯編語言實際撫是一種符號語言,它把人們難以記憶和辨認的操作碼改用有意義的英文單詞(或見長縮寫)作為助記符來代替,而對操作數部分稍加改動,更易于理解。然而,從機器語言到匯編語言是花了一定代價的。因為計算機只認識機器語言,為了讓計算機能認識匯編語言,最簡單的辦法是在機器內部編制一個對照表,像一本字典一樣,對任何匯編符號都能從這個對照表中查到相應的機器語言的指令操作碼。進行這種對照查找,當然也得有一個用機器語言寫的(以便機器能認識的)程序,即匯編程序。機器在執行這個匯編程序時會把一條條匯編語言翻譯成機器語言,從而又為機器所能認識。可見,執行匯編程序得額外花費機器運行時間,匯編程序和對照表也要占用內存空間。因而由機器語言改用匯編語言,是以降低機器運行速度和減小用戶可用內存空間為代價的。匯編語言可以克服機器語言的第一個缺陷,但其而缺陷卻依然存在。1.3.3算法語言算法語言又稱“高級語言”,它比較完滿地解決了機器語言的所有缺陷,是程序設計語言的一大突破。高級語言編寫出的程序,稱為源程序,而更是計算機不能直接認識的東西。讓計算機認識并能執行高級語言源程序,需要一個翻譯和執行的過程,它比匯編程序功能要強得多。我們通常用高級語言寫好一個程序,讓機器運行它,這種說法并不十分確切。拿易語言寫的程序來說,真正運行的并不是易語言的源程序,而是由易語言編譯器將源程序編譯后的機器碼,從而完成了源程序所要做的一切。然而它還是順著易語言程序一句句執行的。不同程序語句有不同方法和效果,所以我們以后還是說成運行(或執行)易語言源程序。不言而喻,高級語言的優點是以降低運行速度和減小用戶可用內存空間為代價的。運行速度大約只及機器語言的數百分之一。隨著大規模集成電路技術的飛速發展,指令技術周期越來越短,存儲器越來越便宜,這些代價也就顯得不那么重要了。當然,對某些程序來說,降低運行速度可能是致命性的,所以近年來不少應用程序釆用高級語言與機器語言相結合的辦法,不是沒有道理的。以上提到的匯編程序、解釋程序、編譯程序以及操作系統、服務性程序、庫程序等,一般稱為系統程序;為解決特定問題而編寫的程序,一般稱為應用。這些都是屬于軟件的范疇。1.4習題1.將下列二進制數轉換成十進制數:(1)101(2)1100(3)11011001(4)1011011001102.將下列十進制數轉換成二進制數:(1)26(2)54(3)129(4)255603.把下列十進制數轉換為十六進制數:(1)15(2)287(3)6438(4)396844.把下列十六進制數轉換成十進制數:(1)B(2)1C(3)A93(4)FFFF5.把下列二進制數轉換為十六進制數:(1)10100110(2)11000110(3)1011001110(4)1010010111110106.把下列十六進制數轉換為二進制數:(1)8F(2)3A4(3)6D35(4)FFFF第二課.易語言的基本概念本節將向讀者介紹什么是易語言,構成易語言程序有那些最基本的東西。正象蓋房子一樣,這里僅僅是準備鋼筋,水泥,磚,瓦,沙,石等材料。同時在本章中我們還要介紹一些易語言常用的命令和常規的上機操作方法。2.1易語言的特點1.全可視化一般的可視化編程語言,僅支持圖形用戶界面的可視化設計操作,而易語言除了支持此類可視化操作,還支持程序流程的即時可視化呈視,極大地減少了程序錄入錯誤。即:用戶在編寫程序的過程中,可以即時看到當前程序的運行流程及路線,有助于培養編程思路,提高解決編程問題的能力。2.全中文作為一款由中國人自己開發的編程語言,易語言在中文處理方面有良好的支持。用戶在編寫程序的過程中,可以不接觸任何英文。根本不懂英文的人使用中文編寫代碼也沒有任何障礙。(1)中文名稱的快速錄入。易語言內置四種名稱輸入法:首拼、全拼、雙拼、英文。三種拼音輸入法均全面支持南方音。使用這些輸入法能夠極大地提高中文代碼的輸入速度。直接使用系統提供的輸入法,如五筆字型、智能ABC、紫光拼音、自然碼等,同樣可以進行程序的輸入。(2)程序全部以中文方式顯示,運算符號全部顯示為對應的中文符號(≥≤≠≈×÷),日期時間以中文格式呈現(年月日時分秒),以便于中文用戶理解、閱讀程序。(3)適合中國人的語言、思維習慣。對其它計算機編程語言的學習,總會感到某種限制,首先是語言環境的限制,有很多專業的術語字面上很難理解它的含義,而以中文編寫出的程序代碼,符合中國人的語法習慣和邏輯思維,可以做到見文思義,更加適合中國人使用。在以后復查程序時可以非常直觀地分析;給其他人源代碼學習時也會非常簡單,相互交流變得更加容易。易語言更提供了中文格式日期時間處理、漢字發音處理、全半角字符處理、人民幣金額處理等功能支持。3.全編譯與跨平臺易語言擁有自己獨立的高質量編譯器,中文源代碼被直接編譯為目的機器的CPU指令,高效且不存在任何速度瓶頸和安全隱患。易語言現已同時支持Windows和Linux程序開發,不再依賴特定的操作系統。4.可擴充支持庫易語言由基本系統和運行支持庫兩部分組成,兩者之間通過使用易語言自行定義的接口技術進行協作。運行支持庫內提供了易語言的所有語言要素,如:命令、窗口和報表單元數據類型、普通數據類型、常量等等。可以通過安裝外部支持庫來擴充易語言基本系統。運行支持庫還可以被隨意增減、抽換或升級,基本系統對運行支持庫提供了詳細的版本控制。本技術給用戶帶來的最大好處是:(1)用戶可以根據行業或自身需要定制易語言;(2)由于運行支持庫的不斷增多、升級,易語言的功能將被迅速擴充;(3)由于運行支持庫可以僅包含聲明而不包含實際的運行支持代碼,并且可以隨時被更新或抽換,這樣可使人們通過國際互連網與服務器進行遠程易語言交流(例如復雜型電子商務、遠程控制等等)成為可能,這也是以后易語言互聯網版本的發展方向。5.數據庫支持易語言相對其它編程語言的優勢還在于易語言擁有自己的易數據庫,并且用中文命令操作易數據庫,簡單方便。同時,易語言對外部數據庫也有著非常好的支持,通過簡單的組件和命令就可以實現易語言與各類數據庫的連接,如Oracle、MySQL、SQLServer、Access等等。6.OCX組件、類型庫(TypeLib)、API與COM對象易語言可直接在程序中引用多種現有編程資源,極大的擴充了易語言的功能,并可對這些英文資源進行漢化處理,從而能夠保持全中文的特點,讓用戶不用學習英文也能充分使用這些英文資源。7.與其它編程語言相互融合、互相補充易語言支持當今先進的編程理念,例如面向對象編程、事件消息處理機制等,了解、學習和掌握易語言對掌握其它編程語言具有橋梁作用,同時,易語言可以和其它編程語言以標準Win32DLL方式互相調用,保障了多種編程語言協同開發的需要。8.即時編譯并自動規范語句格式的錄入方式在輸入程序過程中,每條程序語句錄入后,當光標離開該行,則對該行立即進行初步分析編譯。如果該行輸入正確,則該行的拼音簡寫會變成對應的漢字變量名或組件名,并呈現統一的字體間距和格式,因此任何人所編寫的任何程序其格式都完全一致,這對于應用程序的協作開發、交流和維護非常有利。9.系統內置的自動名稱管理器能夠對用戶所定義的各類名稱進行跟蹤管理例如:假設程序中現存在一個名為“刷新內容”的子程序,而且在很多地方都調用了該子程序。現在用戶根據需要想把該子程序更改為另外一個名稱,在傳統的編程語言中,用戶更改子程序名稱后,要搜尋整個應用程序,逐一找到使用了該子程序的地方,把名稱相應地改變過來。在易語言中,用戶只需更改該子程序名稱,程序中其它所有使用了該子程序的地方,其名稱都將被自動更改過來。10.貫穿全程的即時且全面的信息幫助用戶在進行任何操作的過程中,隨時按F1幫助鍵,均能夠在狀態行上或提示夾中獲得有關當前操作位置的詳細相關信息。例如:用戶將光標移動到某程序行上,然后按下F1鍵,馬上就能夠得到此程序行上所有命令的定義、參數、使用方法、所錄屬的支持庫等信息。2.2易語言程序的構成下面對易程序的結構進行介紹。首先你的易程序需要有一個顯示界面,一般是使用一個窗口(也可以是控制臺程序)作為啟動畫面,易語言中指定“_啟動窗口”這個窗口是首先彈出的窗口,大家可以在這個窗口中放上其它的組件,以顯示信息或美化程序界面。窗口顯示時會有一系列的觸發事件,如“創建完畢”事件、“尺寸被改變”事件等,但可能大家沒有用到這些事件,因此不會進行任何的動作,只是顯示一個窗口。若大家使用到了這些事件,就會形成事件子程序,這樣就產生了子程序,而子程序是放在程序集中進行組織的,而每一個窗口對應一個程序集,大家也可以自己創建自己的程序集,程序集包含若干個子程序,子程序內輸入程序代碼。而程序代碼就是各種命令和方法。為配合命令書寫,需要有存放內容的變量,為方便引用,可以建立常量,自定義數據類型,甚至可以建立圖片或聲音資源供引用。為了調用系統應用程序接口API,使用更多的功能,需要進行DLL聲明。這些操作可以在“程序面板”中完成。為了重復利用程序資源,不必每次都重新寫某段代碼,除提供自定義子程序外,還提供易模塊,供其它程序調用,也可以寫標準動態鏈接庫,供易語言及其他語言調用。為了理解上述的程序結構,下面跟著本書寫第一個易程序。先從一個簡單的例子說起。假定某甲有人民幣15元,某乙有人民幣20.5元,求甲乙二人共有人民幣多少元?把這個問題寫成易語言“Windows控制臺程序”,可以是下面的樣子:計算機在執行這個程序時,先讓“甲”取得值15,再讓“乙”取得值20.5,然后讓“和”取得“甲”與“乙”之和,即35.5;再把“和”的值顯示出來。例程中,幾個數字,如15、20.5,幾個中文,如甲、乙、和。這些數字和中文,分別叫做常量和變量。2.3易語言界面、菜單介紹以及上機操作2.2.1易語言的界面初次運行易語言后,首先會彈出對話框,詢問創建何種類型的易程序。如下圖所示。若打開易語言界面后未新建程序,也可以通過菜單“程序”→“新建”來創建新的易程序。或點擊窗口工具條中的新建按鈕來新建易程序。易語言啟動對話框易語言可創建以下6種程序:1.Windows窗口程序:是支持在Windows下彈出窗口及組件等標準WIN32位程序,也稱易程序。2.Windows控制臺程序:是WIN32位無窗口界面的易程序。一般用于服務器等。3.Windows動態鏈接庫:可以生成DLL程序,將在本書關于DLL章節中介紹。4.Windows易語言模塊:簡稱易模塊,是經過初步編譯后的程序模塊,供其他程序重復調用,將在本書關于模塊章節中介紹。5.Linux控制臺程序:是支持Linux操作系統的無窗口命令行程序,將在本書關于Linux程序章節中介紹。6.Linux易語言模塊:是支持Linux操作系統且經過初步編譯后的程序模塊。選擇“Windows窗口程序”,點擊“確定”按鈕,就會創建一個相應的標準的Windows窗口程序,并可以看到易語言的主界面。易語言主界面的最上方是標題欄,顯示易語言系統當前打開的程序名稱,當前所支持的操作系統,以及當前設計窗口名稱。標題欄下方是菜單欄,有易語言的常用菜單。菜單欄下方是快捷命令按鈕工具條,一些常用的操作都可以通過點擊這些工具條中的按鈕實現。主界面的左邊是易語言的工作夾,其中有3個面板,分別是“支持庫面板”、“程序面板”和“屬性面板”。“支持庫面板”的作用是:顯示支持庫列表,展開查看各支持庫提供的命令、數據類型等信息。在程序編輯狀態下,可以通過雙擊此面板中的某個命令,將其直接填充到光標處。若有窗口組件的方法也可以在這個列表中查看方法的用處。將光標移至某支持庫根部,按下F1后可查看此支持庫的介紹信息。“程序面板”的作用是:相當于一個組織機構,可以添加窗口,或加載全局變量、常量、資源、DLL命令申明、自定義數據類型等。也可用來在程序各操作界面間進行切換,例如可以直接找到某個創建的窗口中,或快速找到某個子程序,“屬性面板”的作用是:屬性表可查看和更改已添加組件的屬性、組件列表列出所有組件并可快速選擇所需組件,事件列表可生成此組件的事件子程序。最右邊是易語言的組件箱,里面列出了易語言提供的所有組件。分為四欄,“基本組件”欄可顯示易語言最基本常用的組件,即核心支持庫內的組件,在本書基本組件章節中進行介紹。“擴展組件”包含擴展支持庫內的組件,在本書的后面有一些介紹。“外部組件”包含COM包裝支持庫所封裝的ActiveX組件,此組件也稱OCX組件。“外部事件組件”包含COM包裝支持庫所封裝的COM事件組件。主界面中間是設計區,在窗口設計時可自由向窗口中添加組件,進行程序界面設計;在程序代碼編輯狀態下可錄入、修改程序代碼。切換這兩個工作狀態可通過“窗口”菜單或“程序面板”等實現。最下方是易語言的狀態夾,可以查看幫助信息,查看調試文本等等。易語言系統界面如下圖所示。易語言主界面2.2.2菜單項目詳解下面以易語言默認創建的“Windows窗口程序”介紹各菜單項目的功能。首先說明的是,菜單欄中各項目名稱以及子項目菜單名稱前面帶有下劃線的字母是此項菜單的快捷鍵。只要項目上的文字未變灰,就可使用此項菜單的功能。其使用方法是:點擊鍵盤上的Alt鍵,易語言系統菜單欄中的第一個項“程序”被選中;點擊菜單欄中任意一項名稱前面的字母對應的鍵盤上的按鍵,此項菜單被彈出;最后點擊子項目名稱前面的字母,即可實現菜單功能。而子項目菜單名稱后面的提示是此項功能的快捷方式,比起快捷鍵來說,使用更方便快捷。如:Ctrl+C鍵的功能是將所選內容復制到系統粘貼板中,方法就是同時按下鍵盤上的兩個鍵或先按下Ctrl鍵然后再按下C鍵,而不需要彈出菜單。在實際操作中,快捷鍵和組合鍵的使用會大大提高菜單功能的實現速度,減少鼠標的重復動作。1.程序此菜單的功能是對程序文件項目的操作。(1)新建:建立新程序。彈出標題為“新建:”的對話框,選擇創建不同類型的程序。前面已經介紹過,這里就不多講了。(2)打開:打開一個現有程序。彈出標題為“請選擇易程序文件:”的打開文件對話框,選擇后綴為“*.e”的程序文件。(3)關閉:關閉當前程序。關閉后“易語言”的程序設計窗口將被置空。(4)保存:保存當前程序。新建程序沒有保存過,將彈出“保存為:”對話框,提示編輯者選擇程序的保存位置和程序的名稱,以后此程序將默認這個保存位置,不會再彈出提示。(5)另存為:將當前程序以一個新文件名保存。將彈出“另存為:”對話框,提示編輯者選擇程序的新的保存位置或輸入程序的新的名稱進行保存,同時將位置指向新保存的程序。(6)打印:打印當前編輯窗口中的源程序。使用打印機打印當前窗口中的源代碼。(7)配置:配置本程序的環境及作者信息。彈出“程序配置對話框”設置程序信息。該對話框可以將程序名稱、程序備注、作者信息等信息保存在生成后的EXE文件中,當查看此EXE文件的屬性時,這些信息會顯示出來。并且可以在這里為自己的程序設置圖標。(8)最近打開的程序,可用鼠標左鍵單擊打開被選擇程序,同時原有程序被關閉。(9)退出:退出系統;提示保存文檔。被更改過或末被保存過的程序,將彈出信息框提示編輯者保存程序,然后退出系統。2.編輯此菜單中的項目可完成程序代碼的即時編輯功能,多在代碼設計區被選中時有效。(1)撤消:撤消最后一步操作。一步一步撤消自創建或打開程序后對程序的修改。(2)重復:重新執行先前已撤消的操作。一步一步還原自程序被創建或打開后的撤消的操作。(3)復制:復制被選塊并將其置于粘貼板上。復制被選中代碼或窗體、窗體組件到粘貼板,其原有內容不會改變。(4)剪切:剪切被選塊并將其置于粘貼板上。相當于將被選中代碼或窗體、窗體組件移動到粘貼板中,其原有內容被刪除。(5)粘貼:插入粘貼板內容。將粘貼板的內容插到程序中。其內容是程序代碼,需要在代碼設計區中進行插入;內容是窗體組件,需要選中窗體才能插入;如果是窗體,只需激活易語言系統,便可以將窗體插入到程序中。(6)刪除行:刪除當前所選擇的塊或光標當前所在的行。(7)開始尋找:開始在程序中尋找指定文本。彈出“尋找對話框”,請求輸入被尋找的文本。其尋找范圍為當前程序集。(8)尋找下一個:在程序中尋找下一個指定文本。以光標或已尋找到的文本為界,向代碼下方尋找。其尋找范圍為當前程序集。(9)尋找上一個:在程序中尋找上一個指定文本。以光標或已尋找到的文本為界,向代碼上方尋找。其尋找范圍為當前程序集。(10)尋找替換:在程序中尋找替換指定的文本。彈出“尋找替換對話框”,提示輸入被替換和替換成的文本。以光標或已尋找到的文本為界,向下尋找或替換文本,也可以將當前程序集中所有找到的指定文本進行替換。(11)整體搜尋:在程序中尋找指定文本并列出所有找到的項目。在全局中尋找指定文本,包括常量數據表、數據類型表等所有在代碼設計區中以文本形式存在的指定項目。注:以上5項功能遇到收縮的子程序時將跳過,不進入其內部尋找,忽略其中包括的指定文本。(12)收縮:將當前子程序或塊內的所有語句收縮顯示。(13)展開子程序:將當前選中塊內的所有被收縮子程序展開顯示。(14)屏蔽:屏蔽當前所選中的代碼塊。把所選代碼行或代碼段設置為草稿,在調試和運行程序時不被執行。(15)解除屏蔽:解除屏蔽當前所選中的代碼塊。把草稿行或被屏蔽的代碼設置為可執行代碼。(16)導入其它程序:將其它易程序中的內容全部導入到本程序中。打開標題為“請選擇易程序文件”對話框,選擇程序文件插入到當前程序中。被導入程序的“_啟動窗口”以及其它與當前程序重復的程序集名稱、窗口名稱后面將按順序被加入數字加以區別。 (17)置為只讀狀態:設置為只讀狀態后將不允許所有修改操作的發生。(18)(19)添加一個新的流程控制命令,并將被選擇代碼塊放到此命令中。要使菜單功能有效,選擇代碼塊的方法是:選擇兩行或兩行以上的單行代碼;選擇一個或多個分支流程控制命令,必須把流程線外的一行選中,如下圖。其它選中方法無法實現。(20)(21)把選中的流程控制命令轉換為別的流程控制命令,它們之間可以互相轉換。但要注意的是,在轉換過程中,原來的程序流向有可能發生改變。3.查看顯示各功能工具和程序相關資源定義表。(1)查看自定義數據類型表(2)查看全局變量表(3)查看Dll命令定義表(4)查看常量數據表以上四項菜單的功能相同,都是將所選窗口放置到設計區的頂層。它們與工作夾中程序面板中的各項相互對應。(5)預覽現行窗口,按Esc鍵退出預覽程序不能在此窗口中進行調試。(6)在易語言界面上顯示和隱藏各功能工具。(7)與工作夾中程序面板中的相對項目功能相同。4.插入將所選項目自動插入到對應的設計區中,由編輯者按系統給定的格式填寫代碼。(1)根據現行編輯窗口的性質插入一個新子程序/數據類型/全局變量/Dll命令/常量/資源到當前位置。(2)插入一個新類模塊。(3)插入一個新程序集。(4)插入一個新的子程序到當前位置的后面。(5)插入一個新窗口。(6)插入一個新的自定義數據類型到數據類型表。(7)插入一個新的全局變量到全局變量表。(8)插入一個新的Dll命令到Dll命令表。(9)插入一個新的常量到常量數據表。(10)插入一個新參數到程序中當前命令或子程序調用的參數表。(11)插入一個新局部變量到子程序局部變量表。(12)在當前編輯光標位置處插入所選擇文件的全路徑名稱。(13)向資源表中添加數據資源,如:文本文件、聲音圖片文件以及其它類型文件。5.數據庫使用易語言系統提供的數據庫工具,創建、編輯、轉換、設置數據庫相關內容。(1)瀏覽或修改指定數據庫的結構。本功能由dbmanger.e編譯后的程序提供,用戶可以根據需要進行修改。(2)瀏覽或修改指定數據庫的記錄。本功能由dbmanger.e編譯后的程序提供,用戶可以根據需要進行修改。(3)將數據庫中數據所使用的語言轉換到另外一種。(4)可以將其它類型的數據庫通過ODBC轉換為易數據庫。(5)設置指定數據庫的訪問密碼。(6)將指定數據庫的名稱及所有字段名作為文本常量加入到系統常量表,以便在程序中使用。6.運行程序調試工具菜單。提供多種功能,用來查看、跟蹤、掛起程序。具體使用方法請參見第七課。(1)編譯現行易程序的調試版本.EXE文件后立即運行。(2)終止現行易程序的運行。(3)查看/修改指定表達式或變量的內容。(4)在程序現行運行位置單步執行一行程序,如果此程序調用了子程序,系統不會跟蹤到該子程序中去。(5)在程序現行運行位置單步執行一行程序,如果此程序行調用了子程序,則跟蹤進入子程序。(6)在上級子程序調用現行子程序的語句后中斷。(7)運行易程序,在當前光標所處程序行處中斷。(8)設置或清除當前程序行處的斷點。(9)設置或修改當前程序行處的條件斷點。(10)清除掉程序中的所有斷點。(11)跳到現行即將被執行語句的位置。7.編譯對已注冊用戶,提供三種不同的方法,將源代碼創建成可執行的EXE程序文件。(1)編譯現行易程序的最終發布版本,創建對應的.EXE可執行程序文件。(2)編譯出可執行EXE文件,該文件不依賴任何易語言系統文件,可以在未安裝易語言系統的電腦上運行。(3)制作當前易語言程序的安裝軟件,該軟件不依賴任何易語言系統文件,可以在未安裝易語言系統的電腦上運行并安裝指定易語言程序。8.工具易語言系統提供的多種附加工具,可用來管理和配置易語言的擴展功能。(1)調用菜單編輯器編輯修改當前窗口的菜單。(2)編輯報表模板文件。(3)管理系統中的易模塊。(4)執行指定的易向導文件。(5)安裝新的支持庫或制作支持庫安裝包。(6)本工具可以封裝指定的COM類型庫或OCX組件,使其能夠在易語言中被使用。(7)配置當前在系統中使用的支持庫。(8)設置與系統相關的配置信息。可以打開易語言的系統配置對話框,通過調整該對話框中各項屬性的參數,可以自定義界面各部位顏色,可以選擇各種配色方案,還可以對內置輸入法等很多方面進行配置。9.窗口設置已被載入設計窗口的排列方式以及已被載入設計窗口的名稱、隸屬和類型。(1)排列窗口成相互重疊。(2)排列窗口成互不重疊。(3)將圖標排列在窗口底部。(4)將活動的窗口分隔成窗格。(5)已被激活的設計窗口。(6)已被載入的設計窗口。10.幫助易語言幫助和易語言系統信息。(1)在狀態夾中顯示有關當前位置的幫助信息。(2)打開并顯示易語言知識庫。需要安裝知識庫文件,方可使用。(3)顯示每日一貼。(4)提供有關易語言支持庫的幫助信息。(5)(6)(7)顯示程序和程序注冊信息。2.2.3上機操作1.在設計窗口中添加組件從組件組件箱中選出所需的組件添加在設計窗口中,只需要用鼠標左鍵在組件箱中點擊欲添加的組件,使其處于選中狀態,然后在設計窗口中左鍵單擊或按住鼠標左鍵拖動,拉出一個組件即可。添加后的組件可以通過拖動鼠標改變其位置和大小,也可以使用方向鍵來微調組件的位置,還可以按住[Shift鍵+方向鍵]來微調組件的大小。2.命令參數的輸入易語言提供的參數引導輸入功能,減少了記憶量,更節省了編程的時間,極大降低了程序錄入的錯誤。對于參數較多的命令,程序員不需要再花時間去查詢參數的意義,可以直接將命令展開輸入,方法:將光標停在欲展開的命令行上,如果當前行沒有通過編譯,則不能展開命令,可以使用[Shift+Enter]鍵來編譯當前行,然后按下[ALT+右方向鍵],該命令就會被展開,各參數都列在了該命令的下面,可以直接在命令下的參數分支上輸入。3.即時幫助信息易語言編程環境在用戶進行任何操作的同時,會將有關的支持信息在提示面板中顯示出來,若不能即可提示,可以使用以下介紹的方法:隨時按下“F1鍵”使用可隨時得到與主題相關的幫助信息。即時幫助信息可顯示系統中各運行支持庫內的命令、庫定義數據類型、庫定義常量等等信息。直接在工作夾內的支持庫面板中找到并單擊欲查找信息的項目,此時所有的相關信息將會顯示在狀態夾的提示面板中。如果欲將這些信息提取出來打印或者以后閱讀,可以在相應項目上單擊鼠標右鍵,在彈出菜單中選擇“拷貝幫助文本到剪貼板”或者“寫幫助文本到文件”,輸出與該項目及該項目所有子項目相關的幫助信息,供電腦中瀏覽或打印出來閱讀。4.備注和屏蔽的方法備注是一行或一段代碼的提示和說明。編寫代碼時要養成一個良好的習慣,就是給部分代碼輸入備注信息,這樣一來,既方便了自己日后閱讀,又方便其他人更快的理解程序代碼的思路和功能。輸入方法:在備注文字前加“’”號,則該符號后的本行文字變為備注,在輸入代碼時,可以在代碼的旁邊或代碼的下方輸入備注。在任何情況下,如果想屏蔽一行代碼,則在該行代碼前加“’”號,和置為備注的方法相同,屏蔽后的代碼在運行調試時不會被編譯,調試程序尋找錯誤時,該方法會起到很大作用。將代碼前的“’”號刪除便可以解除屏蔽。還可以在代碼上點擊鼠標右鍵,彈出的菜單中也有“屏蔽”和“解除屏蔽”選項。也可使用[Ctrl+K鍵]進行屏蔽,選中多行代碼,然后使用[Ctrl+K鍵]來屏蔽多行代碼,然后可以使用[Ctrl+M鍵]來解除屏蔽。以上四種操作只是編寫代碼時的基本操作方法,其他細節上的使用,將在以后的相關地方加以詳解。2.4變量在程序運行中可以改變的量,稱為變量。變量實際上是常量的名字,只不過在程序運行的不同時刻可能代表不同的常量罷了。一個變量名好象旅館的一個房間標記,今天可以住張三,明天可以住李四。任何一個變量參與運算時,總是取它所代表的具體數據(即常量)來進行,可以代表一個具體的數據(即常量),或代表一組數據。變量的聲明方法:①將光標移到某個子程序中(包括子程序被聲明的表格中或子程序中的空白處),使用“Ctrl+L鍵”生成下面的空白表格;②生成的空白表格;③按“回車鍵”添加新的空白行;④輸入變量的名稱,除“_”外不能有任何符號和標點;⑤輸入變量的數據類型,也可以按“空格鍵”彈出數據類型表從中選擇;⑥可按“空格鍵”選中/取消,如被選中,子程序第二次被調時變量值就不會自動還原到初始值;⑦用來定義變量的數組維數和成員數(如:2,3),可以使變量保存一組數據,其默認(為空)只能保存一個具體的數據;⑧注解變量的作用和在程序中相關信息。一旦它被聲明之后,就可以使用賦值運算符“=”,給它分配值(數據)。2.4.1變量的作用范圍從變量的使用范圍來區分,可以將變量分為“局部變量”、“程序集變量”和“全局變量”。局部變量,只能在其所在的子程序中才能被調用的變量,其他子程序都無法調用。因為子程序被調用的時候,這種變量才占用系統的內存,當子程序執行結束后,變量所占空間被系統收回,因此局部變量是非常節省系統內存的。程序集變量,一般情況下僅在本程序集中被調用。程序集變量所在的程序集中的所有子程序,都可以自由訪問程序集變量,多個子程序都需要訪問的數據,可以使用程序集變量來存儲。屬于靜態變量。全局變量,在程序運行后,所有程序集內子程序都可以使用的變量。也是覆蓋范圍最大的變量。這種變量在程序運行后即占用內存空間,在程序運行結束才從內存中清除,所以會長時間占用系統資源,建議根據程序的實際情況適當使用。在選擇使用變量的類型時,盡量選擇符合該變量使用范圍的變量類型,以節省系統內存。2.4.2變量的賦值賦值語句是使變量取得數據的常用方法之一。給變量賦值的時候要注意變量的數據類型,符合各數據類型的賦值規則即可。變量的賦值還有幾個需要注意的地方,例如:1.給數值型數據賦值時,數據會自動轉換類型任意數值類型的數據可以被寫入到其它任意數值類型的變量中,系統將自動進行轉換。例如將一個短整數寫入到整數型變量中,將一個整數寫入到小數型變量中等等,但是此時必須注意防止上一章中所提到的溢出問題。若將小數型變量寫入到整數型變量時,會丟失小數點后的內容,請大家千萬注意使用,最好轉換類型是一一對應。2.使用“連續賦值()”命令給多個變量同時賦值“連續賦值()”命令有2個參數,第一個參數是用做賦予的值和資源,第二個參數是被賦值的變量或變量數組,第二個參數可以重復添加,即可以添加多個被賦值的變量,例如:連續賦值(100,變量1,變量2,變量3,變量4)命令運行后,將會給變量1、變量2、變量3和變量4同時賦值100。這一行代碼相當于以下四行代碼:變量1=100變量2=100變量3=100變量4=100以上代碼是最基本也是最典型的賦值語句。其格式為:變量名=表達式功能是:把“=”號右端的表達式的值賦予“=”號左端的變量。或者說,讓“=”號左端的變量取“=”號右端表達式的值。“=”號,稱為賦值符號,不同于數學上的等于號。3.賦值程序例在數學上,變量1=變量1+1是矛盾的方程,不存在這樣的“變量1”。而在易語言中,這類語句是屢見不鮮的。它執行的結果是在舊“變量1”取值的基礎上讓“變量1”取得一個新值。也就是改變“變量1”所代表的數值。上面那個語句執行的結果就是讓“變量1”增大1。如果使用變量1+變量2=100+100或變量1+變量2=變量3+變量4)都是錯誤的。因為賦值語句的格式中,要求賦值符號的左端必須為一個變量名。而這里的“變量1+變量2”不是變量名(它不符合變量名的構成規則)。例1.某學生5門功課的考試成績分別為75,82,90,63,84。求該生的考試總分和平均分。“Windows控制臺程序”代碼如下:按“F5鍵”運行程序,分別將對應的分數輸入,程序便將計算結果輸出顯示。2.4.3變量的初始值變量的初始值即一種變量在程序運行時,沒有賦予新值前的初始數據。每一種數據類型的變量初始值都有所不同。像文本型變量的初始值是一個空文本,表示為“”,數值型變量的初始值是0等等。下表所示。變量的初始值變量類型變量初始值初始值在代碼中的表示方法數值型00邏輯型假假日期時間型1899年12月30日[1899年12月30日]文本型空文本“”字節集型空字節集{}大家可以制作一個簡單的例程,來查看各種變量的初始值。新建一個“Windows控制臺程序”,在“_啟動子程序”新建10個局部變量,并分別將變量名改為“字節變量”、“短整數變量”、“整數變量”、“長整數變量”、“小數變量”、“雙精度小數變量”、“邏輯變量”、“日期時間變量”、“文本變量”、“字節集變量”,然后根據變量名定義相應的數據類型,并輸入代碼:標準輸出(,字節變量,#換行符,短整數變量,#換行符,整數變量,#換行符,長整數變量,#換行符,小數變量,#換行符,雙精度小數變量,#換行符,邏輯變量,#換行符,日期時間變量,#換行符,文本變量,#換行符,到文本(字節集變量))標準輸入()按“F5鍵”試運行程序,控制臺窗口將10個變量的值分行顯示出來,由于沒有對這些變量進行賦值,所以畫板顯示的是這些變量的初始值。如一個變量未被賦值時,將取零值或空文本。“Windows控制臺程序”代碼如下:按“F5鍵”運行程序,其中“數值型”的輸出為“1”;“文本型”的輸出值是“文本”。數值型=數值型+1文本型=文本型+“文本”以上兩行代碼在計算時相當于數值型=0+1文本型=“”+“文本”2.4.4靜態局部變量“靜態”屬性是局部變量的重要屬性。具有“靜態”屬性的局部變量稱為“靜態局部變量”。靜態局部變量在子程序運行完畢后仍保留其內容;而非靜態變量,即普通局部變量,在每次進入子程序時都被重新初始化。靜態變量大致相當于“局部變量”和“全局變量”的結合:它具有局部變量的作用域,同時具有全局變量的生命周期。靜態變量的定義和取消定義的方法很簡單,在欲定義的局部變量的靜態屬性上點擊鼠標左鍵,當靜態屬性上出現“√”后,即表示定義了一個靜態變量,當再次點擊將“√”去掉,即表示取消定義。也可以在靜態屬性上按空格鍵,也可以定義和取消變量的靜態屬性。下面編寫一個簡單的程序,來測試變量的靜態屬性。新建一個“Windows控制臺程序”,并在“_啟動子程序”中新建2個局部變量。一個變量名定義為“靜態變量”;另一個變量名定義為“非靜態變量”。都為整數型變量。將“靜態變量”設置為靜態屬性。輸入代碼:按“F5鍵”試運行程序,輸入一個數,然后按“回車鍵”。會顯示2行內容,其中第二行的數字是不變的,顯示的是非靜態變量中的數據;而第一行的數字每次都遞增,顯示的是靜態變量中的數據。分析代碼可以發現:非靜態變量的值每次后,都會恢復它的初始值,所以代碼:非靜態變量=非靜態變量+輸入值其實等于代碼:非靜態變量=0+輸入值靜態變量會保存上次的值,所以總是遞增的。2.5易語言的數據類型在講述變量之后和講述常量之前,有必要介紹易語言中不同的數據類型。數據類型包括:數值型、邏輯型、日期時間型等。2.5.1了解數據類型易語言中基本數據類型有6種,包括數值型、邏輯型、日期時間型、文本型、字節集型、子程序指針型。字節型。可容納0到255之間的數值。數值型中整數型數據,如:13556。邏輯型數據,只能有2種值,即“真”或“假”。日期時間型數據,用來記錄日期及時間,如:[2002-2-2]。文本型數據,可用來記錄一段文本,如:“中文編程易語言”。在程序中表示一段文本數據,都要用雙引號將文本引起來。字節集型數據,用作記錄一段字節型數據,表示為{23456754}。圖片或mp3格式的文件是典型的字節集型數據,在程序中,存放此類數據的變量一定要定義為字節集型。子程序指針型數據,是一個子程序在內存中的地址。2.5.2給變量正確賦值定義了變量的數據類型后,要給變量賦值就應注意賦值的類型要和變量類型相同。例如:文本變量=“中文編程易語言”‘給文本變量賦值整數變量=32342‘給整數變量賦值日期時間變量=[1982年1月1日]‘給日期時間型的變量賦值字節集變量=#圖片‘給字節集變量賦值,圖片1圖片資源表中的資源這里要注意,給“子程序指針”類型的變量賦值,表示為“&”+要指向的子程序名。例如:變量=&子程序12.5.3數據的比較在編程中,經常會在各種數據間進行比較。同種數據類型之間進行比較,可以直接進行;而不同種數據之間進行比較,就要先進行數據類型的轉換,將不同種的數據類型轉換為同一種數據類型后才能進行比較,否則程序會報錯。例如:編輯框中輸入了一個整數,要比較編輯框中的內容是否大于50。由于編輯框中的內容是一個文本,首先要將編輯框中的內容轉換成整數型數據后,再進行比較,輸入以下代碼:到數值(編輯框1.內容)>50比較后,會返回一個邏輯值,如果大于50就會返回真,小于或等于50將返回假。易語言中常用的數據類型間轉換的命令有:“到數值()”命令,用來將一個通用型數據轉換到整數型。“到文本()”命令,用來將一個通用型數據轉換到文本型。“到字節集()”命令,用來將一個通用型數據轉換到字節集型。“從字節集轉換()”命令,用來將一個字節集型的數據轉換成通用型數據,命令的第2個參數控制欲轉換成的數據類型。“到時間()”命令,用來將一個文本型的數據轉換成日期時間型。使用這些數據類型間互相轉換的命令,就可以進行不同數據類型間的比較了。例如:比較2個編輯框中數的大小,用信息框顯示出比較的結果,并用第3個編輯框顯示出較大數減較小數的結果。在窗口中添加3個編輯框組件和一個按鈕組件,雙擊按鈕組件,然后輸入代碼:變量之間的比較也是一樣,一定要注意變量的數據類型,不同數據類型的變量一定要轉換成相同類型后再進行比較。2.5.4數據類型的存儲字節與溢出1.數據類型的存儲字節各種數值型的數據都在內存中占用一定的存儲空間。字節(byte)是系統中的基本存儲單位。數據類型所占字節數越多,所能夠容納數值的范圍就越大。參見表2-1。表2-1常用數據類型數據類型名稱占用字節數取值范圍字節型10到255短整數型2-32,768到32,767整數型4-2,147,483,648到2,147,483,647長整數型8-9,223,372,036,854,775,808到9,223,372,036,854,775,807小數型4-3.4E38到3.4E38(7位小數)雙精度小數型8-1.7E308到1.7E308(15位小數)邏輯型2“真”或“假”,日期時間型8100年1月1日到9999年12月31日子程序指針4尺寸為4個字節。具有此數據類型的變量可以用來間接調用子程序。文本型由以字節0結束的一系列字符組成字節集一段字節型數據從上表可以看出,數值型數據容納的數值范圍越大,占用的字節就越多。比如,短整數型的數值3000和整數型的數值3000,都代表了數值3000,但在系統中占用的空間卻不同,即短整數型占2個字節,整數型占4個字節。所以,在實際應用時就要根據自己的需要來選擇使用的數據類型,避免存儲空間的浪費。例如,存儲的數據在-32768至32767以內,就要采用短整數型;如果使用小數而對精度不高,就可以使用小數型而不用采用雙精度小數型等等。2.數據的溢出某數據類型存儲的值超出了其所能容納的范圍,就會發生數據溢出錯誤。比如,讓短整數型數據存放大于32767的數值,將會得到錯誤的結果。所以在選擇數據類型時,除了要避免空間的浪費,又要防止數據的溢出。可以做一個簡單例程來測試一下數據的溢出,新建一個“Windows控制臺程序”,然后在“_啟動子程序”中首先按下Ctrl+L鍵,新建一個變量,并定義變量名為“整數變量”,變量類型為整數型,然后輸入代碼:最后按“F5鍵”試運行程序,輸入一個很大的數(比如:10000000000),然后按“回車鍵”,如果超出整數型變量容納范圍而產生溢出,會顯示出錯誤的結果。2.5.5自定義數據類型除了使用易語言提供的數據類型以外,還可以根據需要自定義新的數據類型。例如要定義一個數據類型“矩形”,定義方法如下:第一步,新建一個“Windows窗口程序”,雙擊程序面板中的“自定義數據類型”。第二步,在自定義數據類型界面按下Ctrl+N鍵,新建一個數據類型。然后將數據類型名定義為“矩形”,由于決定一個矩形的位置取決于矩形左上點的橫縱坐標和矩形右下點的橫縱坐標。所以,在“成員名”上按4次回車,加入4個成員。將4個成員名分別定義為“左上橫坐標”、“左上縱坐標”、“右下橫坐標”、“右下縱坐標”。最后,就要來使用這個自定義的數據類型了。畫板有一個方法是“畫矩形()”,下面就用自定義的數據類型“矩形”來為畫矩形方法填寫參數。在窗口中添加一個畫板組件和一個按鈕組件,雙擊按鈕組件,在“_按鈕1_被單擊”子程序中新建一個變量,變量名為“矩形”,然后定義變量的數據類型為“矩形”,然后輸入代碼:代碼輸入后試運行程序,點擊按鈕,畫板會以畫板的邊框大小畫一個矩形。2.6常量常量,其值在使用過程中不會發生變化的變量,稱為常量。比如數字15,不管程序如何變化,它永遠是數字15。核心支持庫中已經定義了大量常量,其它支持庫通常也會定義一些常量,用戶也可以在程序中定義自己的常量。各種圖片或聲音等資源都被看作常量,要想在程序中隨時調用,可以將其存放在資源表中,這樣在編程時不但可以隨時調用,而且資源表中的資源會和程序一起編譯到可執行文件里面。2.6.1了解常量常量是一個固定的量,其值不可以被改變。易語言中規定了一些常量,這些常量都有固定的值,例如易語言中的“#藍色”代表了數值16711680、“#F鍵”代表了數值70,所以在程序中使用“#藍色”其實是調用了“16711680”這個顏色值。核心支持庫定義了許多常量,這些常量可以直接用#常量名即可調用,有數值型常量,如顏色值:#藍色、#綠色;有文本型的常量,如:#引號等等。擴展支持庫也有許多常量的定義,并且新增加的支持庫中,有的也會增加新的常量。2.6.2ASCII碼ASCII碼是各種計算機通用的一種常量。例如字符a的ASCII碼是97、字符b的ASCII碼是98等等,參見下表所示。可以使用易語言中的“字符()”和“取代碼()”命令,在ASCII碼和字符之間進行轉換。例如:信息框(取代碼(“a”,1),0,)信息框會顯示“a”的ASCII碼。常用ASCII碼表ASC值對應字符ASC值對應字符ASC值對應字符ASC值對應字符032(space)0568080P104h033!0579081Q105i034"058:082R106j035#059;083S107k036$060<084T108L037%061=085U109M038&062>086V110N039'063?087W111O040(064@088X112P041)065A089Y113Q042*066B090Z114R043+067C091[115S044,068D092\116T045-069E093]117U046.070F094^118V047/071G095_119W0480072H096`120X0491073I097a121Y0502074J098b122Z0513075K099c123{0524076L100d124|0535077M101e125}0546078N102f126~0557079O103g127□2.6.3常量的使用下面就介紹常量的使用方法:(1)顏色值常量的使用有顏色屬性的組件,在顏色屬性上都有一個顏色選擇器,用來直接改變顏色,顏色選擇器上可直接選擇顏色的顏色值都作為常量提供,在調用的時候直接輸入“#顏色名”即可,如:標簽1.背景顏色=#天藍(2)“#換行符”的使用一段文本尾部加入了一個“#換行符”,接在換行符后面的文本將另起一行,相當于在記事本中輸入的回車鍵。如果想讓編輯框顯示一段文本并自動換行,就需要使用換行符,將“#換行符”加到欲換行文本的前面即可,如:編輯框1.是否允許多行=真編輯框1.內容=“易語言”+#換行符+“編程可視化”(3)“#引號”、“#左引號”、“#右引號”為了不和代碼中表示文本數據的引號相沖突,程序中將文本的引號作為了一個文本常量,如果要讓編輯框顯示出一個引號,就要使用“#引號”常量,要顯示中國標點中的引號,就要使用常量“#左引號”、“#右引號”。例如:讓編輯框顯示出:“我愛易語言,我愛編程!”,需要輸入以下代碼:編輯框1.內容=#左引號+“我愛易語言,我愛編程!”+#右引號(4)鍵代碼的使用易語言中,將標準的101鍵盤上所有鍵的鍵代碼都作為了核心支持庫定義的常量,在程序中使用只需要輸入“#”+鍵名,如鍵盤上的F11的鍵代碼,在易語言中用常量表示為:#F11鍵。例如,在向編輯框中輸入內容的時候,想簡單的屏蔽掉某個鍵,就可以在編輯框的“按下某鍵”事件子程序中輸入代碼。(5)用常量填寫參數很多命令參數填入的都是常量,如:“時間到文本”命令,此命令將指定時間轉換為文本并返回。第1個參數為“欲轉換到文本的時間”,而第2個參數值可以為以下常量:1、#全部轉換;2、#日期部分;3、#時間部分。在填寫第二個參數時,可以填寫數字,也可以直接填寫常量名,如:時間到文本([2004年3月16日5時11分11秒],#日期部分)2.6.4枚舉常量枚舉常量是一種非常方便的常量類型,它本身就是一個常量的集合,將多個常量以成員的形式,存放在一個常量中,使用的格式為#枚舉常量名.成員名這里要注意,枚舉常量只是一種常量的表現形式,是由易語言支持庫定義的常量,和普通常量相同,但只能由用戶來調用,但不能自定義。易語言中有很多支持庫中使用了枚舉常量,如核心支持庫中定義的“變體類型”,“變體類型”提供變體型中所能夠容納數據類型的枚舉值。如表3-4中的某類型枚舉常量可存放于變體型中,通過“變體型.取類型()”取回當前變體型對象的數據類型。變體類型常量成員及常量值變體類型

枚舉常量集合類型

成員描述未知常量值為-1初空常量值為0數值型常量值為1文本型常量值為2邏輯型常量值為3日期型常量值為4對象型常量值為5錯誤值型常量值為6數值型數組常量值為7文本型數組常量值為8邏輯型數組常量值為9日期型數組常量值為10對象型數組常量值為11錯誤值型數組常量值為12變體型數組常量值為13表中,列出了“變體類型”常量的所有成員名及成員的常量值,在程序中,如果想調用“變體類型”常量中的“日期型”成員,該成員的常量值為4,程序中調用該成員就等于調用了4這個整數,例如用信息框顯示出該成員使用代碼:信息框(#變體類型.日期型,0,)運行后,信息框將顯示4。這里要注意,在核心支持庫中還定義了“變體型”,“變體型”和“變體類型”不同,“變體型”是一種數據類型,可以將一個變量的類型定義成“變體型”,“變體型”的變量,可以加入成員和改變成員的值;而“變體類型”是一個常量,其值只可以調用而不可以改變。“變體型”變量的成員和值,要通過調用命令來改變。例如程序定義一個“變體型”變量,并加入一個文本型成員,然后給該成員賦值“”,然后用信息框顯示該成員,代碼如下:對“變體型”變量的操作的其他一些命令包括:清除()、取類型()、取數組成員數()、取文本()、取數值()、取邏輯值()、取日期()、取對象()、取變體型()、賦值()、創建數組()。程序中可以使用這些命令來操作“變體型”變量。2.6.5自定義常量除了各支持庫定義的常量以外,易語言中還可以自定義常量,自己來規定一個新的常量及其代表的值。自定義常量,可以定義一些固定值,編程中使用一些自定義常量還可以增加編程的靈活性,當程序中多個地方調用了某個自定義常量時,如果改變這個自定義常量的值,那這些調用該常量的地方將會自動調用改變后的新值,這樣可以節省改寫程序的時間。定義了一個新的常量后,可以任意定義常量的名稱,然后在“常量值”上輸入該常量的值。自定義常量的使用方法和非自定義的常量的使用方法相同,用“#”+自定義常量的名稱。下面就用一個簡單的例程來學習使用自定義常量。新建一個“Windows窗口程序”,在窗口中添加1個編輯框組件、1個標簽組件和1個按鈕組件。然后按照上面介紹的方法自定義一個常量,常量名叫“顯示內容”,然后將常量值定義為“易語言”。這里要說明的是,如果定義數值型的常量,直接在“常量值”上輸入數值即可;如果定義文本型常量要在欲定義的文本兩端加雙引號。雙擊窗口中的按鈕,在“_按鈕1_被單擊”子程序中輸入代碼:最后運行程序,按下按鈕后,可以看到標簽和編輯框同時顯示出“易語言”。可以試著在不改變代碼的情況下,直接改變自定義常量的值,再次運行程序,可以看到改變常量值后,標簽和編輯框顯示的內容也跟著改變。2.7命令在程序中,除了允許使用常量、變量之外,還允許使用事先定義了的命令,用戶只要給出命令名與參數的值,就可以求出相應的值來。如求5的平方根,可調用命令“求平方根(5)”。程序是由各種命令組合而成的,不同的命令完成不同的工作。易語言中提供了大量的命令,用戶可以使用這些命令來實現預想的運行效果。一個程序可以實現一種或多種功能,而這些功能的實現都離不開程序內部調用的命令。命令是程序的基本組成部分,要學習易程序的編寫,首先就要了解易語言所提供的命令。2.7.1命令的格式命令格式如下:命令名稱(參數,)大部分命令都需要填寫參數,參數用括號括起來的,并用逗號分隔。部分命令無需參數,但括號不能省略,如“結束()”命令。各種命令所要求參數的個數以及數據類型各有不同,由其語法所規定。例如“到文本()”命令,該命令只需一個參數,參數內容為欲轉換成文本的數據。有些命令的參數很多,如“子文本替換()”命令的格式如下:子文本替換(欲被替換的文本,欲被替換的子文本,[用作替換的子文本],[進行替換的起始位置],[替換進行的次數],是否區分大小寫)2.7.2命令的返回值大多數命令執行完畢后都有返回值。有的命令返回運算結果,如“求正弦()”命令,返回求得的正弦值;有的命令返回的執行的結果,如“取文本左邊()”命令,返回取出的文本內容;有的命令返回運行是否成功的狀態,如“創建目錄()”命令,創建成功則返回“真”,創建失敗則返回“假”等等。大部分時候,當前命令的返回值對后續命令來說非常重要。例如一個命令如果運行成功了,就提示成功,否則提示失敗,“Windows控制臺程序”的代碼如下:各命令的語法規定了其返回值的數據類型,在實際使用中,應當注意有可能需要對返回值的數據類型加以轉換,例如,文本數據只接收文本型,因此要顯示一個數字就可以使用“到文本()”命令將數字轉換為文本形式顯示,代碼如下:文本變量=到文本(求平方根(100))“求平方根()”命令的返回值是一個數值型的,如果要以文本方式顯示,就要用“到文本()”命令進行轉換。有些命令的返回值是一個通用型的數據,代表根據參數不同,其返回值數據類型也可以不同。例如“多項選擇(,)”命令。該命令有2個參數,第一個參數是索引值,第二個參數是待選項,待選項可以重復添加。待選項數據類型是通用型(表示參數2可以是任意數據類型)的,返回哪個待選項取決于第一個參數的索引值。索引值是1則返回第一個待選項;索引值是2則返回第二個待選項。所以,所選項是哪種類型的數據,返回值就為哪種類型的數據。下面就編寫一個小程序來了解一下多項選擇命令。新建一個“Windows控制臺程序”,在“_啟動子程序”中輸入如下代碼:按“F5鍵”試運行程序,輸入“4”后按“回車鍵”,將顯示待日期時間“2005年10月1日”。有些命令無返回值,如“結束()”命令,此類無返回值的命令運行后不返回任何值,所以直接使用即可,例如:命令是否有返回值,返回值的數據類型,都可以通過即時幫助系統查找到。2.7.5文本操作類命令在編寫程序時免不了對大量的文本型的數據進行操作,文本操作類的命令比較全面,下面介紹常用文本操作命令。1.“取文本長度()”命令獲取指定文本的字節長度,半角數字和字符為1個字節的長度,漢字和全角標點符號為2個字節的長度,如:取文本長度(文本變量)可以取出變量中文本的長度。2.“取文本左邊()”、“取文本右邊()”和“取文本中間()”命令這3個命令可以取出一段文本中任意位置的文本。如:取文本左邊(文本變量,4)可以將變量中的前4個字符取出來。3.“尋找文本()”和“倒找文本()”命令從當前文本的指定位置開始尋找指定的文本,并返回最先找到該文本的位置。“尋找文本()”是從指定文本的首部開始尋找,“倒找文本()”相反。例如:尋找文本(文本變量,“:”,1,假)代碼運行后會返回找到的第一個“:”的位置。4.“文本替換()”命令該命令可以將指定文本的某一部分用其它的文本替換。例如:文本變量=文本替換(文本變量,4,2,“xx”)將“文本變量”中第4個位置開始的2個字符替換成“xx”,并將結果保存到“文本變量”中。2.7.6時間操作類命令時間操作類命令也是較常用的一類命令,可以對日期時間型數據進行操作。1.“到時間()”和“時間到文本()”命令這2個命令用來在日期時間型數據和文本型數據之間轉換。例如:到時間(“2004/2/212:30:25”)“時間到文本”命令可以將指定的部分的時間轉換成文本。例如:時間到文本(取現行時間(),#日期部分)2.“取現行時間()”命令可以將當前系統的日期及時間取出,例如用“日期時間變量”保存當前的時間:日期時間變量=取現行時間()被保存時間是一個包括“年月日時分秒”的完整時間,如果想取出時間中的指定部分,需要使用其它時間操作類型命令來實現。3.取指定時間部分的命令用來取出指定時間部分的命令有:“取時間部分()”、“取年份()”、“取月份()”、“取星期幾()”、“取小時()”、“取分鐘()”、“取日()”、“取秒()”、“取日期()”、“取時間()。其中“取日期()”和“取時間()”

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論