課程名稱:程式設計I
指導老師:蔡佳麟
學生:黃煥然
學號: 40207039
組別:7
週次:第01-05週 [回首頁]
Part I指定作業:
作業1:試說明JAVA語言發展的歷史?
答案1:參考作業1
在流行幾年之後,Java在瀏覽器中的地位被逐步侵蝕。它在簡單互動性動畫方面的用途已經完全被Adobe公司的Flash排擠,2005年Java傾向只被用於雅虎遊戲那樣的更為複雜的應用程式。Java同時遭受到來自微軟的反對,他們決定在新版本的Internet
Explorer和Windows中不再附帶Java平台。
與此相反。在全球資訊網的伺服器端和手持裝置上,Java變得更加流行。很多網站在後端使用JSP和其他的Java技術。
在桌面系統上,獨立的Java程式還是相對少見,這是因為Java平台的執行開銷較大,而許多人的電腦上沒有安裝Java,由於網路頻寬在以前較小,下載Java曾經是個耗時的事情。但是隨著電腦計算能力、網路頻寬在10年中取得了很大的進步,同時虛擬機器和編譯器的品質得到了提高,許多應用程式得到了廣泛的使用。
作業2:JAVA有那些基本資料型別?
答案2:參考作業2
關鍵字 名稱
佔用記憶體
值域
byte 位元組
8
bits -128~127
short 短整數
16 bits -32768~32767
int 整數
32 bits -2147483648~2147483647
long 長整數
64 bits -(2的63次方)~2的63次方-1
float 單精度浮點數 32 bits
1.4E-45~3.4E+38 -1.4E-45~-3.4E+38
double 倍精度浮點數 64
bits 4.9E-324~1.79E+308 -4.9E-324~-1.79E+308
char 字元
16 bits 0~65535 \'u0000'~\'uFFFF'
boolean 布林值 8
bits true or false
整數類型:byte、short、int、long
浮點數類型:float、double
字元類型:char
布林類型:boolean
整數類型就是 1 2 3 4 5 6 7 -1 -2 -3 -4 等等 差別在設定的資料型態所能接受的值域範圍
浮點數就是小數 1.21 1.333 1.4 等等 雙精度自然是比單精度所能接受的小位數更多 需要的bit相對越大
字元類型 由於網路無國界 為了使世界上所有的文字包含進來 產生了萬國碼(Unicode)而在java中 可以使用char來表示字碼
布林值是拿來判斷對(true)或錯(false)的一個較特別的變數 常使用在邏輯敘述的方面
另外在不同平台跟不同語言下 所佔的bit會有所不同
介紹一些設值時 資料型態的問題
1.如果我的程式想設定一個變數為一年 365天
那麼byte雖然可以接受整數 但卻不能設定為
byte a=365;
因為365已經超過byte的值域
-128~127
所以我們應該使用int或short來接受這個數值(byte跟short是比較少使用的整數型別)
2.將八進位跟十六進位轉成十進位
如果我們要設定八進位則在數字前方加一個『0』 如果要設定十六進位在數字前方加『0x』
則
int a =012;
int b =0x1B0C;
輸出a,b為
10
6924
3.設值觀念
首先來看看兩組設值
---------------------
(1)
long a=123;
long b=123L;
----------------------
(2)
long a=123456789123;
long b=123456789123L;
----------------------
編譯結果 第一組可以通過 但是第二組卻出現了問題
我們先看第一組
long a=123;
123由於是整數 所以預設的資料型別為int(浮點數預設為float)
由於long也是整數 而且值域包含住所有的int 所以long可以接收123這個值
而 long b=123L; 這個123L表示我在設定123這個值的時候 我不使用int型態 而是使用Long型態
而 b這個值本來就設定為long自然可以接受long的值
再來看第二組
long a=123456789123;
如上面所說 如果你再設值給變數的時候 沒有指定資料型別 那麼整數他就預設為int
那麼問題就產生了 int的整數值域只到達2147483647 十位數 而123456789123
有十二位數
所以在預設int的型態下 他接收不了這個值 所以出錯了
那麼我們要修正這個問題 看看 long b=123456789123L
我們不使用預設的int來接收123456789123這個值 而在後面加個L來指定型態long來接收這個值
再將123456789123這個值 放到long型態的b裡面 問題就解決了
4.浮點數型別可以接受所有整數型態 不可逆向
在書中 float 32bit 接收 long 64bit 並沒有說明 為什麼32bit可以接受64bit 但是應該跟浮點數儲存在記憶體的方式有關
當設定一個值 float a =1.2; 會出現錯誤 因為1.2預設的資料型別為double
所以我們必須在設值給a這個float型別時候 要把1.2設定為float
應改為 float a=1.2f; a才能接收1.2這個值
作業3:常數與變數有何不同?寫一程式說明之。
答案3:參考作業3
變數是一個「容器」,可以在程式進行中把不同的數值放進去,而常數是一個固定的值,不能被改變。
EX.
#include <stdio.h>
int
main(void)
{
int x;
printf("x=%d\n",x);
return 0;
}
參考來源:
作業1:http://zh.wikipedia.org/wiki/Java
作業2:http://blog.xuite.net/ernestyen/blog/14573040
作業3:http://phys.thu.edu.tw/~ctshih/teach/c_prog/var.html
Part II 01-05週學習心得彙整:
第1週
Ex3.檔案傳輸練習(作用視窗擷取組合建Alt+Scr)
第2週
第3週
cls:清除畫面
上下鍵:取得暫存的指令
dir:顯示檔案
Ex2.編譯與執行
第4週
Ex1.上週複習
path =
C:\Program Files (x86)\Java\jdk1.7.0_45\bin
java s40207039.java
java -classpath . s40207039_pg1_04_ex1
下載JDK
第5週
/*
課程名稱:程式設計I
課程代號:471305
授課老師:蔡佳麟
組別:第7組
組員:李宛珊,黃詠琪,陸弘聞,王威,林于茹,黃煥然
學生:黃煥然
學號:40107039
程式編號:05_ex1
程式說明: 顯示姓名與學號
*/
class s40207039 {
public static void
main(String[] args) {
System.out.println("學生姓名:黃煥然");
System.out.println("學號:40107039");
}
}