C/C++程式設計範例教本 P657 陳會安.

Slides:



Advertisements
Similar presentations
C/C++ 程序设计 吉林财经大学 管理科学与信息工程学院 李艳东 : Tel :
Advertisements

Introduction to C Programming
授课教师:江星玲 1.
Ch02物件導向程式設計 物件導向系統分析與設計.
C++程序设计 主讲:王兴波教授 1.
TQC+ JAVA全國教師研習會 PLWeb 程式設計練習平台 簡介.
Taiwan President Election
主題五 CPU Learning Lab.
第1章 程式語言與Visual Basic的基礎
第 1 章 使用 APP INVENTOR 2 開發 ANDROID APP
第1章 程式語言與C語言的基礎 1-1 程式語言的基礎 1-2 程式設計技術的演進 1-3 C語言的基礎 1-4 程式是如何執行.
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
程式語言與Java的基礎 1-1 程式語言的基礎 1-2 Java的基礎 1-3 Java語言的開發環境 1-4 建立Java語言的開發環境
臺北市立大學 資訊科學系(含碩士班) 賴阿福
課程名稱:計算機概論 授課老師:李春雄 博士
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
Java簡介.
物件導向程式設計 CH1, CH2.
Chapter 1 Introduction.
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
JDK 安裝教學 (for Win7) Soochow University
第1章 認識Arduino.
手機作業系統介紹.
2-3 基本數位邏輯處理※.
Java程式概觀.
第一章 C語言概論 本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載.
桌面環境簡介及IDE開發工具 Outline (一)什麼是Linux? (二)桌面環境系統簡介 (三)IDE開發工具.
R教學 安裝RStudio 羅琪老師.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
安裝JDK 安裝Eclipse Eclipse 中文化
第1章、系統軟體 作者:陳鍾誠 旗標出版社.
OpenID與WordPress使用說明
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
雲端運算的基石(2) 虛擬化技術實作(XP篇─上)
檔案與磁碟的基本介紹.
第二章 SPSS的使用 2.1 啟動SPSS系統 2.2 結束SPSS系統 2.3 資料分析之相關檔案 2.4 如何使用SPSS軟體.
FTP檔案上傳下載 實務與運用.
Fortran 程式語言 之 編與譯(二) 張基昇.
Instructor:Po-Yu Kuo 教師:郭柏佑
Topic Introduction—RMI
第2章 建立C應用程式 2-1 如何設計C應用程式 2-2 第一個C程式 2-3 Dev-C++整合開發環境的使用 2-4 C程式的寫作風格
第 19 章 XML記憶體執行模式.
人文與科技的結合 人文與科技的結合 Right Fax使用說明.
Name1..hour //加班時數 name2..hour //請假時數
TA教育訓練 微處理機系統實習.
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
緩衝區溢位攻擊 學生:A 羅以豪 教授:梁明章
File Input and Output Chap. 11: 施威銘的書 Chap. 7: K&R.
雲端計算.
MicroSim pspice.
MiRanda Java Interface v1.0的使用方法
黃影雯副教授講授 E_Mail Address:
一、簡介 電腦硬體設計:純硬體電路(hardware)及韌體電 路(firmware)兩種方式。
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
國立台灣大學 關懷弱勢族群電腦課程 By 資訊工程 黃振修
資料表示方法 資料儲存單位.
第1章、系統軟體 作者:陳鍾誠 旗標出版社.
資料擷取與監控應用實務.
C++程序设计 概述 潘荣江 山东大学软件学院.
安裝JDK 配置windows win7 環境變數
程式語言簡介 2019/7/17 明乘中學編製.
What is “this”? 在物件導向程式設計中,類別的定義就是在說明如果創建了“這個物件”的話,它會具有那些屬性與功能,以及這些功能是如何實現的。 而所謂的“這個物件”就以 this 來表示。 當我們在JavaScript與jQuery中寫 script 程式(函式)時,“誰”呼叫這個函式,這個“誰”就是該函式中所謂的.
Programming & Language Telling the computer what to do
開發Java程式語言的工具 JDK.
Chapter 4 Multi-Threads (多執行緒).
C++ 程式語言.
Unix指令4-文字編輯與程式撰寫.
Develop and Build Drives by Visual C++ IDE
JUDGE GIRL 使用介紹 & 常見問題 TAs :
第三章 计算机体系结构.
Presentation transcript:

C/C++程式設計範例教本 P657 陳會安

第1章 程式語言與C語言的基礎 1-1 程式語言的基礎 1-2 程式設計技術的演進 1-3 程式是如何執行 1-4 C語言的基礎

1-1 程式語言的基礎 1-1-1 程式與軟體 1-1-2 程式語言的種類

1-1 程式語言的基礎 「程式語言」(Programming Languages)如同我們溝通的語言一般, 它是人類告訴電腦如何執行的一種語言, 也就是人類與電腦之間溝通的語言,以技 術角度來說,程式語言是一種將執行指令 傳達給電腦的標準通訊技術。

1-1-1 程式與軟體-程式 「程式」(Programs)是使用指定程式語 言所撰寫沒有混淆文字、數字和鍵盤符號 所組成的特殊符號,這些符號組合成指令 和敘述,再進一步編寫成程式碼,程式碼 可以告訴電腦解決指定問題的步驟。

1-1-1 程式與軟體-軟體 「軟體」(Softwares)是一種電腦執行的應用程式或作業系統,通常軟體是一個或多個程式的泛稱,或是一整套應用程式,「應用程式」(Applications)是一種處理指定工作的電腦程式,例如:數學計算分析、文書處理、試算表和程式語言開發工具等。

1-1-2 程式語言的種類-世代

1-1-2 程式語言的種類-低階語言 低階語言(Low Level Language):低階語言是一種偏向電腦容易了解的程式語言,因為屬於電腦看的懂的程式語言,所以執行效率高,例如: 機器語言(Machine Language):使用0和1二進位表示的程式碼,電腦可以直接執行程式,執行效率最高。 組合語言(Assembly Language):使用簡單的符號代表機器語言0和1表示的二進位程式碼,只需使用「組譯程式」(Assembler)將它轉換成機器語言在電腦上執行。

1-1-2 程式語言的種類-高階語言 高階語言(High Level Language):高階語言是一種接近人類語言的程式語言,可以說是一種半英文(Half-english)的程式語言,因為電腦不能馬上看的懂,需要進一步的翻譯,在轉換成機器語言後,因為轉換出來的程式碼通常比直接使用機器語言撰寫的冗長,所以效率較低,但是非常適合使用者學習。

1-1-2 程式語言的種類-高階語言 高階語言有Java、C/C++、BASIC和Borland Delphi等,高階語言需要進行翻譯,將程式碼轉譯成組合語言或機器語言的執行檔案後,才能在電腦上執行,翻譯的方式分為兩種,如下所示: 編譯程式(Compiler)。 檢查程式的錯誤。 將程式翻譯成機器語言的程式檔案。 直譯程式(Interpreter)。

1-2 程式設計技術的演進 1-2-1 非結構化程式設計 1-2-2 程序式與結構化程式設計 1-2-3 模組化程式設計 1-2-4 物件導向程式設計

1-2 程式設計技術的演進-說明 計算機科學的「軟體工程」(Software Engineering)是專注於研究如何建立正確、可執行和良好撰寫風格的程式碼,嘗試使用一些已經驗證過且可行的方法來解決程式的問題。 「程式設計」(Programming)是使用指定的程式語言,例如:C/C++語言,以指定的風格或技術來撰寫程式碼,在此所謂的風格或技術是電腦解決程式問題的程式設計方法。

1-2 程式設計技術的演進-種類 四種「程式設計技術」(Programming Techniques),或稱為「程式設計風格」(Programming Styles),如下所示: 非結構化程式設計(Unstructured Programming)。 程序式程式設計(Procedural Programming)與結構化程式設計(Structured Programming)。 模組化程式設計(Modular Programming)。 物件導向程式設計(Object-Oriented Programming)。

1-2-1 非結構化程式設計-說明 初學程式設計時,例如:早期的BASIC和組合語言都屬於非結構化程式設計。對於C語言來說,主要是指不論幾列的小程式或是數百列程式碼的大程式,程式都只擁有一個main()主程式,而且程式碼是以線性方式依序的執行,如下圖所示:

1-2-1 非結構化程式設計-問題 在開發大型程式時,非結構化程式設計就會產生嚴重的問題,如下所示: 程式碼以線性方式執行,如果需要重複操作,就需要在main()主程式重複相同的程式碼。 如果沒有複製多段程式碼,可以使用C語言的goto指令,可以跳到程式中的任何位置,但是亂跳的結果反而增加程式的複雜度,或產生一些無用的程式碼片斷,稱為「義大利麵程式碼」(Spaghetti Code),程式碼如同義大利麵一般的盤根錯節。 非結構化程式的所有程式碼處理的資料都屬於「全域」(Global)資料。

1-2-2 程序式與結構化程式設計-說明 程序式程式設計是將程式中重複的程式片斷抽出成為「程序」(Procedures,或稱為Subroutine、Routine)或「函數」(Functions),即一段執行特定功能的程式碼。 在主程式的程式碼只是依序呼叫各程序的「程序呼叫」(Procedure Call),即執行各程序。整個程式使用流程控制來連接各程序,即目前程式設計最常使用的結構化程式設計,屬於程序式程式設計的子集。

1-2-2 程序式與結構化程式設計-圖例

1-2-3 模組化程式設計-說明 為了能夠重複使用程序式程式設計所分割建立的程序,我們可以將相同功能的程序或函數結合在一起成為獨立的「模組」(Modules),模組是一個處理指定功能的子程式,如下圖所示:

1-2-3 模組化程式設計-函式庫 每一個模組包含處理的資料和程序函數, 在主程式呼叫模組的函數時,可以將它視 為呼叫「函式庫」(Libraries)中的函數, 在功能上如同一個工具箱(Toolbox),例 如:C語言本身很小,大部分C語言的功能 都是由函式庫提供。 模組可以將實際處理的程式碼和資料隱藏 起來,稱為「資訊隱藏」(Information Hiding)。

1-2-4 物件導向程式設計 物件導向程式設計是一種更符合人性化的程式設計方法,將原來專注於問題的分解,轉換成了解問題本質的資料,也就是「物件」(Object),如下圖所示:

1-3 程式是如何執行-說明

1-3 程式是如何執行-中央處理器(CPU) 電腦的CPU提供實際的運算功能,目前個 人電腦都使用單晶片的「IC」 (Integrated Circuit)。 CPU的主要功能是使用「ALU」 (Arithmetic and Logic Unit)的邏輯電 路進行運算,以便執行機器語言的指令。

1-3 程式是如何執行-記憶體(Memory) 電腦記憶體是「位元」(bits),每8個位元為一個「位元組」(Bytes)為單位所組成的龐大記憶空間,當我們執行程式,作業系統是將儲存在硬碟或軟碟的執行檔載入電腦的主記憶體(Main Memory),這就是CPU執行的機器語言指令,CPU從記憶體依序載入指令和執行。

1-3 程式是如何執行-輸入/輸出裝置(Input/Output Devices) 電腦的輸入/輸出裝置是程式的窗口,可以 讓使用者輸入資料和顯示程式的執行結果, 目前而言,電腦最普遍的輸入裝置是鍵盤 和滑鼠;輸出裝置是螢幕和列表機。

1-4 C語言的基礎-說明 C語言屬於「通用目的」(General- purposes)的程式語言,可以用來建立各 式各樣的應用程式。C語言是結構化程式語 言,其後繼者C++語言是一種物件導向程 式語言。

1-4 C語言的基礎-C語言的歷史 C語言是由Dennis Ritchie在1972年於貝爾實驗室設計的程式語言,它並不能算是一種很新的程式語言,之所以命名為C,這是因為很多C語言的特性是來自其前輩語言B(由Ken Thompson設計),B是一種源於Martin Richards設計的BCPL程式語言。 C語言的主要目的是為了設計UNIX作業系統,在1973年,所有UNIX作業系統的核心程式都已經改為使用C語言撰寫,這也是第一套使用高階語言所建立的作業系統。

1-4 C語言的基礎-C語言的特點 C程式語言的主要特點,如下所示: C語言建立的執行檔案很小,而且執行速度快,事實上,C本身只是一種很小的程式語言,相當多C語言的功能是由C標準函數庫提供。 C語言使用「前置處理器」(Preprocessor)處理相當多的工作。

1-4 C語言的基礎-C語言的版本 C語言最早的標準是K&R,1989年ANSI制定標 準C語言後,稱為ANSI-C,1999年參考C++語 言的語法而作了少許更新,稱為C99,如下所示: K&R C ANSI-C C99

1-5 C應用程式開發環境的建立 1-5-1 C語言的開發環境 1-5-2 下載與安裝Dev-C++整合開發環境

1-5-1 C語言的開發環境-說明 程式語言的「開發環境」(Development Environment)是一組工具程式用來建立、編譯和維護程式語言所建立的應用程式。目前高階程式語言大都擁有整合開發環境,稱為「IDE」(Integrated Development Environment),在同一個應用程式就可以編輯、編譯和執行特定語言的應用程式。

1-5-1 C語言的開發環境-C應用程式的開發步驟 編輯程式碼(Editing):程式碼檔案是一個標準的ASCII文字檔案,可以使用文字編輯工具輸入程式碼,稱為原始碼檔案(Source Files),C語言程式碼檔案的副檔名為.c,C++為.cpp。 編譯程式碼(Compiling):將原始程式碼檔案轉譯成指定CPU機器語言的目標檔(Object Files),其副檔名為.obj或.o。 連結函式庫(Linking):將函式庫和模組的目標檔連結到應用程式,以便建立可執行的執行檔,副檔名為.exe。 執行應用程式(Executing):在建立C應用程式的執行檔.exe後,就可以從作業系統載入C應用程式來執行。

1-5-1 C語言的開發環境-C語言的開發環境1 傳統MS-DOS或UNIX、Linux系統的使用者,或稱為「終端機」(Terminals),其程式執行環境輸入資料和輸出資料都是「命令列模式」(Command-line Interface),即文字模式的鍵盤輸入或單純文字內容的輸出,在此環境開發C語言應用程式需要使用多個工具程式來完成。 目前C語言應用程式開發提供整合開發環境,能夠在同一工具軟體編輯、編譯和除錯高階語言。

1-5-1 C語言的開發環境-C語言的開發環境2 常用的C語言整合開發環境,如下所示: Turbo C/C++、Borland C++:Borland公司在MS-DOS作業系統時代開發的C/C++語言整合開發環境。 Microsoft Visual C++:微軟公司的C++編譯程式,目前版本是Visual C++.NET。 Borland C++ Builder:Borland公司在Windows作業系統下的C++整合開發環境。 Dev-C++:Bloodshed Dev-C++是一套免費C/C++程式的整合開發環境。

1-5-2 下載與安裝Dev-C++整合開發環境-說明 Dev-C++是Bloodshed Software公司的產品,這是一套完整功能的C/C++語言整合開發環境,可以開發Windows和主控台應用程式(Console Applications),所謂主控台應用程式是在MS-DOS或命令提示字元執行的文字模式應用程式。 Dev-C++是使用Borland Delphi設計的應用程式整合開發環境,使用MinGW(Minimalist GNU for Windows,網址:http://www.mingw.org/)的C/C++編譯程式,這是UNIX系統GCC編譯程式的Windows版本。

1-5-2 下載與安裝Dev-C++整合開發環境-下載 Dev-C++是一套免費軟體,Bloodshed軟體公司提供完整的CD系統光碟,可以在該公司網站訂購,我們也可以在下載網頁免費下載Dev-C++,其網址如下所示: http://www.bloodshed.net/dev/devcpp.html

1-5-2 下載與安裝Dev-C++整合開發環境-安裝 Dev-C++整合開發環境可以安裝在Windows98/ME/2000/XP作業系統,其系統的最小需求,如下所示: Microsoft Windows 95/98/ME/NT/2000/XP作業系統。 8MB記憶體。 100 Mhz Intel相容的CPU。 30 MB硬碟空間。 Dev-C++整合開發環境建議的系統需求,如下: Microsoft Windows 2000/XP作業系統。 32MB記憶體。 400 Mhz Intel相容的CPU。 200 MB硬碟空間。