# ファイルからの読み込み@ open( "HumptyDumpty.txt" ) { |f| ln = 1; l = f.gets while !(l.nil?) do print( ln, "行目:", l ) ln += 1; l = f.gets end } # ファイルからの読み込みA open("HumptyDumpty.txt") { |f| while line = f.gets do puts( line ) end } # ファイルからの読み込みC 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 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 # 素数を判定するプログラム n=gets.chomp.to_i (2..n-1).each{ |x| if n % x == 0 then print( "この数字は素数ではありません\n" ) break end } # 素数を判定するプログラム n=gets.chomp.to_i p = 1 (2..n-1).each{ |x| if n % x == 0 then p = 0 break end } if p == 0 then print( "この数字は素数ではありません\n" ) else print( "この数字は素数です\n" ) end # 再: 素数を印字するプログラム (2..10).each{ |n| p = 1 (2..n-1).each{ |x| (p=0; break) if n%x == 0 } puts "#{n} は素数" if p==1 } # エラトステネスの篩: プログラム例@ sieve = Array.new(101) sieve.length.times { |i| sieve[i] = 1 } sieve[0]=0 sieve[1]=0 (2..sieve.length-1).each { |i| (i*2).step(sieve.length-1, i) { |j| sieve[j]=0 } } sieve.length.times { |i| print( "#{i} " ) if sieve[i] != 0 } # エラトステネスの篩: プログラム例A sieve = Array.new(101) sieve.length.times { |i| sieve[i] = i # ちょっと工夫 } sieve[0]=0 sieve[1]=0 (2..sieve.length-1).each { |i| (i*2).step(sieve.length-1, i) { |j| sieve[j]=0 } } sieve.each { |p| print( "#{p} " ) if p!=0 } # bubble sort のプログラム@ a=[ 4,1,8,2,6,5 ] p a (0..a.length-1).each{ |i| (a.length-2).downto(i) { |j| if a[j]>a[j+1] then w = a[j] a[j]=a[j+1] a[j+1]=w end } } p a # bubble sort のプログラムA a=[ 4,1,8,2,6,5 ] p a (0..a.length-1).each{ |i| (a.length-2).downto(i) { |j| if a[j]a[j+1] then w = a[j] a[j]=a[j+1] a[j+1]=w end } } p a # 二次元配列の宣言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 # 二次元配列の要素への代入 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