Rubyプログラミング

問題番号 問題 ヒント 回答
1
配列xが下記のように宣言されているものとする.
x = [ 3 , 4 , 9 , 6 , 2 ]
配列xの全ての要素を順番に出力するプログラムを書きなさい.
なし
回答
2
上記のプログラムをtimesメソッドを用いて,ループ化し,
書き直しなさい.
なし
回答
3
同様に,問題2のプログラムをeachメソッドを用いて,ループ化し,
書き直しなさい.
なし
回答
4
同様に,問題2のプログラムをwhileループを用いて書き直しなさい.
x = [ 3 , 4 , 9 , 6 , 2 ]

i = 0
# 以下,whileループを完成させなさい
回答
5
配列xの長さ(要素数)を出力するプログラムを書きなさい.
なし
回答
6
配列xの全ての要素の合計を求めるプログラムを書きなさい.
x = [ 3 , 4 , 9 , 6 , 2 ]

sum = 0
# 以下,timesメソッドを用いて完成させなさい
回答
7
下記の配列xを,timesメソッドを用いて各要素に値を格納する
プログラムを書きなさい.
x = [ 1 , 2 , 3 , 4 , 5 ]
x =[]

# 以下,timesメソッドを用いて配列xの各要素に値を格納しなさい
回答
8
問題7と同様に下記の配列xを,timesメソッドを用いて各要素に値を格納する
プログラムを書きなさい.
x = [ 1 , 4 , 9 , 16 , 25 ]
なし
回答
9
以下の二つの配列xとyの各要素の和を配列zに求めるプログラム
を書きなさい
x = [ 3 , 4 , 9 , 6 , 2 ]
y = [ 7 , 8 , 3 , 1 , 4 ]
x = [ 3 , 4 , 9 , 6 , 2 ]
y = [ 7 , 8 , 3 , 1 , 4 ]
z = []

# 以下,timesメソッドを用いて,配列xとyの各要素の和を
# 配列zに求めなさい
回答
10
問題9の配列xとyをベクトルとして,内積を求めるプログラムを書きなさい.
x = [ 3 , 4 , 9 , 6 , 2 ]
y = [ 7 , 8 , 3 , 1 , 4 ]

sum = 0
# 以下,timesメソッドを用いて,xとyの内積を求めるプログラム
# を追加しなさい
回答
11
配列xの要素の中で最小値を求め,出力するプログラムを作成しなさい.
x = [ 3 , 4 , 9 , 6 , 2 ]
x = [ 3 , 4 , 9 , 6 , 2 ]

min = 99999
# 以下,timesメソッドを用いて最小値を求め,変数minに格納する
# プログラムを書きなさい
回答
12
問題11と同様に,配列xの要素の中で最大値を求め,出力するプログラムを
作成しなさい.
x = [ 3 , 4 , 9 , 6 , 2 ]
なし
回答
13
配列xの要素の平均値を求め,求めた平均値よりも大きい値を持つ要素を
出力するプログラムを書きなさい.
平均値を求める方法は問題6を参照しなさい
回答
14
キーボードから整数を入力し,順番に配列xに格納し,その結果を出力する
プログラムを書きなさい.
(キーボードからの入力はqを入力することで終了とする)
キーボードからの整数入力については前回の問題21を参照しなさい
回答
15
整数n(n>=0)を入力し,整数nが0になるまで2で割り続けなさい.
そして整数nを2で割る度に,その余りを配列amariに順番に格納するプログラム
を作成しなさい.
整数nを入力し,2で割り続けるプログラムは前回の問題11,12を参照しなさい.
回答
16
上記の問題において配列amariの各要素を逆順に出力しなさい.
(十進数から二進数の変換プログラム)
downtoメソッドを用いなさい.
回答
17
以下の配列が宣言されている時,x[ 0 ]とx[ 1 ]の要素を交換する
プログラムを書きなさい.
x = [ 5 , 10 ]
x = [ 5 , 10 ]

# 以下に交換するプログラムを追加しなさい

x.length.times { |i|
        printf( "x[ %d ] = %d\n" , i , x[ i ] )
}
回答
18
以下の配列xの要素をtimesメソッドを用いて,逆順に並び変えるプログラムを
作成しなさい.
(配列x = [ 3 , 4 , 9 , 6 , 2 ]をx = [ 2 , 6 , 9 , 4 , 3 ]としなさい)
また配列xの要素数を偶数個とした場合においても確認しなさい.
x = [ 3 , 4 , 9 , 6 , 2 ]

( x.length / 2 ).times { |i|
	# x[ i ] と x[ x.length-i-1 ]を交換するプログラムを追加しなさい


}

x.length.times { |i|
        printf( "x[ %d ] = %d\n" , i , x[ i ] )
}
回答
19
0から1未満の乱数を1000回生成し,配列x[ 0 ]に0.5以上の数の出現回数を,
x[ 1 ]に0.5未満の出現回数を求めるプログラムを書きなさい.
x = [ 0 , 0 ]

1000.times{ |i|
	# 以下にプログラムを追加しなさい


}
printf( "0.5以上の回数は%d回,未満の回数は%d回です\n" , x[ 0 ] , x[ 1 ] )
回答
20
整数1から6の値をランダムに1000回生成し,整数1の出現回数をx[ 0 ]に,
整数2の出現回数をx[ 1 ]にといったように,配列xに格納するプログラム
を作成しなさい.
(サイコロを1000回振った時,各目の出現回数を調べるプログラム)
x = [ 0 , 0 , 0 , 0 , 0 , 0 ]

1000.times{ |i|
	# 以下にプログラムを追加しなさい


}

x.length.times { |i|
        printf( "%dの出現回数は%d回です\n" , i+1 , x[ i ] )
}
回答
21
x[ 0 ]=1,x[ 1 ]=1とした場合,x[ n ] = x[ n-1 ] + x[ n-2 ]を求める
プログラムを書きなさい(フィボナッチ数列を求めるプログラム).
変数nの値を大きくして実行しなさい.
x = [ 1 , 1 ]
n = 10

# フィボナッチ数列を求めるプログラムを書きなさい.

n.times { |i|
	printf( "x[ %d ] = %d\n" , i , x[ i ] )
}
回答