1. 程式人生 > >20172327 2017-2018-2 《程序設計與數據結構》第六周學習總結

20172327 2017-2018-2 《程序設計與數據結構》第六周學習總結

col 方括號 其中 HR 顏色 font 後來 符號 教材

學號 2017-2018-2 《程序設計與數據結構》第X周學習總結

教材學習內容總結

- 數組元素:


1.具有N個值的數組索引為0~(N-1).

- 聲明和使用數組:

1.可以用new運算符實例化數組,為數組分配保存值的內存空間。在Java中,數組是必須實例化的對象。
- 邊界檢查:

1.所應值可以自動執行邊界檢查,可保證引用數組有效範圍內的索引值。

2.Java有兩種數組聲明方式:第一種是將方括號和數組元素類型相關聯,第二種是將方括號和數組名相關聯。

3.初始值表可以用於實例化一個數組對象,這時不需要用new運算符創建數組對象。
4.整個數組可以作為一個參數傳遞給方法,使方法的形成為原始數組的別名。
- 對象數組:

1.實例化對象數組只是為了保存對象而預留空間,對每個元素所代表的對象必須分別實例化。
- 命令行實參:

1.命令行實參儲存在String對象的數組中,並將傳遞給main方法。
- 可變長度參數表:

1.通過使用某種特殊語法的形參表,使所定義的方法能接受任意個數的參數,並將參數自動存入數組以便在方法中進行處理。
- 二維數組和多維數組:

1.在二維數組中的值,必須使用兩個索引值來引用,一個索引值指行,另一個索引值指列。
2.與一維數組類似,二維數組也可以用初始值表實例化,初始值表中的每一個元素本身就是一個一維的初始值表。

教材學習中的問題和解決過程

  • 問題1:定義數組有哪幾種方法:
  • 問題1解決方案:有下面這幾類:
  • 方式1(推薦,更能表明數組類型)

      
    type[] 變量名 = new type[數組中元素的個數];
      
    比如:
      
    int[] a = new int[10];
      
    數組名,也即引用a,指向數組元素的首地址。
  • 方式2(同C語言)

      
    type變量名[] = new type[數組中元素的個數];
      
    如:
      
    int a[] = new int[10];
  • 方式3 定義時直接初始化

      
    type[] 變量名 = new type[]{逗號分隔的初始化值};
      
    其中紅色部分可省略,所以又有兩種:
      
    int[] a = {1,2,3,4};
      
    int[] a = new int[]{1,2,3,4};
      
    其中int[] a = new
    int[]{1,2,3,4};的第二個方括號中不能加上數組長度,因為元素個數是由後面花括號的內容決定的。
  • 問題2:一維數組與二維數組的區別:
  • 問題2解決方案:

    int arr[10]

    arr int* 指向一維數組首元素的地址

    arr[0] int 第一個格子的值

    arr+1 int* 指向一維數組第二個元素的地址,但是不會覆蓋指向首元素的指針

    arr[0]+1 int 第一個格子的值加1


int brr[3][4]

brr int(p)[4] 指向二維數組第一行的數組指針

brr[0] int
brr[0]=arr 指第一行的地址

brr+1 int(p)[4] 指向二維數組第二行的數組指針,但是不會覆蓋第一行的指針

brr[0]+1 int
brr[0]=arr 指第一行的第二個元素

brr[0][0] int 第一行第一列的值

brr[0][0]+1 int 第一行第一列的值+1

代碼調試中的問題和解決過程

  • 問題1:在做pp8.1時,遇到到了一大堆問題
    技術分享圖片

  • 問題1解決方案:首先是符號粗心,位置打錯,後來是就是for循環沒打括號,人家提示非法的類型開始
    技術分享圖片
    技術分享圖片

  • 問題2:在做pp08.5時,我想的是將
    for (int x1=0;x1<n;x1++)

    循環一遍就可以將三個要求的值都求出來,結果就錯了。還有就是我想一次性用
    Math.sqrt(+=Math.pow(list[12]-mean,2))

    將標準方差算出來,但是語法錯誤啊,很糾結
  • 問題2解決方案:前面一個問題改一下順序就可以,後面一個問題我又設了一個變量b,把計算過程分開才可以。
  • 問題3:能力有限,pp8.6實在沒想通,不過我還在研究,爭取周一晚之前把這道題交上。

代碼托管

技術分享圖片
技術分享圖片

結對及互評

點評模板:

  • 博客中值得學習的或問題:
    • xxx
    • xxx
    • ...
  • 代碼中值得學習的或問題:
    • xxx
    • xxx
    • ...
  • 基於評分標準,我給本博客打分:XX分。得分情況如下:xxx

  • 參考示例

點評過的同學博客和代碼

  • 本周結對學習情況
    • 20172317
    • 結對照片
    • 結對學習內容
      • XXXX
      • XXXX
      • ...
    • 20172320
    • 結對照片
    • 結對學習內容
      • XXXX
      • XXXX
      • ...

其他(感悟、思考等,可選)

xxx
xxx

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一周 95/95 1/1 18/18
第二周 515/620 1/2 22/40
第三周 290/910 1/3 20/60
第四周 1741/2651 1/4 30/84
第五周 579/3230 1/5 20/104
第六周 599/3829 1/6 18/122

嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進自己的計劃能力。這個工作學習中很重要,也很有用。
耗時估計的公式:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。

參考:軟件工程軟件的估計為什麽這麽難,軟件工程 估計方法

  • 計劃學習時間:20小時

  • 實際學習時間:18小時

  • 改進情況:無

(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)

參考資料

  • 《Java程序設計與數據結構教程(第二版)》

  • 《Java程序設計與數據結構教程(第二版)》學習指導
  • java數組基礎
  • markdown編輯器語法——文字顏色、大小、字體與背景色的設置
  • 一維數組與二維數組的區別

20172327 2017-2018-2 《程序設計與數據結構》第六周學習總結