課程名稱:程式設計 授課老師:________

Slides:



Advertisements
Similar presentations
邱锡鹏 复旦大学计算机科学技术学院 Text Books  “Dragon book”  Compilers: Principles, Techniques, and Tools (2nd Edition)  Alfred V. Aho;Monica S.
Advertisements

計算機程式及實習 Computer Program Design and Experiment) 期末報告 ppt 南台科技大學機械工程系 姓名 : 蔡中銘 學號 :4A 授課老師 : 謝慶存大帥哥.
電腦與問題解決 5-1 電腦解題概論 5-2 電腦解題程序 5-3 演算法概論.
軟體工程 -物件導向程式設計與UML系統分析實作
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
計算機程式及實習 期末報告 題目:商店結帳系統
Demo-dataSource與DropDownList
第一章 绪论.
第一章 認識程式語言.
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
第一章 資料結構導論 1-1 資料結構簡介 1-2 認識程式設計 1-3 演算法效能分析 1-4 物件導向程式設計與Java.
課程名稱:程式設計 授課老師:________
赋值语句与输入、输出语句.
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
Visual Basic 2005學習範本 第5章 選擇結構.
客户端用Net-Library和SQL SERVER连接
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
第一章 軟體工程 (Software Engineering Introduction)
新世代計算機概論 第14章 程式語言.
本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.
第1章 程式語言與Visual Basic的基礎
CH10.
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
第ㄧ章 認識 VB 2008 與主控台應用程式 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
第一章 認識Visual C 環境架構 1-1 認識Visual C Visual Studio 概觀
程式簡介、VB、物件導向 國立北門高中 林明璋.
BLANK overview.
Microsoft .NET 第4組 十月15, 2002 B 陳東傑 B 蔣佳勳
課程名稱:程式設計 授課老師:________
Chapter 1 複習.
CH11.
課程名稱:程式設計 授課老師:________
建立VB.NET應用程式 資管系 助理教授 詹曉苓.
第2章 建立Visual Basic應用程式 2-1 如何設計Visual Basic應用程式 2-2 建立主控台應用程式
第2章 建立Visual Basic應用程式.
第16章 Windows Form與資料繫結 16-1 資料繫結的基礎 16-2 在專案新增資料來源 16-3 使用資料來源建立單筆編輯表單
南华大学计算机学院 软件工程系 QQ讨论群:
程式語言 -Visual Basic 變數、常數與資料型態.
.NET 簡介.
.NET 簡介.
第16章 VB.NET物件導向與.NET Framework
課程名稱:資料庫系統 授課老師:李春雄 博士
第一章 C語言概論 本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載.
初识Visual Basic.
第一章 VB概述 本章重点和难点 1.1 VB 概述 1.2 面向对象的程序设计方法基础
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
Timer & Format.
機器人-Robot Nobody 機器人.
第12章 VBA模块设计.
CHAP13 演算法概論 高中資訊科技概論 松崗圖書公司.
Visual Basic 6.0 ——程序设计.
Visual Basic.NET 程序设计语言课程内容
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
題目:南台飲料店結帳系統 南台科技大學 機械工程系 車輛一甲 學號:4A
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
VB语言程序设计教程.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作 南台科技大學 機械工程系 題目:南台電影城結帳系統 班級 : 車輛一甲 學號 : 4A 授教學生: 阮偉倫 授課老師: 謝慶存.
21世纪高职高专规划教材 C#语言程序设计 李继武 彭德林 主 编 张 珑 赵 松 周建辉 副主编
程序基础 2019/4/25.
計算機概論 跨越講義 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 結構化VS物件導向程式設計
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作
DEV342 Visual Basic 2005: 应用程序框架 和高级语言特性
計算機程式 Visual BASIC 程式設計
计算机应用基础 潍坊学院 计算机工程学院 主讲人:丁素英.
程式語言簡介 2019/7/17 明乘中學編製.
面向对象程序设计 C++教程 西安工业大学 于帆.
编译原理 中南大学软件学院 陈志刚.
Presentation transcript:

課程名稱:程式設計 授課老師:________ 第 一 章 認識程式語言 課程名稱:程式設計 授課老師:________ 2017/3/21

本章學習目標 1.讓讀者瞭解軟體與程式語言的關係。 2.認識視覺化「Visual」程式語言的優點及特性。 2017/3/21

本章內容 1-1.認識程式語言 1-2 .NET Framework簡介 1-3. VB6.0與VB2010 1-4 物件導向設計 1-5 主控台應用程式 1-6 Visual BASIC 2010語言操作環境 1-7 程式碼片斷管理員 1-8 習題 2017/3/21

1-1.認識程式語言 人與人之間的溝通必須要使用共通的語言(例如:國語、閩南語、英語…等),而人想要與電腦溝通,則一樣必須要用電腦看得懂的語言,即所謂的電腦程式語言(例如:Assemble、Basic、C、C++、JAVA、Pascal、Delphi、Visual Basic、ASP語言及ASP.NET2.0、VB2010、C#2010等新一代的程式語言)。而這些程式語言都只是「軟體」的一個子集合。 2017/3/21

1-1.1 何謂軟體 軟體(software)就是程式,它是由一連串的指令所組成,其主要功能就是達成某一特定的目的。在電腦系統中軟體是用來控制硬體,如果只有硬體而沒有軟體,則電腦被視為一堆廢鐵。因此,軟體與硬體缺一不可。就像人一樣,身軀(硬體)與精神(軟體)也是缺一不可的。如圖1-1所示: 圖1-1 人與電腦的關係 2017/3/21

一般而言,軟體可分為兩大類分別為:「系統軟體」和「應用軟體」。如圖1-2所示。 圖1-2 軟體分類架構圖 2017/3/21

1-1.2 程式語言的分類 一般而言,程式語言可分為兩大類:一為低階語言,另一為高階語言。而低階語言又可分為機械語言與組合語言。高階語言則可分為程序導向語言與非程序導向語言及自然語言。如圖1-3所示: 圖1-3 程式語言分類架構圖 2017/3/21

由於電腦只看懂機械語言,因此,我們利用高階語言在撰寫程式之後,電腦並無法直接的執行,必須要透過翻譯程式來翻譯為電腦可以接受的語言。一般而言,從撰寫原始程式到執行時,必須要經過一連串的步驟,例如編譯、連結、產生執行檔及執行結果。如圖1-4所示。 2017/3/21

執行步驟:原始程式編譯目的程式連結產生執行檔 載入到記憶體執行結果 圖1-4程式的執行流程圖 2017/3/21

1-1.3 程式語言的演進 一、第一代語言---機器語言(Machine languages) 這是一種比較接近電腦的語言,亦即電腦可以直接執行的機器碼,由於電腦內部是使用0與1兩種狀態來表示資料及邏輯閘開關的控制,因此,我們將電腦內部由 0與1所組成的資料稱之為「機器語言(machine languages)」。 2017/3/21

一、第一代語言---機器語言(Machine languages)<續> 因為它是一種以0與1所構成二進位形式的碼,故並不適合人類閱讀與學習,也不適合用來進行程式設計。如圖1-5所示: 2017/3/21

一、第一代語言---機器語言(Machine languages)<續> 優點: 它是以邏輯狀態0和1直接命令電腦,不需翻譯就可以直接執行,所以速度最快。 缺點: (1)不同的處理機(CPU),使用不同的機器語言,所以可攜性較差。 (2)只有兩種狀態0與1。因此,不僅難學、難懂、也不容易維護。 2017/3/21

二、第二代語言---組合語言(Assembly languages) 這是一種介於「高階語言」與「機器語言 之間的語言,由於機器語言在使用上不方便,因此,工程師們便從機器語言中找出規則,以英文字、數字符號來重組機器語言,使它們變成較容易記憶的語言,這種語言便稱為「組合語言(Assembly languages)」。它是利用特定功能的符號指令稱為助譯碼(Mnemonics code),例如:ADD代表「相加」、LDA代表「載入」、MOV代表「搬移」;這些指令比起機器語言來說會較有意義、容易學習,而負責翻譯的程式則稱之為組合程式(Assembler)或組譯器。 2017/3/21

二、第二代語言---組合語言(Assembly languages)<續> 由於每一種計算機(電腦)皆有其獨特的機器語言,因此每一種機器的組合語言各有不同。所以,可攜性(Portability)較差。並且較難撰寫及維護,因此,一般使用者較少使用組合語言設計程式。如圖1-6所示: 組合語言 機器語言 ADD MOV LDA 110110010001 110000000011 111101101010 圖1-6 人和電腦溝通示意圖(二) 2017/3/21

三、第三代語言---程序導向語言(Procedure-Oriented Language) 這是一種類似自然語言,它較具有結構性,可以方便讓使用者撰寫程式。但是,在撰寫完成之後必須要再經過編譯器(Compiler)或直譯器(Interpreter)轉換成「機器語言」之才交給電腦執行。 常見的編譯器有C、直譯器有BASIC均屬此類。如圖1-7所示: 高階語言(VB) 機器語言 IF Score>=60 Then MsgBox(“及格”) Else MsgBox(“不及格”) End If 110110010001 110000000011 111101101010 101010101011 101010111111 圖1-7 人和電腦溝通示意圖(三) 2017/3/21

四、第四代語言---非程序導向語言(NonProcedure-Oriented Language ) 由於程序導向語言在開發專案時成本較高、維護不易及重覆使用性低的缺點。因此,後來又發展出「非程序導向語言」,其設計上的優點就是,只要告訴電腦”要做什麼(What to do)”,而不必告訴它”如何做(How to do)”。並且部份的程式碼會自動產生(例如:ASP.NET 2.0),因此,可以大大的縮減專案開發的時間,並且程式在維護上也更有效率。 2017/3/21

四、第四代語言---非程序導向語言<續> 常見的非程序導向語言有下面兩種: (1)結構化查詢語言(SQL) (2)物件導向語言(Object-Oriented Programming, OOP) 2017/3/21

(1)結構化查詢語言(SQL) 比程序導向語言更容易使用的語言,使用者只需將步驟寫出來,而不必管電腦要如何去執行,這樣的電腦語言稱為查詢語言(Query Language);這種語言減輕了使用者程式設計的負擔,常見的是資料庫查詢語言如:SQL。如圖1-8所示: 撰寫查詢語言 Select 使用者所要看的欄位 From 資料表名稱 Where 過濾條件 執行結果 圖1-8 查詢語言示意圖 2017/3/21

(2)物件導向語言(Object-Oriented Programming, OOP) 所謂物件導向程式語言(Object-Oriented Programming簡稱OOP),是把程式設計的概念具體化、物件化,並以該物件的角度去分析和解決問題,它不但突破了以往程序導向語言只能循序單向的設計缺失,更因物件的簡便、維護容易及可重覆使用…等特性,而使得程式開發的速度加快,因此成為最新一代程式語言的主流。常見的物件導向式語言有Visual BASIC 2010、Visual C++、VB.NET、ASP.NET、C#...等等。如圖1-9所示: 每一個按鈕都是獨立的物件,當某一物件的程式有Bug時,也不會影響其他的物件 2017/3/21

五、第五代語言---自然語言(Natural languages) 就是我們日常所用的語言,如英文(english )、中文(chinese)等,這是最接近人類所使用的語言。由於此種語言文法和語意上較為複雜,因此在電腦處理上較不容易,所以並不合適給予電腦處理,目前只用在人工智慧研究之一。如圖1-10所示: 圖1-10自然語言示意圖 2017/3/21

1-1.4 高階語言的種類 既然低階語言在學習上較為困難,因此,一般的學習者都是利用高階語言來開發系統,而目前較常用的高階語言有下列數種。依發展的年代說明如下: 1.FORTRAN(FORmula TRANslator) 語言 2.COBOL 語言 3.BASIC 語言 4.PASCAL 語言 5.C 語言 6.C++ 7.JAVA 2017/3/21

1-1.5 何謂演算法? 「演算法」在韋氏辭典中定義為:「在有限步驟內解決數學問題的程 序」。我們可以把演算法(Algorithm)定義成:「解決問題的方法」。 【題目】製作蛋糕的方法,其步驟如下:

一、撰寫演算法應遵守五點原則 1.輸入(Input):不一定要有輸入。可能沒有,也可能是多個資料輸入。 【題目】 製作蛋糕時,必須要輸入:「雞蛋、麵粉及鮮奶」等食材。

【課本例子】 例如1:不需輸入 如果想要取得系統目前的時間,不須要輸入,只要寫一行now() 函數,就可以輸出系統時間。 例如2:必需輸入 求某數為奇偶數時,則必須先要有一個輸入整數,才能進行 判斷。

一、撰寫演算法應遵守五點原則: (續) 2.明確性(Definiteness):每一行指令都必須明確,不可模稜兩可。 【題目】製作蛋糕時,要加入多少的麵粉與雞蛋及要加熱多久, 必須明確,不可模稜兩可。

【課本例子】 例如1:判斷某一數值是否為偶數。 首先我們試著用下列文字來加以描述:  (1)輸入一個正整數。  (2)作餘除運算是否為0。  (3)為0即為偶數。 以上描述看來似乎正確,但是從演算法觀點來看,其中的第(2)點並不符合「明確性」,因它並未說明「餘除運算」是如何運算,容易造成混淆與不解。我們應該改寫為:  (1)輸入一個正整數N。  (2)如果N 除以2,其餘數為0。  (3)則其N為偶數。 不具明確性 具明確性

【課本例子】 例如2: 「用功的學生才能領獎學金」就不具有明確性,因為每一個人對用功的定義可能不盡相同,而如果改為「成績90以上的學生才能領 獎學金」就是具有明確性,因為90分是一個比較客觀的定義。

一、撰寫演算法應遵守五點原則: (續) 3.有限性(Finiteness):演算法不能有無窮迴路,必須能終止執行, 亦即必須在有限的步驟內完成。 【題目】製作蛋糕必須在有限的步驟內完成

【課本例子】 由於演算法並非是真正可以執行的程式。但是,真正的程式是可以有無窮迴路的動作。 例如:Windows 作業系統(系統程式)除非系統關機或當機,否則它會 永遠執行一個「等待迴圈」,來等待使用者從鍵盤輸入或其他 的輸入設備。

一、撰寫演算法應遵守五點原則: (續) 4.正確性(Correctness) :既然演算法是解決問題的方法,因此, 正確性是最基本的要求。 【題目】製作出來的蛋糕必須要正確,亦即符合使用者的需求

【課本例子】 例如:以下判斷某數為奇偶數的演算法,雖然符合「明確性」,但是 「不正確」,因為N 除以2,其餘數為0,則N應該為「偶數」, 而非「奇數」。 輸入一個正整數N。 如果N 除以2,其餘數為0。 則其N為奇數。應該改為「偶數」

一、撰寫演算法應遵守五點原則:( 續) 5.輸出(Output):至少一個輸出。 【題目】在製作蛋糕時,在輸入「雞蛋、麵粉及鮮奶」之後,一定會有輸出。

【課本例子】 例如:在電腦中,處理資料的基本過程有三個步驟: 輸入 處理 輸出 (原始資料) (程式) (有用的資訊) 輸入 處理 輸出 (原始資料) (程式) (有用的資訊) 所以,使用電腦來為我們處理資料時,有可能是系統自動接收到一個訊號,來當作輸入資料,但是系統至少會輸出一項讓使用者參考的有用資訊。 2017/3/21

二、描述演算法有三種方法 (一)文字敘述 【定義】演算法可用文字來加以描述,但是會比較不精確,因此一般較 不常用。 【題目】 請利用「文字敘述」來描述使用者登入帳號與密碼時,系統檢查的過程。 【解答】 步驟一:輸入使用者帳號與密碼 步驟二:判斷帳號與密碼是否正確 步驟三:如果正確時,則可以登入系統 否則,就無法登入!

(二)流程圖(Flowchart) 【定義】利用圖形方式來表達欲解決問題的步驟。 【題目】 請利用「流程圖」來描述使用者登入帳號與密碼時,系統檢查的過程。 【解答】 說明:流程圖可以協助程式設計者設計程式,可增加程式的可讀性。

(三)虛擬碼(Pseudo Code) 【定義】兼具文字描述及流程圖的優點,其方式是用文字摻雜程式語言, 來描述解題步驟與方法。 【題目】 請利用「虛擬碼」敘述使用者登入帳號與密碼時,系統檢查的過程。 【解答】 (1)Input: UserName, Password (2)IF (UserName And Password) ALL True Output: You Can Pass! else Output: You Can not Pass! 說明:在資料結構中,一般都是利用「虛擬碼」來表示演算法。

延伸學習<觀念> 一、流程圖(Flowchart) 【定義】利用圖形方式來表達欲解決問題的步驟。 【優點】1.它可協助程式設計者設計更周詳的程式 2.可增加程式的可讀性 3.對於初學者而言可幫助奠定良好的程式設計基礎 【作法】分析那些資料是要「輸入」,經過「處理」之後,要「輸出」 那些結果。 【繪製原則】 1.流程圖必須使用標準符號,便於閱讀和分析。 2.流程圖中的文字力求簡潔、扼要,而且明確可行。 3.繪製方向應由上而下,由左至右。 4.流程線條避免太長或交叉,可多用連接符號。 在介紹完描述演算法有三種方法之後,接下來,我們再針對流程圖,作更詳細說明與介紹 ,亦即延伸學習。 接下來我們來介紹流程圖的重要觀念

延伸學習<練習> 一、流程圖(Flowchart)<續> 【舉例】請繪出使用者登入「帳號」與「密碼」時,系統檢查的流程圖。 提示: 步驟1:輸入帳號與密碼 <輸入> 步驟2:檢查是否正確 <處理> 步驟3.1:正確時,則顯示Pass。 <輸出> 步驟3.2:不正確時,則顯示NoPass。 <輸出> 1.流程圖必須使用標準符號,便於閱讀和分析。 2.流程圖中的文字力求簡潔、扼要,而且明確可行。 3.繪製方向應由上而下,由左至右。 4.流程線條避免太長或交叉,可多用連接符號。

延伸學習<比較> 二、虛擬碼(Pseudo Code)【比較「流程圖」與「虛擬碼」】 【題目】比較1+2+3+…+10的「流程圖」與「虛擬碼」。 (1)設Count=1,Total=0; (2)Total=Total+Count; (3)Count=Count+1; (4)若Count <=10 則回步驟(2) (5)印出Total

1-1.6 程式設計概念 我們要開始程式設計時,一定要進行下面五個步驟: 步驟1. 分析所要解決的問題(需求) 說明: 1-1.6 程式設計概念 我們要開始程式設計時,一定要進行下面五個步驟: 步驟1. 分析所要解決的問題(需求) 說明: (1)首先要瞭解問題的需求及條件。 (2)確定要輸入那些資料。 (3)確定要輸出那些資訊報表。

1-1.6 程式設計概念(續) 步驟2. 設計解題的步驟(演算法) 說明: 撰寫演算法可以利用(1)文字敘述(2)流程圖(3)虛擬碼來表示 1-1.6 程式設計概念(續) 步驟2. 設計解題的步驟(演算法) 說明: 撰寫演算法可以利用(1)文字敘述(2)流程圖(3)虛擬碼來表示 解決問題的步驟。

1-1.6 程式設計概念(續) 步驟3. 編寫程式 (程式碼) 說明: 選擇適當的程式語言,將演算法的步驟寫成一個完整的程式。

1-1.6 程式設計概念(續) 步驟4. 上機測試、偵測錯誤 (偵錯) 說明: 1-1.6 程式設計概念(續) 步驟4. 上機測試、偵測錯誤 (偵錯) 說明: 一個「有用性」及「易用性」的程式,必須要經過多次的測試,若有錯誤,立即更正,直到正確無誤為止。

1-1.6 程式設計概念(續) 步驟5. 編寫程式說明書(可執行) 說明: 1-1.6 程式設計概念(續) 步驟5. 編寫程式說明書(可執行) 說明: 一個功能強而完整的程式,使用者就會願意使用,因此必須有使用說明書,以便於別人使用或日後的維護。

【實例】計算國文與英文的平均成績,並依照平均成績來求顯示 「及格」與「不及格」。 【解答】 1.分析及定義問題:兩個等級分別如下: (1)及格:60(含)以上。 (2)不及格:60以下。 2.畫出整合問題的流程圖或撰寫問題的演算法。如下圖所示。

題目:計算平均成績,並判斷是否及格 3.撰寫及建立程式模組 01 02 03 04 05 06 07 08 09 10 11 Private Sub Button1_Click(……) Handles Button1.Click Dim C_Score, E_Score, Average As Integer C_Score = 60 E_Score = 70 Average = (C_Score + E_Score) / 2 If Average >= 60 Then MsgBox("及格") Else MsgBox("不及格") End If End Sub

4.對每一個程式模組進行測試及除錯,直到沒有錯誤為止 當使用者輸入國文為60分,英文為61分時,是否可以計算出平均成績為60.5,如果沒有則必須要進行除錯,亦即要將Average的資料型態改為float(浮點數)

1-1.7 為什麼要撰寫程式? 主要的目的:快速解決「複雜的問題」。 例如1:小華問:小明請幫我計算1加到10的總和。 1-1.7 為什麼要撰寫程式? 主要的目的:快速解決「複雜的問題」。 例如1:小華問:小明請幫我計算1加到10的總和。 小明說:1+2+3+…+10=55大家都會,太簡單了!

1-1.7 為什麼要撰寫程式?(續) 例如2: 小華又問:小明請幫我計算1加到50000時。 1-1.7 為什麼要撰寫程式?(續) 例如2: 小華又問:小明請幫我計算1加到50000時。 小明則說:太困難了,我無法馬上計算出結果。但是我可以利用 「撰寫程式」來處理。 說明:因此,我們可以非常清楚的知道,程式語言幫忙人類 「解決複雜的問題」。

1-1.8 一個好程式需要滿足條件 一、正確性(Correctness) 二、效率性(Performance) 三、可維護性(Maintainable) 1.正確性是一個好程式最基本的要求。如果我們所撰寫的程式不正確,那功能再強、速度再快,都沒有用。 因此,正確性是一個好程式最重要的條件。 2.再滿足了正確性的條件之後,接下來我們就必須要求我們撰寫程式的執行效率,因為愈有效率的程式,背 面所代表著是一套有效率的演算法。 3.除了滿足正確性與效率性之外,我們也必須進一步考慮到程式的維護性。因為一套有用及易用的程式, 可能必須要經常維護,如此才能滿足使用的需求。

一、正確性(Correctness) 既然演算法是解決問題的方法,所以正確性是一個好程式最基本的要求。 例如:設計一個判斷奇偶數的程式 說明:上面的程式處理過程中,由於程式不正確,所以產生錯誤的結果。

二、效率性(Performance) 指程式真正執行時所必須要花費的時間。一般評估執行時間是依程式碼所被執行的總次數來計算。亦即所謂的「頻率次數)」當頻率次數愈高時,代表所需的執行時間愈長。 例如:計算下列程式中變數Count被執行的次數為何?

三、可維護性(Maintainable) 一個好的程式,不只需要有效率地被正確地執行之外,也必須要考慮程 式的可讀性、及未來修改和擴充性,這屬於程式設計方法和風格的問題, 例如:使用模組化來設計程式和加上完整程式註解的說明。

三、可維護性(Maintainable)(續) (一) 縮排 【使用時機】在使用巢狀結構時,必須特別需要。 使用「縮排」技巧 未使用「縮排」技巧

三、可維護性(Maintainable)(續) (二) 註解 【定義】它是一種「非執行的敘述」亦即是給人看的,而電腦不會去執 行它。此功能就是用來說明某一段程式碼的作用與目的。 1.使用單引號「 ' 」的使用時機:可以寫在程式碼的後面或單獨一行註解。 2.使用REM的使用時機:只能寫成單獨一行註解。 REM ===設計一個求圓面積與圓周長的程式=== Const PI As Single = 3.14 '宣告「圓周率」為.14的常數

三、可維護性(Maintainable)(續) (三) 變數及函數名稱的命名 好的變數宣告命名 說明:爾後維護時,看到變數名稱就可以得知變數的意義。 不好的變數宣告命名 說明:爾後維護時,無法馬上得知A與B變數所代表的意思。

1-2 .NET Framework簡介 不管是哪一種程式語言,最終都要編譯成中介語言(MSIL),所有程式及程式元件之間的溝通介面都是以中介語言(MSIL)為基準。 VC#程式 VB程式 其他程式語言 .NET編譯 MSIL(中介語言) 以前我們使用VB來呼叫Windows API很不方便,在 .NET Framework底下,完全沒有這方面的問題,因為不管是哪一種程式語言,最終都要編譯成中介語言(MSIL),所有程式及程式元件之間的溝通介面都是以中介語言(MSIL)為基準 VC# 應用程式 VB 應用程式 其他程式語言設計的應用程式 程式語言可跨平台傳遞資料 2017/3/21

1-2.1 .NET Framework 的架構 NET Framework大致可分為三部分,分別為共通語言規範(Common Language Specification)、共通語言執行環境(Common Language Runtime)及基礎類別庫(Base Class Library)。如下圖所示。 2017/3/21

1-2.2共通語言規範 (Common Language Specification) 在.NET Framework平台中,它大約可以相容25種不同的程式語言,例如:VB, C#,J#,C++等。而程式設計師不需要學會每一種程式語言,只要學會其中一種語言即可,並遵守共通語言規範的情況下,每一種程式語言都可以相互轉換為與平台無關的中介語言(MSIL)。其最主要的目的就是不同的程式語言可以相互使用所須要的資源,而不會有轉換上的問題。 2017/3/21

1-2.3 共通語言執行環境 (Common Language Runtime) 「Runtime」指的是電腦在編譯某種程式語言的執行時期。而只要以程式語言撰寫出來的程式,就必須要Runtime來執行,而且不同的程式語言所使用的Runtime也不相同。因為Runtime提供了程式語言所必須配備的函式與物件,而各種語言的函式與物件都不盡相同,所以各種語言都有著自己的Runtime,無法共用。 但是.NET Framework以共通語言執行環境(CLR)來解決了這個共用問題,IL(Intermediate Language)這個中介語言(介於程式碼與機器碼之間的語言。 2017/3/21

1-2.4 基礎類別庫(Base Class Library) 不同的程式語言有自己的「Runtime」,而物件類別資料庫也是一樣。各種語言所用的物件類別標準不一,「基礎類別庫」提供了所有.NET程式語言的應用物件,將各種語言的物件類別作整合,建立一個所有語言都可共用的物件類別資料庫,例如繪圖、多媒體、郵件管理等物件類別。 2017/3/21

1-3 VB6.0與VB2010 1.抽象化(Abstraction) 2.封裝性(Encapsulation) 3.繼承性(Inheritance) 4.多形性(Polymorphism) 但是,VB6.0都沒有具備以上的這些特性。而VB2010則都則備了。 2017/3/21

1-4 物件導向設計 使用結構化程式設計,的確簡化了我們撰寫程式的工作,也提高了程式的可維護性。但是,結構化程式設計在開發大型專案時,專注於功能面(函式)的開發,而往往忽略了功能所要處理的資料。被處理的「資料」與「功能」在結構化的程式設計是分離的關係。在大型專案的開發上,由於要處理的問題,相對的要複雜許多,如果,「資料」與「函式」之間沒有關聯性,很容易發生錯誤,維護起來也很不方便。後來,物件導向程式設計的興起,就是為了解決結構化程式設計所面臨的「資料」與「功能」分離的問題。 2017/3/21

常見的物件導向語言 常見的物件導向語言 程式語言 適用的領域 C#或C++ 適合用來開發各種系統軟體及應用軟體 Java 適合用來開發網際網路的應用程式 Visual Basic 2010 適合用來開發視窗應用程式 2017/3/21

1-5 主控台應用程式 主控台應用程式(Console Application)是物件導向VB中最簡單的一種應用程式,其輸出環境類似DOS,大都是以純文字介面來顯示,因為它是以命令列輸入方式為主。 【優點】程式較為簡潔並且執行速度較快 【缺點】無法提供有親和力的使用者介面。 因此,筆者不建議一般的初學者使用此方法來撰寫程式。 2017/3/21

方法及步驟: 主控台應用程式就是利用模組(Module)來完成,其原理為由一個Main( )的主程序,其中包含所關相關的程式碼。而我們可以利用Console物件所提供的方法和屬性來處理,而在模式中也可以包含其他的副程式或函數,並且不需要由屬性視窗去設定任何的屬性資料。 安裝好Visual Basic 2010之後,你就可以開始撰寫VB2010程式了,其步驟如下所示: 步驟一:在您的桌面選取「開始」--->「程式集」--->「Microsoft Visual Basic 2010 Express 版」即可進入了。如果是第一 次使用時,則必須要「建立一個專案」,其步驟如下所示: 2017/3/21

步驟一:在您的桌面選取「開始」--->「程式集」--->「Microsoft Visual Basic 2010 Express 版」即可進入了。如果是第一 次使用時,則必須要「新增專案」,其步驟如下所示:  2017/3/21

步驟二:在「新增專案」對話方塊中,點選「主控台應用程式」,再按「確 定」。    2017/3/21

在按「確定」鈕之後,即可完成新專案的建立,此時VB2010就會自動建立一個包含程式基本架構的Module.vb檔案。如下圖所示: 2017/3/21

Console.WriteLine("我的第一個主控台程式") Console.WriteLine() '換行 步驟三:撰寫程式 題目:第一個主控台程式 程式檔案名稱 ch1-5.sln 01 02 03 04 05 06 07 08 Module Module1 Sub Main() Console.WriteLine("我的第一個主控台程式") Console.WriteLine() '換行 Console.WriteLine("設計者:李春雄 博士") Console.Read() End Sub End Module 步驟四:執行結果 2017/3/21

1-6 Visual BASIC 語言操作環境 雖然我們也可以利用主控台(Console)應用程式下來設計Windows表單的輸出入介面,但這對於初學者而言,是一件較不易學習之事。因此,若能在「Windows 應用程式模式」下,使用Visual Basic的整合開發環境(IDE),利用工具箱所提供的工具,如此,可以讓設計者不需要撰寫任何的程式碼便很輕易地製作出所需要的輸出入介面,如按鈕、文字方塊…等控制項,因此,程式設計者就只要將時間專注於了解使用者的需求及撰寫程式流程的核心,不但節省設計輸出入畫面的時間而且很容易維護。 2017/3/21

一、程序導向(Procedure Oriented) 先寫「程式碼」之後,才能呈現「畫面」,並且只能呈現「文字化」的畫面。 缺點:沒有「視覺化」的操作介面。 請輸入半徑:3 面積:28.26 周長:18.84 功能鍵說明 R:代表計算 C:取消 E:結束 2017/3/21

二、物件導向(Object Oriented) Visual Basic將傳統的Basic從Dos移轉到Windows作業系統下執行,在編寫程式時,必須先建立新的表單(Form),然後才能開始建立「物件」(如Button(按扭)、Label(標籤),TextBox(文字框)……等),緊接著就可以設定物件的「屬性」。最後,撰寫程式相關的程式碼。如下圖所示: 因為Visual Basic是一種「視覺化」的開發工具,也就是說,VB程式所設計出來的畫面,使用者只要利用滑鼠就可以輕鬆的操作所需要的功能。亦即先設計「畫面」,再撰寫「程式碼」,並且是以「圖形化」的呈現方式。 TextBox物件Button物件 Button物件 Label物件

1-6.1 如何啟動VB2010 安裝好Visual Basic 2010之後,你就可以開始撰寫VB2010程式了,其步驟如下所示: 步驟一:在您的桌面選取「開始」--->「程式集」--->「Microsoft Visual Basic 2010 Express 版」即可進入了。如果是第 一次使用時,則必須要「新增專案」,其步驟如下所示:  2017/3/21

步驟二:在「新增專案」對話方塊中,選按「Windows應用程式」 並輸入檔案名稱之後,再按「確定」。如下圖所示:    2017/3/21

Visual Basic 2010工作環境,分別有六大項視窗工作環境, 如下圖所示: 步驟三:認識VB2010整合環境畫面 Visual Basic 2010工作環境,分別有六大項視窗工作環境, 如下圖所示: 功能表列 一般工具列 工具箱 方案總管 表單視窗 屬性視窗 2017/3/21

例如:要使用「即時運算視窗」時,則選擇「偵錯/視窗/即時運算」 選項。 基本上,完整VB2010視窗如上圖所示,但有時候會缺少了某些視窗,此時你可以按「檢視」功能表列,再選取所要顯示的視窗,即可顯示之(例如:「檢視/工具箱」即可顯示工具箱)。如果需要調整視窗大小時,可以將游標至於視窗邊緣,當出現雙箭頭時即可拖曳來調整。其完整的說明如下所示: (一) 功能表列 你可以在功能表列中選擇所需要的功能。 例如:要使用「即時運算視窗」時,則選擇「偵錯/視窗/即時運算」 選項。 2017/3/21

在VB中的狀態可分為:設計、中斷及執行模式三種,如下圖所示: (二) 一般工具列 除了你可以使用功能表列來選擇你需所的功能之外,VB2010也提供一般使用者常用的工具放在工具列中,讓使用者快速點選。例如:當我們撰寫完成程式之後,我們可以直接在「一般工具列」中按「 」來執行程式。而不需要在功能表列點選「偵錯/開始偵錯」等程序。 在VB中的狀態可分為:設計、中斷及執行模式三種,如下圖所示: 2017/3/21

在工具箱中放置了許多群組的控制項,例如: 1.所有Windows Form群組、 2.通用控制項群組、 3.容器群組、 4.功能表 (三) 工具箱視窗(Tool Box) 在工具箱中放置了許多群組的控制項,例如: 1.所有Windows Form群組、 2.通用控制項群組、 3.容器群組、 4.功能表 5.工具列群組 6.資料群組 7.元件群組 8.列印群組 9.對話方塊群組 10.一般群組等。 2017/3/21

我們最常使用的群組為「通用控制項群組」,其基本元件有標籤元件、文字方塊元件及按鈕元件,如下圖所示。這些基本元件一般稱之為「控制元件」或「控制項(Control)」,每個控制項都是一個完整的物件,具有屬性、事件和方法,我們只要學習如何使用它,就可以設計出專業的視窗應用程式了。 常用的控制項如下所示: 滑鼠指標 Button(命令鈕) CheckBox(核取方塊) CheckedListBox(核取清單方塊) ComboBox(下拉式清單方塊) Label (標籤 ) LinkLabel超連結標籤 ListBox(清單方塊) Masked TextBox遮罩文字方塊設計 Picture Box(圖形) RadioButton單選鈕物件 RichTextBox豐富文字方塊 TextBox(文字框) ToolTip(工具列) WebBrowser(瀏覽器) 2017/3/21

由於每一個程式都是由「表單」與「程式」所組成,因此,設計者在撰寫程式之前,必須先要在「設計」模式下,安排使用者介面(表單設計)。 (四) 表單視窗 由於每一個程式都是由「表單」與「程式」所組成,因此,設計者在撰寫程式之前,必須先要在「設計」模式下,安排使用者介面(表單設計)。 2017/3/21

(五) 方案總管 在VB2010中,常用到的檔案有「專案檔(*.vbproj)」、「表單檔(*.vb)」,在「新增專案」之後,通常系統會自動幫我們新增一個專案檔及表單檔,且顯示於「方案總管視窗」中,如下圖所示: 2017/3/21

在VB2010中的屬性視窗包括(屬性與事件),各有兩種模式: 依「字母順序」排序 依「分類」排序 (六) 屬性視窗 在VB2010中的屬性視窗包括(屬性與事件),各有兩種模式: 依「字母順序」排序 依「分類」排序 2017/3/21

1-6.2 撰寫第一個VB2010程式 每一個VB2010程式是由兩個部份組合而成,分別為「表單」及「程式」。因此,在設計一個VB2010程式,必須要完成以下四大步驟: 表單設計 將從「工具箱」加入物件到表單中 設定物件的屬性之屬性值 程式設計 撰寫程式碼 測試執行結果 2017/3/21

【實例】撰寫VB2010程式四大步驟實作。 將從「工具箱」加入物件到表單中 2017/3/21

設定物件的屬性之屬性值 2017/3/21

撰寫程式碼 Private Sub Button1_Click(……) Handles Button1.Click Label1.Text = Now() End Sub 2017/3/21

測試執行結果 2017/3/21

1-7. 程式碼片斷管理員 在VB2010中內建了非常多的程式碼片段,稱為IntelliSense程式碼片段。而每一個程式碼片段都會執行完整的程式設計工作,設計者可以善加利用這些IntelliSense程式碼片段,如此,可以加快程式設計的開發時程。 2017/3/21

加入程式碼片段的方法: 在程式碼視窗中加入程式碼片段的位置,按右鍵,此時會出現快速功能表,請選擇你所須的功能,一層一層的往下找到你所須的程式碼片段,最後快按二下即可插入此程式碼片段了。 [實例]利用程式碼片段的方式來設計產生亂數值。 2017/3/21

步驟一:在欲加入位置按右鍵,此時會出現快速功能表,再點選 「插入程式碼片段」選項,如下圖所示: 步驟一:在欲加入位置按右鍵,此時會出現快速功能表,再點選 「插入程式碼片段」選項,如下圖所示: 2017/3/21

步驟二:選擇所須的功能

步驟三:插入程式碼片段 Private Sub Button1_Click(……) Handles Button1.Click Dim generator As New Random Dim randomValue As Integer randomValue = generator.Next(10, 100) End Sub

步驟四:測試執行結果 題目:利用程式碼片段來產生亂數值 程式檔案名稱 ch1-7.sln 01 02 03 04 05 06 07 08 Public Class Form1 Private Sub Button1_Click(……) Handles Button1.Click Dim generator As New Random Dim randomValue As Integer randomValue = generator.Next(10, 100) MsgBox(randomValue) End Sub End Class