# 配列の要素A names = ["Perl", "Python", "Ruby", "Scheme"] p names[ 0 ] p names[ 1 ] p names[ 2 ] p names[ 3 ] # 配列の要素B names = ["Perl", "Python", "Ruby", "Scheme"] names.length # 配列の要素への代入A names = ["Perl", "Python", "Ruby", "Scheme"] names[ 0 ] = "C" names[ 3 ] = "Java" p names # Ruby の配列は柔軟 abc = ["a","b","c"] abc[10] = "k" p abc # 各要素に代入する(失敗編) primes[0]=2 # 配列だということを教える@ abc = Array.new( 5 ) abc[3]=333 p abc # 配列だということを教えるB x=[] x[ 0 ] = 3 x[ 1 ] = 5 p x # 要素番号を用いて一つずつ取り出す names=["Perl", "Python", "Ruby", "Scheme"] 4.times { | i | print( "#{i} 番目は #{ names[i] }\n" ) } # 要素番号を用いて一つずつ取り出す(続) names=["Perl", "Python", "Ruby", "Scheme"] names.length.times { | i | print( "#{i} 番目は #{ names[i] }\n" ) } # 要素を直接一つずつ取り出す ["Perl", "Python", "Ruby", "Scheme"].each { | lang | print( "I like ", lang, "\n" ) } # 要素を直接一つずつ取り出す(続) names=["Perl", "Python", "Ruby", "Scheme"] names.each { | lang | print( "I like #{lang}\n" ) } # 試してみよう 4 names=["Perl", "Python", "Ruby", "Scheme"] names[0] = "Ada" names.length.times { | i | print( "#{i} 番目は #{ names[i] }\n" ) } # 試してみよう 6 abc = ["a","b","c"] abc[1] = 111 p abc => ["a", 111, "c"] abc[3] = 3.33 p abc p abc[4] = [4,5,6] p abc # 配列の要素の参照例@ a=[4,2,1,6,7] sum = 0 a.length.times{ |i| sum += a[ i ] } print( " sum = " , sum ) a=[4,2,1,6,7] sum = 0 a.each{ |i| sum += i } print( " sum = " , sum , "\n" ) # 配列の要素の参照例A a=[4,2,1,6,7] i = 0 sum = 0 while i < a.length do sum += a[ i ] i += 1 end print( " sum = " , sum ) a=[4,2,1,6,7] i = 0 sum = 0 loop{ sum += a[ i ] i += 1 break if i == a.length } print( " sum = " , sum ) # 配列の要素の参照例B a=[4,2,1,6,7] a.length.times { |i| if i % 2 != 0 then print( a[ i ] , "\n" ) end } a=[4,2,1,6,7] a.each { |i| if i % 2 != 0 then print( i , "\n" ) end } # 配列の要素の参照例C x=[] 10.times{ |i| x[ i ] = rand( 100 ) } sum = 0 x.length.times{ |i| sum += x[ i ] } p x print( " sum = " , sum ) # 配列の要素の参照例D a=[4,2,1,6,7] a.length.times { |i| print( a[ a.length-1-i ] , "\n" ) } a=[4,2,1,6,7] (a.length-1).step(0,-1){ |i| print( a[ i ] , "\n" ) } # 配列の要素の参照例E a=[4,2,1,6,7] x=[] a.length.times { |i| x[ i ] = a[ i ] } p x a=[4,2,1,6,7] x=[] a.length.times { |i| x[ i ] = a[ i ]*a[ i ] } p x # 配列の要素の参照例E' a=[4,2,1,6,7] x=Array.new(a.length) a.length.times { |i| x[ i ] = a[ i ] } p x a=[4,2,1,6,7] x=Array.new(a.length) a.length.times { |i| x[ i ] = a[ i ]*a[ i ] } p x # 配列の要素の参照例F a=[4,2,1,6,7] a[ a.length ] = 8 p a # 配列の要素の参照例G a=[4,2,1,6,7] n=a.length n.times{ |i|   a[ n-i ] = a[ n-i-1 ] } a[ 0 ] = 5 p a # 配列の要素の参照例H e=[] n = 100 fact = 1.0 e[ 0 ] = 1.0 (1..n).each{ |x| fact = fact * x.to_f e[ x ] = e[ x-1 ] + 1.0 / fact } e.length.times{ |i| printf( "%3d: %64.60f\n" , i , e[ i ] ) } # 配列の要素の参照例I a=[] n=10 n.times{ |i| a[ i ] = rand( 10 ) } a.length.times { |i| print( a[ i ] , " " , "*" * a[ i ] , "\n" ) } # コマンドライン引数:プログラム(sample0302.rb) print( ARGV[0] + " + " + ARGV[1]+ " = " ) print( ARGV[0].to_i + ARGV[1].to_i ) print( "#{ARGV[0]} + #{ARGV[1]} = " ) print( ARGV[0].to_i + ARGV[1].to_i ) # 浮動小数点数にすると(sample0303.rb) print( ARGV[0] + " + " + ARGV[1]+ " = " ) print( ARGV[0].to_f + ARGV[1].to_f ) # 3個にすると(sample0304.rb) print( ARGV[0] + " + " + ARGV[1] + " + " + ARGV[2] + " = " ) print( ARGV[0].to_f + ARGV[1].to_f + ARGV[2].to_f )