情報科学概論
Aクラス 宿題 2005.11.21

Back


宿題においても, 解答用紙 を使用する.この書式で解答を提出すること.

設問

Rubyで扱う文字列は,一文字ずつの文字データが並んだ「配列」と呼ばれる構造 になっている.例えば,次のスクリプトに示すように,[ ] 内に0か ら始まる順番を示す数字を指定すると,必要な文字を指定できる.

str = "abcde fghi 123"

puts str[4]
puts str[3,10]

一文字だけ切り出して表示しようとすると,chr メソッドを作用させ て,文字コードから実際の文字に変換する必要があります.文字の範囲をカンマ を用いて指定する場合には2番目の出力のように,そのまま文字が表示されます.

以上のことを用いて,次に示す文字列について,乱数で発生させた任意の位置の 文字がアルファベットであるか,数字か,あるいは,スペース(空白文字)であ るかを判定し,例のように表示するスクリプトを case 文を用いて作 成せよ.また,出力には,printf を用いること.

指定する文字列

str = "ABCD efghijk LMNOP qrstu VWXYZ 01234 abcd EFGHIJK lmnop
QRSTU vwxyz 56789"

結果表示の例

文字列strの3番目の文字は "D" であり,アルファベット.

文字列strの31番目の文字は "0" であり,数字.

文字列strの12番目の文字は " " であり,スペース.

ここで,文字列の順番を示す数字は0から始めることとしている.


解答例

str = "ABCD efghijk LMNOP qrstu VWXYZ 01234 abcd EFGHIJK lmnop QRSTU vwxyz 56789"

num = rand(73)

case str[num].chr
when "0","1","2","3","4","5","6","7","8","9"
  result = "数字"
when " "
  result = "スペース"
else
  result = "アルファベット"
end

printf "文字列strの%d番目の文字は \"%s\" であり,%s.\n", num, str[num].chr, result


情報科学概論
Bクラス 宿題 2005.11.21

Back


宿題においても, 解答用紙 を使用する.この書式で解答を提出すること.

設問

Rubyで扱う文字列は,一文字ずつの文字データが並んだ「配列」と呼ばれる構造 になっている.例えば,次のスクリプトに示すように,[ ] 内に0か ら始まる順番を示す数字を指定すると,必要な文字を指定できる.

str = "abcde fghi 123"

puts str[4]
puts str[3,10]

一文字だけ切り出して表示しようとすると,chr メソッドを作用させ て,文字コードから実際の文字に変換する必要があります.文字の範囲をカンマ を用いて指定する場合には2番目の出力のように,そのまま文字が表示されます.

以上のことを用いて,次に示す文字列について,乱数で発生させた任意の位置の 文字がアルファベットであるか,数字か,あるいは,スペース(空白文字)であ るかを判定し,例のように表示するスクリプトを case 文を用いて作 成せよ.また,出力には,printf を用いること.

指定する文字列

str = "abcd efghijk lmnop qrstu vwxyz 01234 ABCD EFGHIJK LMNOP
QRSTU VWXYZ 56789"

結果表示の例

文字列strの3番目の文字は "d" であり,アルファベット.

文字列strの31番目の文字は "0" であり,数字.

文字列strの12番目の文字は " " であり,スペース.

ここで,文字列の順番を示す数字は0から始めることとしている.


解答例

str = "abcd efghijk lmnop qrstu vwxyz 01234 ABCD EFGHIJK LMNOP QRSTU VWXYZ 56789"

num = rand(73)

case str[num].chr
when "0","1","2","3","4","5","6","7","8","9"
  result = "数字"
when " "
  result = "スペース"
else
  result = "アルファベット"
end

printf "文字列strの%d番目の文字は \"%s\" であり,%s.\n", num, str[num].chr, result


Back