# 二次元配列の宣言B a=[ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] ] p a # 二次元配列の要素の参照A a=[ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] ] p a[ 0 ][ 0 ] p a[ 0 ][ 1 ] p a[ 0 ][ 2 ] p a[ 1 ][ 0 ] p a[ 1 ][ 1 ] p a[ 1 ][ 2 ] p a[ 2 ][ 0 ] p a[ 2 ][ 1 ] p a[ 2 ][ 2 ] # 二次元配列の要素の参照C a=[ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] ] p a[ 0 ] p a[ 1 ] p a[ 2 ] # 二次元配列の要素の参照D a=[ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] ] p a.length p a[ 0 ].length p a[ 1 ].length p a[ 2 ].length # 二次元配列の要素の参照D' a=[ [ 1 ] , [ 4 , 5 ] , [ 7 , 8 , 9 ] ] p a.length p a[ 0 ].length p a[ 1 ].length p a[ 2 ].length # 二次元配列の要素への代入 a = Array.new( 4 ) a[ 0 ] = Array.new( 3 ) a[ 1 ] = Array.new( 3 ) a[ 2 ] = Array.new( 3 ) a[ 3 ] = Array.new( 3 ) a[ 0 ][ 0 ] = 1 a[ 0 ][ 1 ] = 2 a[ 0 ][ 2 ] = 3 a[ 1 ][ 0 ] = 4 a[ 1 ][ 1 ] = 5 a[ 1 ][ 2 ] = 6 a[ 2 ][ 0 ] = 7 a[ 2 ][ 1 ] = 8 a[ 2 ][ 2 ] = 9 a[ 3 ][ 0 ] = 10 a[ 3 ][ 1 ] = 11 a[ 3 ][ 2 ] = 12 p a # 二次元配列の宣言B a = [] a[ 0 ] = [] a[ 0 ][ 0 ] = 1 a[ 0 ][ 1 ] = 2 a[ 0 ][ 2 ] = 3 a[ 1 ] = [] a[ 1 ][ 0 ] = 4 a[ 1 ][ 1 ] = 5 a[ 1 ][ 2 ] = 6 a[ 2 ] = [] a[ 2 ][ 0 ] = 7 a[ 2 ][ 1 ] = 8 a[ 2 ][ 2 ] = 9 a[ 3 ] = [] a[ 3 ][ 0 ] = 10 a[ 3 ][ 1 ] = 11 a[ 3 ][ 2 ] = 12 p a # 二重ループ(復習) 4.times{ |i| 3.times{ |j| print( i , " + " , j , " = " , i + j , "\n" ) } } # 二次元配列の要素の参照@ a=[ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] , [ 10 , 11 , 12 ] ] 4.times{ |i| 3.times{ |j| print( " a[ " , i , " ][ " , j , " ] = " , a[ i ][ j ] , "\n" ) } } # 二次元配列の要素の参照@' a=[ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] , [ 10 , 11 , 12 ] ] 3.times{ |i| 4.times{ |j| print( " a[ " , j , " ][ " , i , " ] = " , a[ j ][ i ] , "\n" ) } } # 二次元配列の要素の参照A a=[ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] , [ 10 , 11 , 12 ] ] a.length.times{ |i| a[ i ].length.times{ |j| print( " a[ " , i , " ][ " , j , " ] = " , a[ i ][ j ] , "\n" ) } } # 二次元配列の要素の参照B a=[ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] , [ 10 , 11 , 12 ] ] (0..a.length-1).each{ |i| (0..a[ i ].length-1).each{ |j| print( " a[ " , i , " ][ " , j , " ] = " , a[ i ][ j ] , "\n" ) } } # 二次元配列の要素の参照C'' a=[ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] , [ 10 , 11 , 12 ] ] a.each{ |i| p i i.each{ |j| print( j , "\n" ) } } # 二次元配列の要素の参照D a = [ [ 1 ], [ 2, 3 ], [ 4, 5, 6], [ 7, 8, 9, 10] ] a.length.times{ |i| a[ i ].length.times{ |j| print( " a[ " , i , " ][ " , j , " ] = " , a[ i ][ j ] , "\n" ) } } # 二次元配列の要素の参照D' a = [ [ 1 ], [ 2, 3 ], [ 4, 5, 6], [ 7, 8, 9, 10] ] a.each{ |i| p i p i.length } # 二次元配列の要素の参照D'' a = [ [ 1 ], [ 2, 3 ], [ 4, 5, 6], [ 7, 8, 9, 10] ] # 二次元配列の要素の参照D''' a.each{ |i| i.length.times{ |j|   print( i[ j ] , "\n" ) } } a = [ [ 1 ], [ 2, 3 ], [ 4, 5, 6], [ 7, 8, 9, 10] ] a.each{ |i| i.each{ |j|   print( j , "\n" ) } } # 二次元配列の要素への代入@ a=[] a[ 0 ] = Array.new( 3 ) a[ 1 ] = Array.new( 3 ) a[ 2 ] = Array.new( 3 ) count = 1 3.times{ |i| 3.times{ |j| a[ i ][ j ] = count count += 1 } } p a # 二次元配列の要素への代入@' a=[] 3.times{ |i| a[ i ] = Array.new( 3 ) } count = 1 3.times{ |i| 3.times{ |j| a[ i ][ j ] = count count += 1 } } p a a=[] count = 1 3.times{ |i| a[ i ] = [] 3.times{ |j| a[ i ][ j ] = count count += 1 } } p a # 二次元配列の要素への代入@'' a=[] count = 1 3.times{ |i| a[ i ] = [] 3.times{ |j| a[ i ][ j ] = count count += 1 } } p a # 二次元配列の要素への代入A a=[] (0..2).each{ |i| a[ i ] = [] (0..2).each{ |j| a[ i ][ j ] = rand( 10 ) } } p a # 二次元配列の要素への代入B a=[1,2,3] b=[] 3.times{ |i| b[ i ] = [] 3.times{ |j| b[ i ][ j ] = a[ j ] } } p b # 二次元配列の要素への代入C a=[1,2,3] b=[] 3.times{ |i| b[ i ] = [] b[ i ] = a } p b # 二次元配列の要素への代入C' a=[1,2,3] b=[] 3.times{ |i| b[ i ] = [] b[ i ] = a } p b a[0]=100 p b # 二次元配列の要素への代入D a=[] 3.times{ |i| a[ i ] = [] 3.times{ |j| a[ i ][ j ] = gets.chomp.to_i } } p a # 二次元配列のコピー@ a=[ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] , [ 10 , 11 , 12 ] ] b = [] a.length.times{ |i| b[ i ] = [] a[ i ].length.times{ |j|   b[ i ][ j ] = a[ i ][ j ] } } p b # 二次元配列のコピー@' a=[ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] , [ 10 , 11 , 12 ] ] b = [] a.length.times{ |i| b[ i ] = [] b[ i ] = a[ i ] } p b # ファイルからの読み込み@ # coding: Windows-31J open( "HumptyDumpty.txt" ) { |f| ln = 1; l = f.gets while !(l.nil?) do print( ln, "行目:", l ) ln += 1; l = f.gets end } # ファイルからの読み込みB open("HumptyDumpty.txt") { |f| while line = f.gets do puts( line ) end } # ファイルからの読み込みC # coding: Windows-31J sum = 0 open( "file.txt" ) { |f| while line = f.gets do x = line.chomp.to_i print( x , " " ) sum += x end print( "\n 合計:" , sum ) } # ファイルからの読み込みD # coding: Windows-31J sum = 0 x =[] open( "file1.txt" ) { |f| while line = f.gets do x = line.chomp.split(/,/) print( x[ 0 ] , " " , x[ 1 ] , "\n" ) sum += x[ 1 ].to_i end print( "\n 合計:" , sum ) } # ファイルへの書き込み@ f = open( "text.txt" , "w" ) 10.times{ |i| f.print( i , "\n" ) } f.close # ファイルへの書き込みB s = open( "text.txt" , "w" ) open("HumptyDumpty.txt") { |f| while line = f.gets do s.print( line ) end } s.close