程序設(shè)計(jì)概述_第1頁
程序設(shè)計(jì)概述_第2頁
程序設(shè)計(jì)概述_第3頁
程序設(shè)計(jì)概述_第4頁
程序設(shè)計(jì)概述_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Java 程序設(shè)計(jì)概述n 計(jì)算機(jī)與程序設(shè)計(jì)n 程序設(shè)計(jì)語言n Java 語言介紹n 第一個(gè)Java程序(編輯、編譯與運(yùn)行)計(jì)算機(jī)與程序設(shè)計(jì)只有學(xué)會編程,才能真正理解計(jì)算機(jī) 現(xiàn)實(shí)世界其實(shí)是由一個(gè)名叫“母體”的計(jì)算機(jī)人工智能系統(tǒng)控制,人們就像他們飼養(yǎng)的動(dòng)物,沒有自由和思想,到底哪里才是真實(shí)的世界?,這是黑客的帝國,程序和代碼程序和代碼歡迎大家的到來。 黑客帝國這是一個(gè)未來的世界,天下已經(jīng)由機(jī)器人來操控。機(jī)器人想完全占有這個(gè)世界,把人類趕盡殺絕,然而,于是,終結(jié)者機(jī)器人T-800(阿諾施瓦辛格 Arnold Schwarzenegger飾)受命 終結(jié)者/未來戰(zhàn)士世界上有兩種人,一種是懂二進(jìn)制的,一種

2、不懂。 中國網(wǎng)友計(jì)算機(jī)模型計(jì)算機(jī)模型:馮諾依曼結(jié)構(gòu)計(jì)算機(jī)模型:現(xiàn)代版馮諾依曼“計(jì)算機(jī)之父計(jì)算機(jī)之父”,最先提出“存儲程序存儲程序”與“二進(jìn)制二進(jìn)制”的概念n存儲程序存儲程序是將根據(jù)特定問題編寫的程序存放在計(jì)算機(jī)存儲器中,然后按存儲器中的存儲程序的首地址執(zhí)行程序的第一條指令,以后就按照該程序的規(guī)定順序執(zhí)行其他指令,直至程序結(jié)束執(zhí)行。 還是“博弈論之父”馮諾伊曼結(jié)構(gòu)的設(shè)計(jì)概念 n馮馮諾伊曼結(jié)構(gòu)諾伊曼結(jié)構(gòu)與儲存程式型電腦是互相通用的名詞,其用法將于下述。而哈佛結(jié)構(gòu)哈佛結(jié)構(gòu)則是一種將程式資料與普通資料分開儲存的設(shè)計(jì)概念。n儲存程式型概念也可讓程式執(zhí)行時(shí)自我修改程式的運(yùn)算內(nèi)容。本概念的設(shè)計(jì)動(dòng)機(jī)之一就是可

3、讓程式自行增加內(nèi)容或改變程式指令的內(nèi)存位置。存儲器n程序程序計(jì)算機(jī)程序或者軟件程序(通常簡稱程序)是指一組指示計(jì)算機(jī)每一步動(dòng)作的指令,通常用某種程序設(shè)計(jì)語言編寫,運(yùn)行于某種目標(biāo)體系結(jié)構(gòu)上。打個(gè)比方,一個(gè)程序就像一個(gè)用漢語(程序設(shè)計(jì)語言)寫下的紅燒肉菜譜(程序),用于指導(dǎo)懂漢語的人(體系結(jié)構(gòu))來做這個(gè)菜。 通常,計(jì)算機(jī)程序要經(jīng)過編譯和鏈接而成為一種人們不易理解而計(jì)算機(jī)理解的格式,然后運(yùn)行。未經(jīng)編譯就可運(yùn)行的程序通常稱之為腳本程序(script)。n數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)可以被定義為被程序處理的信息。當(dāng)我們考慮到整個(gè)計(jì)算機(jī)系統(tǒng)時(shí),有時(shí)程序和數(shù)據(jù)的區(qū)別就不是那么明顯了。中央處理器有時(shí)有一組微指令控制硬件,數(shù)據(jù)

4、可以是一個(gè)有待執(zhí)行的程序(參見腳本編程語言),程序可以編寫成去編寫其它的程序;所有這些例子都使程序和數(shù)據(jù)的比較成為一種視角的選擇。有人甚至斷言程序和數(shù)據(jù)沒有區(qū)別。 程序數(shù)據(jù)存儲器程序=算法+數(shù)據(jù)結(jié)構(gòu)n算法算法指解決某個(gè)問題的嚴(yán)格方法,通常還需輔以某種程度上的運(yùn)行性能分析。算法可以是純理論的,也可以由一個(gè)計(jì)算機(jī)程序?qū)崿F(xiàn)。理論算法通常根據(jù)復(fù)雜性分為不同類別;實(shí)現(xiàn)的算法通常經(jīng)過頗析(Profiling )以測試其性能。請注意雖然一個(gè)算法在理論上有效可行,但是一個(gè)糟糕的實(shí)現(xiàn)仍會浪費(fèi)寶貴的計(jì)算機(jī)資源。(更詳細(xì)信息,參見算法信息論,Algorithmic Information Theory ) 。n數(shù)據(jù)

5、結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來更高的運(yùn)行或者存儲效率的算法。數(shù)據(jù)結(jié)構(gòu)往往同高效的檢索算法和索引技術(shù)有關(guān)。 編程過程n問題建模n算法設(shè)計(jì)n編寫代碼n編譯調(diào)試n運(yùn)行Problem設(shè)有一頭小母牛,從出生第四年起每年生一頭小母牛,按此規(guī)律,第N年時(shí)有幾頭母牛? Input本題有多組數(shù)據(jù)。每組數(shù)據(jù)只有一個(gè)整數(shù)N,獨(dú)占一行。(1N50) Output對每組數(shù)據(jù),輸出一個(gè)整數(shù)(獨(dú)占一行)表示第N年時(shí)母牛的數(shù)量 Sample InputSample Output11425320872 程序設(shè)計(jì)語言n機(jī)

6、器語言機(jī)器語言 指一臺計(jì)算機(jī)全部的指令集合,一條機(jī)器語言成為一條二進(jìn)制指令。指令是不可分割的最小功能單元。而且,由于每臺計(jì)算機(jī)的指令系統(tǒng)往往各不相同。n匯編語言匯編語言 用一些簡潔的英文字母、符號串來替代一個(gè)特定的指令的二進(jìn)制串,比如,用ADD代表加法。負(fù)責(zé)將這些符號翻譯成二進(jìn)制機(jī)器指令的程序被稱為匯編器匯編器。n高級語言高級語言 接近于數(shù)學(xué)語言或人的自然語言(如if,+),同時(shí)又不依賴于計(jì)算機(jī)硬件,編出的程序能在所有機(jī)器上通用。負(fù)責(zé)將高級語言源代碼翻譯成匯編語言或機(jī)器指令的程序叫編譯器編譯器。最早流行的高級語言是C語言。高級語言分類1.命令式語言命令式語言。這種語言的語義基礎(chǔ)是模擬“數(shù)據(jù)存儲

7、/數(shù)據(jù)操作”的圖靈機(jī)可計(jì)算模型,十分符合現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)的自然實(shí)現(xiàn)方式。其中產(chǎn)生操作的主要途徑是依賴語句或命令產(chǎn)生的副作用?,F(xiàn)代流行的大多數(shù)語言都是這一類型,比如 Fortran、Pascal、Cobol、C、C+、Basic、Ada、Java、C# 等,各種腳本語言也被看作是此種類型。2.函數(shù)式語言函數(shù)式語言。這種語言的語義基礎(chǔ)是基于數(shù)學(xué)函數(shù)概念的值映射的算子可計(jì)算模型。這種語言非常適合于進(jìn)行人工智能等工作的計(jì)算。典型的函數(shù)式語言如 Lisp、Haskell、ML、Scheme 等。3.邏輯式語言邏輯式語言。這種語言的語義基礎(chǔ)是基于一組已知規(guī)則的形式邏輯系統(tǒng)。這種語言主要用在專家系統(tǒng)的實(shí)現(xiàn)

8、中。最著名的邏輯式語言是 Prolog。4.面向?qū)ο笳Z言面向?qū)ο笳Z言?,F(xiàn)代語言中的大多數(shù)都提供面向?qū)ο蟮闹С郑行┱Z言是直接建立在面向?qū)ο蠡灸P蜕系?,語言的語法形式的語義就是基本對象操作。主要的純面向?qū)ο笳Z言是 Smalltalk。高級語言的處理過程C 語言家族Java 特點(diǎn):跨平臺nJVM - Java虛擬機(jī)Java Virtual Machine是一個(gè)虛構(gòu)出來的計(jì)算機(jī),通過在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來實(shí)現(xiàn)的。Java虛擬機(jī)有自己完善的硬體架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。JVM屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使得Java程序只需生成在Java虛擬機(jī)上

9、運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運(yùn)行。 Java 平臺介紹nJava SE(Java Platform,Standard Edition)。Java SE 以前稱為 J2SE。它允許開發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的 Java 應(yīng)用程序。Java SE 包含了支持 Java Web 服務(wù)開發(fā)的類,并為 Java Platform,Enterprise Edition(Java EE)提供基礎(chǔ)。 nJava EE(Java Platform,Enterprise Edition)。這個(gè)版本以前稱為 J2EE。企業(yè)版本幫助開發(fā)和部署可移植、健壯、可伸縮且安

10、全的服務(wù)器端 Java 應(yīng)用程序。Java EE 是在 Java SE 的基礎(chǔ)上構(gòu)建的,它提供 Web 服務(wù)、組件模型、管理和通信 API,可以用來實(shí)現(xiàn)企業(yè)級的面向服務(wù)體系結(jié)構(gòu)(service-oriented architecture,SOA)和 Web 2.0 應(yīng)用程序。 nJava ME(Java Platform,Micro Edition)。這個(gè)版本以前稱為 J2ME。Java ME 為在移動(dòng)設(shè)備和嵌入式設(shè)備(比如手機(jī)、PDA、電視機(jī)頂盒和打印機(jī))上運(yùn)行的應(yīng)用程序提供一個(gè)健壯且靈活的環(huán)境。Java ME 包括靈活的用戶界面、健壯的安全模型、許多內(nèi)置的網(wǎng)絡(luò)協(xié)議以及對可以動(dòng)態(tài)下載的連網(wǎng)和

11、離線應(yīng)用程序的豐富支持。基于 Java ME 規(guī)范的應(yīng)用程序只需編寫一次,就可以用于許多設(shè)備,而且可以利用每個(gè)設(shè)備的本機(jī)功能。 我的第一個(gè)Java程序n編輯(區(qū)分大小寫區(qū)分大小寫)n編譯(命令 javac.exe)n解釋運(yùn)行(命令 java.exe)(JVM)準(zhǔn)備Java開發(fā)環(huán)境JDK, Java Development Kit(內(nèi)置編譯器、解釋/運(yùn)行器、JRE)n下載 Java SE http:/常見錯(cuò)誤錯(cuò)誤原因:1-未安裝JDK,或,2-未正確地將JDK的bin路徑添加到path環(huán)境變量找到安裝后javac.exe 所在的位置設(shè)置path1.“我的電腦”右鍵“屬性”2.高級3.編輯“pat

12、h”系統(tǒng)變量4.將 javac.exe 所在目錄(包含bin)添加于前5.打開一個(gè)新的 cmd 命令行窗口常見命令(運(yùn)行“cmd”進(jìn)入命令窗口)切換到 D 盤cd 進(jìn)入當(dāng)前目錄下的子目錄dir顯示當(dāng)前目錄內(nèi)容javac 編譯源代碼文件java 運(yùn)行字節(jié)碼文件編譯成功生產(chǎn)的字節(jié)碼文件思考作業(yè):養(yǎng)牛問題Problem設(shè)有一頭小母牛,從出生第四年起每年生一頭小母牛,按此規(guī)律,第N年時(shí)有幾頭母牛? Input本題有多組數(shù)據(jù)。每組數(shù)據(jù)只有一個(gè)整數(shù)N,獨(dú)占一行。(1N50) Output對每組數(shù)據(jù),輸出一個(gè)整數(shù)(獨(dú)占一行)表示第N年時(shí)母牛的數(shù)量 Sample InputSample Output11425

13、320872 參考程序一public class Test public static void main(String args) int n=5;int a=1, b=1, temp; int sum=2; for(int i=3; i=n; i+) temp=a+b; a=b; b=temp; sum=sum+temp; System.out.println(sum= + sum); 參考程序二public class Test public static void main(String args) int n = 5; long a1 = 1; long a2 = 1; long a3 = 1 long a4 = 1; int i = 0; long sum = 0; for (i = 4; i n + 1; i+) a4 = a1 + a3; a1 = a2; a2 = a3; a3 = a4; sum

溫馨提示

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

評論

0/150

提交評論