# 二次元配列の要素への代入A a=[] 4.times{ |i| a[ i ] = [] 4.times{ |j| if i == j then a[ i ][ j ] = 1 else a[ i ][ j ] = 0 end } } a.length.times{ |i| a[ i ].length.times{ |j| print( a[ i ][ j ] , " " ) } print( "\n" ) } # 二次元配列の要素への代入B a=[] 4.times{ |i| a[ i ] = [] (i+1).times{ |j| if i == j then a[ i ][ j ] = 1 else a[ i ][ j ] = 0 end } } a.length.times{ |i| a[ i ].length.times{ |j| print( a[ i ][ j ] , " " ) } print( "\n" ) } # 二次元配列の要素への代入C a=[] 4.times{ |i| a[ i ] = [] (0..3-i).each{ |j| if i+j == 3 then a[ i ][ j ] = 1 else a[ i ][ j ] = 0 end } } a.length.times{ |i| a[ i ].length.times{ |j| print( a[ i ][ j ] , " " ) } print( "\n" ) } # 各人の平均点を求めるプログラム@ # coding: Windows-31J p = [ [1,70,60,83], [2,43,49,76], [3,59,79,43], [4,67,74,83] ] (0..3).each{ |i| sum = 0 (1..3).each{ |j| sum += p[i][j] } ave = sum / 3 puts( "出席番号 #{i+1} の人の平均点は #{ave} です" ) } # 各人の平均点を求めるプログラムA' # coding: Windows-31J p = [ [1,70,60,83], [2,43,49,76], [3,59,79,43], [4,67,74,83] ] (0..p.length-1).each{ |i| sum = 0 (1..p[i].length-1).each{ |j| sum += p[i][j] } ave = sum / ( p[i].length-1 ) puts( "出席番号 #{i+1} の人の平均点は #{ave} です" ) } # 各人の平均点を求めるプログラムB # coding: Windows-31J p = [ [1,70,60,83], [2,43,49,76], [3,59,79,43], [4,67,74,83], ] p.each{ |a| sum = 0 (1..a.length-1).each{ |i| sum += a[ i ] } ave = sum / ( a.length-1 ) puts( "出席番号 #{a[0]} の人の平均点は #{ave} です" ) } # 各人の平均点を求めるプログラムB' # coding: Windows-31J p = [ [1,70,60,83], [2,43,49,76], [3,59,79,43], [4,67,74,83], ] p.each{ |a| sum = 0 count = 0 a.each{ |i| if count > 0 then sum += i end count += 1 } ave = sum / ( a.length-1 ) puts( "出席番号 #{a[0]} の人の平均点は #{ave} です" ) } # 各人の平均点を求めるプログラムC p = [ [1,70,60,83], [2,43,49,76], [3,59,79,43], [4,67,74,83] ] ave =[] (0..p.length-1).each{ |i| sum = 0 (1..p[i].length-1).each{ |j| sum += p[i][j] } ave[i] = sum / ( p[i].length-1 ) } (0..p.length-1).each{ |i| puts( "出席番号 #{p[i][0]} の人の平均点は #{ave[i]} です" ) } # 素数を判定するプログラム # coding:Windows-31J 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 # 素数を印字するプログラム # coding: Windows-31J (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