問題番号 | 問題 | ヒント | 回答 |
整数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 ) ) |
回答 |