締切 6月9日(火曜日)
宛先 ruby-06-05@e.koeki-u.ac.jp
以下の問題から2問選び、解答せよ。ただし3、4、5番から 選ぶときはそのうちのどれか1つとする。
自分の誕生日の西暦年、月、日を全部足した数を 2進数と16進数に直せ。(2点)
ローマ字で書いた自分の名前の文字列を全て文字コード (16進数)で表記せよ。(2点)
全てアルファベットからなる文字列を読み込み、
各文字をアルファベットの次の文字に変えた文字列を
出力するプログラム shift-1.rb
を作れ。
ただし、`z' の次の字は `a' とする。
たとえば、"hal"
を入力すると、
"ibm"
と出力される。
ヒント: 変数 x
に文字列が入っているとき、
x[0]
には最初の文字の文字コードが入っている。
したがって x[0]+=1
とすると、文字列の
最初の文字がアルファベット的に次の字になる。また、
x[ ]
の添字は0〜x.length-1
の範囲となる。(3点)
前問 shift-1.rb
は必ず「1字後ろ」にずらした
文字列を生成するが、これを改良し何文字分後ろにずらすかを
選べるようなプログラム shift-n.rb
を作れ。(4点)
前問 shift-n.rb
で負の整数を指定すると
その数ぶんだけ前にずらした文字列を生成できるプログラム
caesar.rb
を作れ。aから1つ戻った文字は
zとする。(4点)
前問 caesar.rb
を利用し、誰か友達と
英語(またはローマ字)の暗号文によるメイルの交換をし
そのやりとりの様子を示せ。
※: 2人の使うプログラムが 違う構成のものである方が高い評価となる。(5点)
括弧内は最大点数。
Subjectに
#8 内部表現 (解いた番号)
と書き、本文の先頭に
氏名: | 公益太郎 |
学籍番号: | c108xxx |
クラス: | XX |
解答した番号: | XX番 |
共同実験者: | 氏名(6の場合) |
のような書式で署名等を入れて、指定した宛先に送ること。 その後のレポート本体は
の順で書くこと。他者と構成が同じプログラムは大きく減点する。