本站電子書

您可以在這些電子書店找到本站電子書: Google Play 圖書iBooks StoreHyReadReadmooPubu
===>>>本站推出學習遊戲意見調查<<<===《如何自學程式設計》入選 Google Play 台灣地區2016年度最佳書籍

Ruby 入門指南 - 陣列

陣列 (array) 是 Ruby 裡稍微複雜的資料結構 (data structure) ,裡頭可以有多個不同資料型態 (data type) 的元素 (element)




這是說,陣列裡可以有整數 (integer) 、浮點數 (floating-point number) 、字串 (string) 、範圍 (range) 或是其他的陣列。陣列的字面常數 (literal) 為用中括號圍起來的內容,我們舉一例如下
a = [1, 2.0, "3", 4..5, [6]]

a.each do |i|
    puts i
end

=begin
《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:arraydemo.rb
功能:示範 Ruby 程式 
作者:張凱慶
時間:西元 2012 年 12 月
=end


這個例子很簡單,我們用陣列的字面常數在陣列裡建立 5 個值,然後用一個 do 迴圈印出每個元素值,執行結果如下



其實陣列也是個很有彈性的資料結構,利用加號 + 可以合併另一個陣列,減號可以移除兩個陣列的相同元素,另外還有多種方法可用,例如 push 加入新元素、 pop 移除最新加入的元素,舉例如下
a = ["a"]
a = a + ["b"]
a.push("c")
a = a - ["b"]
a.pop()

a.each do |i|
    puts i
end

=begin
《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:arraydemo2.rb
功能:示範 Ruby 程式 
作者:張凱慶
時間:西元 2012 年 12 月
=end


執行結果如下



我們打算設計一個編密碼的軟體,簡單說,就是建立一個英文小寫字母的對換表格,藉由這個表格,我們可以對英文句子中的小寫英文字母進行對換,例如 "There is no spoon." 可能變成以下任一個
Tfqdq ki jo itooj.
Tcnan hf gl fqllg.
Tczmz dn ij nkjji.
Tgfsf pb ir barri.
Tdcpc my fo yxoof.


也就是把二十六個小寫英文字母
abcdefghijklmnopqrstuvwxyz


改變一下順序
ntweapfyqrivzcjkdobslhxmgu


這樣就是密碼表了,由於陣列很好用,所以我們打算拿陣列來當密碼表,想想該怎麼做呢?首先密碼表需要儲存 26 個英文小寫字母,這個我們用陣列的建構子 (constructor) ,然後以 'a'..'z' 當參數 (parameter) 就行了
code = Array('a'..'z')


可是這樣是按順序的英文小寫字母呀!所以要 shuffle 一下囉
code = Array('a'..'z').shuffle


我們用下面的程式印出密碼表
code = Array('a'..'z').shuffle
puts
code.each do |i|
    print i
end
puts "\n\n"

=begin
《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:codedemo.rb
功能:示範 Ruby 程式 
作者:張凱慶
時間:西元 2012 年 12 月
=end


執行結果如下



看起來還不錯,接下來我們就開始來發展 Encrypt 類別 (class) 囉!


中英文術語對照
陣列array
資料結構data structure
資料型態data type
元素element
整數integer
浮點數floating-point number
字串string
範圍range
字面常數literal
建構子constructor
參數parameter
類別class


您可以繼續參考
軟體開發


相關目錄
回 Ruby 入門指南
回 Ruby 教材
回首頁


參考資料
http://www.rubyist.net/~slagell/ruby/arrays.html
http://www.ruby-doc.org/docs/ProgrammingRuby/html/ref_c_array.html

沒有留言: