剰余計算

私こと、Sylphideは今までも申し上げてきた通り、TA (Teaching Assistant: 大学の助手) を仕事 (というかバイト) にしております。
私が担当させていただいているのは「基礎情報処理」という教科です。
簡単に申し上げると、コンピュータを使って情報を処理できるようになりましょうという基本教科なわけですが、この授業ではC言語、またはFortran言語を利用して数値演算を行うという方法を取っています。
情報処理ならWord・Excel等でも事足りるのですが、Excel等でも、数値計算のときに計算式を入力します。
それを、簡単なプログラムを作りながら書式を学んでいこうというのが、この授業の大まかな趣旨であり、プログラムを作成することによってコンピュータがどのような動作をするのかを体験しながら授業を進めていくのです。
そして、今日は月曜日組の4回目の授業となったわけですが、剰余計算、つまり余りを求めるプログラムを生徒に書いてもらいました。(もちろん、やらせたのは私ではなく、担当の先生ですが)
たとえば、Fortranなら次のようになります。(規格に則ってるわけではないので細かいところは気にしないでください)

C—+—-+—-+—-+—-+
      IMPLICIT NONE
 
C     整数型で変数を定義
      INTEGER A,B,SYOU,AMARI
 
 
C     変数AとBの値をキーボードから入力させる     
      WRITE(*,*) ‘A=’
      READ(*,*) A
      WRITE(*,*) ‘B=’
      READ(*,*) B
      WRITE(*,*) ‘A=’,A,’ B=’,B,’が入力されました。’
 
C     剰余を求める演算
      SYOU=A/B
      AMARI=A-SYOU*B
 
C     演算結果を出力
      WRITE(*,*) A,’÷’,B,’=’,SYOU,’…’,AMARI
 
      STOP
      END

出力結果 (例) Aに25、Bに7を代入
 
A= 25
B= 7
A= 25 B= 7 が入力されました。
25 ÷ 7 = 3 … 4

商はA/Bと理解している人は多いのですが、剰余を式にしてくださいと言っても理解していない方が結構います。
当然ですが、剰余計算なんて頭の中で勝手にやってしまえるようになっていますので、いきなり式にしてくれと言われてもすぐには無理というものです。
というわけで、いつもこういう教え方をしています。
  1. A=25と代入
  2. B=7と代入
  3. 25/7を頭の中で計算させる。
  4. 暗算の結果3…4が得られる。
  5. どういう風にしてそれを求めたか考えさせる。まず、プログラムに商を求める式を書かせる。
  6. "A/B=SYOU"と書いたらAとBを代入すると"25/7=3"となることを確認させる。 (整数型で宣言しているので、小数点以下は切り捨て)
  7. 剰余を4にするには25からいくらの数字を引いたら良いか、考えさせる。"25-21=4"と答えたら今までの計算の中に21となるような数字がないか探させる。
  8. A=25B=7の場合は"SYOU*B"で21という結果が得られるということに気づいたら、あとはそれを一般式として書かせる。"A-SYOU*B"
私の言い回しがヘタなので、書いてることが意味不明になっているかもしれませんが、大抵の子はこれでわかってくれます。
ところが、今日はツワモノが現れました。
A(25)/B(7)=SYOU(3)ということは理解してくれている (ハズ) のですが、SYOU(3)*B(7)=21ということを理解してくれなかったのです…orz
さすがに焦りました。
これを早く終わらせないと昼食が食べられない!(ソレだけかよっ
授業が終わって30分ぐらい説明し続けたのですが、結局A-SYOU*Bで剰余が出てくることを理解してくれないまま、彼は去りました…
結局、昼食を食べることなく午後の授業へと臨みました…
私の教え方がマズかったのかとちょっと自信を無くしましたが、午後のクラスの子は普通にわかってくれたので、きっと教え方自体は合っているのだと信じたいです。
 
以上、仕事の話でした。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中