| 問題番号 | 問題 | ヒント | 回答 | 
| 
整数iを入力した後,整数iの二乗を計算するメソッドを書きなさい. (整数iを仮引数,整数iの二乗を戻り値とするメソッド)  | 
# 以下にメソッド f を記述しなさい i = gets.to_i printf( "%d\n" , f( i ) )  | 
回答 | |
| 
問題1で定義したメソッドを用いて,整数1から10までの二乗を求める プログラムをeachメソッドによって書きなさい.  | 
# 以下にメソッド f を記述しなさい # eachメソッドを用いて整数1から10の二乗を求めるプログラムを # 記述しなさい  | 
回答 | |
| 
問題2と同様な動作をするプログラムをtimesメソッドを用いて書きなさい. | 
# 以下にメソッド f を記述しなさい # timesメソッドを用いて整数1から10の二乗を求めるプログラムを # 記述しなさい  | 
回答 | |
| 
問題2と同様な動作をするプログラムをwhileループを用いて書きなさい. | 
# 以下にメソッド f を記述しなさい # whileループを用いて整数1から10の二乗を求めるプログラムを # 記述しなさい  | 
回答 | |
| 
整数iを入力した後,整数iが偶数か奇数かを判定するメソッドを記述しなさい. | 
# 偶数か奇数かを判定するメソッド check を記述しなさい i = gets.to_i check( i )  | 
回答 | |
| 
ヒントのようにプログラムを書き換えた場合,問題5と同様な動作が実行 できるように,メソッド check を記述しなさい. (偶数であれば戻り値として1を,奇数であれば-1を返すメソッドとする)  | 
# メソッド check を記述しなさい i = gets.to_i if check( i ) == 1 then printf( "%dは偶数です\n" , i ) elsif check( i ) == -1 then printf( "%dは奇数です\n" , i ) end  | 
回答 | |
| 
整数i(i>1)を入力し,1から整数iまでの合計値を求めるメソッドを記述しなさい. (整数iを引数とし,1から整数iまでの和を戻り値とするメソッド)  | 
# 合計値を求めるメソッド f を記述しなさい i = gets.to_i printf( "1から%dまでの合計値は%dです\n" , i , f( i ) )  | 
回答 | |
| 
整数i(i>1)を入力し,1から整数iまでの積を求めるメソッドを記述しなさい. (整数iを引数とし,1から整数iまでの積を戻り値とするメソッド)  | 
# 積を求めるメソッド f を記述しなさい i = gets.to_i printf( "1から%dまでの積は%dです\n" , i , f( i ) )  | 
回答 | |
| 
1から整数iまでの合計値を求めるメソッドf(問題7)と偶数か奇数かを 判定するメソッド(問題5)を用いて,整数iを入力した後,1から整数i までの合計値を求め,さらにその合計値が偶数か奇数かを判定する プログラムを記述しなさい.  | 
# 合計を求めるメソッド f を記述しなさい # 偶数か奇数かを判定するメソッド check を記述しなさい i = gets.to_i printf( "1から%dまでの合計値は%dです\n" , i , f( i ) ) # 1からiまでの和が偶数か奇数かを判定するため,下記の # 文を完成しなさい check( )  | 
回答 | |
| 
1から整数iまでの合計値を求めた後,さらに1から今求めた合計値までの 和を求めるプログラムを,問題7のメソッドを用いて作成しなさい.  | 
# 合計値を求めるメソッド f を記述しなさい i = gets.to_i printf( "1から%dまでの合計値は%dです\n" , i , f( i ) ) # 整数1から上記のprintf文で求めた合計値までの和を求めるために, # 下記のprintf文を完成しなさい printf( "1から%dまでの合計値は%dです\n" , , )  | 
回答 | |
| 
整数iとjを入力した後,二つの整数の二乗和を求めるメソッド f を記述しなさい (整数iとjを引数とし,二つの整数の二乗和を戻り値として返す関数)  | 
# メソッド f を記述しなさい. i = gets.to_i j = gets.to_i printf( "iが%d,jが%dの場合,値は%dです\n" , i , j , f( i , j ) )  | 
回答 | |
| 
問題11のメソッドを用いて,整数iとjを入力した後,1からi,1からjと値を それぞれ1ずつ増やしていった場合,メソッドfの値を出力するプログラム (二重ループ)を記述しなさい.  | 
# メソッド f を記述しなさい i = gets.to_i j = gets.to_i # 1からi,1からjと値を変えた時のメソッド f の値を求めるプログラム # (二重ループ)を記述しなさい  | 
回答 | |
| 
問題12と同様な動作をするメソッドを記述しなさい. (メソッドの中で,結果を出力するように書き直しなさい)  | 
# メソッド f を記述しなさい i = gets.to_i j = gets.to_i f( i , j )  | 
回答 | |
| 
問題12のメソッド f において,それぞれの戻り値を二次元配列x に格納し,二次元配列xの要素を出力するようにプログラムに 書き直しなさい.  | 
# メソッド f を記述しなさい
i = gets.to_i
j = gets.to_i
x = []
# 二次元配列xにメソッドfの値を代入しなさい
(1..i).each { |a|
    (1..j).each { |b|
	printf( "iが%dでiが%dの場合,値は%dです\n" , a , b , x[ a ][ b ] )
    }
}
 | 
回答 | |
| 
問題14において,メソッド f の中で各値を二次元配列に格納し,その配列 を戻り値とするようにメソッド f を書き直しなさい.  | 
# メソッド f を記述しなさい
i = gets.to_i
j = gets.to_i
x = f( i , j )
(1..i).each { |a|
    (1..j).each { |b|
	printf( "iが%dでiが%dの場合,値は%dです\n" , a , b , x[ a ][ b ] )
    }
}
 | 
回答 | |
| 
一次元配列 a = [ 5 , 6 , 2 , 3 , 10 , 7 ] において最大値を求める メソッドを記述しなさい  | 
# 配列の中で最大値を求めるメソッドを記述しなさい a = [ 5 , 6 , 2 , 3 , 10 , 7 ] printf( "最大値は%dです\n" , max( a ) )  | 
回答 | |
| 
一次元配列 a = [ 5 , 6 , 2 , 3 , 10 , 7 ] において最小値を求める メソッドを記述しなさい  | 
# 配列の中で最小値を求めるメソッドを記述しなさい a = [ 3 , 6 , 2 , 4 , 10 , 7 ] printf( "最小値は%dです\n" , min( a ) )  | 
回答 | |
| 
一次元配列 a = [ 5 , 6 , 2 , 3 , 10 , 7 ] において,最小値,最大値を求め その結果を要素数が2の配列として返すメソッドを記述しなさい. (array[ 0 ]に最小値を,array[ 1 ]に最大値を入れ,array を戻り値とする メソッド)  | 
# 配列の中から最大値,最小値を求め,配列として返すメソッドを記述しなさい a = [ 3 , 5 , 1 , 4 , 10 , 7 ] result = min_max( a ) printf( "最小値は%dで,最大値は%dです\n" , result[ 0 ] , result[ 1 ] )  | 
回答 | |
| 
配列a = [ 3 , 6 , 2 , 4 , 10 , 7 ]の要素を逆順に入れ換え, 配列として返すメソッドを記述しなさい.  | 
# 配列の要素を逆順に入れ換えるメソッドを書きなさい
a = [ 3 , 6 , 2 , 4 , 10 , 7 ]
b = reverse( a )
b.length.times { |i|
	printf( "%d " , b[ i ] )
}
printf( "\n" );
 | 
回答 | |
| 
問題19のメソッドを修正し,メソッドの中で引数として渡した配列 の要素に対して,逆順に入れ換える操作を施しなさい. (戻り値として,配列は返さないで問題19と同様な動作ができるよ うに修正しなさい)  | 
# 下記のプログラムで問題19と同様な出力がでるように
# メソッド reverse を書き直しなさい
a = [ 3 , 6 , 2 , 4 , 10 , 7 ]
reverse( a )
a.length.times { |i|
	printf( "%d " , a[ i ] )
}
printf( "\n" );
 | 
回答 | |
| 
配列a = [ 3 , 6 , 2 , 4 , 10 , 7 ]を小さい順(正順列)に 並び変える(ソート)メソッドを記述しなさい.  | 
# 配列をソートするメソッドを記述しなさい
a = [ 3 , 6 , 2 , 4 , 10 , 7 ]
sort( a )
a.length.times { |i|
        printf( "%d " , a[ i ] )
}
printf( "\n" )
 | 
回答 | |
| 
配列a = [ 3 , 6 , 2 , 4 , 10 , 7 ]を大きい順(逆順列)に 並び変える(ソート)メソッドを記述しなさい.  | 
# 配列をソートするメソッドを記述しなさい
a = [ 3 , 6 , 2 , 4 , 10 , 7 ]
sort( a )
a.length.times { |i|
        printf( "%d " , a[ i ] )
}
printf( "\n" )
 | 
回答 | |
| 
下記の二つの配列をベクトルととらえ,二つのベクトルの和を 求めるメソッドを記述しなさい a = [ 3 , 6 , 2 , 4 , 10 , 7 ] b = [ 5 , 8 , 1 , 0 , 7 , 10 ]  | 
# 二つのベクトルの和を求めるメソッドを記述しなさい
a = [ 3 , 6 , 2 , 4 , 10 , 7 ]
b = [ 5 , 8 , 1 , 0 , 7 , 10 ]
c = add( a , b )
c.length.times { |i|
        printf( "%d " , c[ i ] )
}
printf( "\n" )
 | 
回答 | |
| 
下記の二つの配列をベクトルととらえ,二つのベクトルの差を 求めるメソッドを記述しなさい a = [ 3 , 6 , 2 , 4 , 10 , 7 ] b = [ 5 , 8 , 1 , 0 , 7 , 10 ]  | 
# 二つのベクトルの差を求めるメソッドを記述しなさい
a = [ 3 , 6 , 2 , 4 , 10 , 7 ]
b = [ 5 , 8 , 1 , 0 , 7 , 10 ]
c = add( a , b )
c.length.times { |i|
        printf( "%d " , c[ i ] )
}
printf( "\n" )
 | 
回答 | |
| 
上記の二つの問題において,二つのベクトルの内積を求めるメソッド を追加しなさい.そして問題23と24のメソッドを用いて,二つのベク トルの和と差を求め,それらの内積を求めるプログラムを記述しなさい. a = [ 3 , 6 , 2 , 4 , 10 , 7 ] b = [ 5 , 8 , 1 , 0 , 7 , 10 ]  | 
# 二つのベクトルの内積を求めるメソッドを記述しなさい
# 二つのベクトルの和を求めるメソッドを記述しなさい
# 二つのベクトルの差を求めるメソッドを記述しなさい
a = [ 3 , 6 , 2 , 4 , 10 , 7 ]
b = [ 5 , 8 , 1 , 0 , 7 , 10 ]
c = add( a , b )
c.length.times { |i|
        printf( "%d " , c[ i ] )
}
printf( "\n" )
d = sub( a , b )
d.length.times { |i|
        printf( "%d " , d[ i ] )
}
printf( "\n" )
printf( "内積は%dです\n" , multi( c , d ) )
 | 
回答 |