情報科学演習
2010.07.12

Back to index page



  1. 本日の作業内容

  2. 前回の宿題について

    前回の宿題ですが,以前に今後はやってはいけないと,言っていた方法を使う人 が多くて残念です.平均値を求めるときに,自分で全ての要素を書き出して計算 している人が大半でした.(満点は3名のみ)

    前にも言いましたが,プログラミングは面倒臭い計算をコンピュータにやっても らうことが大事です.今回の移動平均は3つの平均でしたが,膨大なデータを処 理する際に,100個の数値の平均だったらどうしますか?常に,データが大量に ある場合を想定していてください.

  3. 期末試験について

    いよいよ次回(7/26)は期末試験です.手続的なことについて以下に書いておきま すので,ミスの無いように対応をよろしくお願いします.

    • 試験時間について

      解答準備や退室作業などありますので,実際の試験時 間は80分になる予定です.

    • 遅刻について

      C7クラスの人は16:10分までに入室できるよう準備しておいてください.それ以 降の入室また遅刻は認められませんので,遅れないように注意してください.

    • 途中退室

      C6クラスの人は途中退室は出来ませんので,最後まで720教室に居てください. 気分が悪くなった場合には別途対応しますので,その場合には手を挙げて教えて ください.

    • 電子メールについて

      解答用紙の提出は電子メールで行いますが,電子メールの利用は提出時(試験終 了5分前)に限定します.その時間以外に電子メールアプリが起動している場合に は不正行為とみなしますので,注意してください.

    • クラス入れ換え

      C6クラスの試験が終了すると,受講生全員前のスペースに集合してもらいます. そして,前の扉からエレベーターホールの方向へのみ移動可能ですので,東側エ レベータもしくは非常階段を使用して移動してください.

      C7クラスの人はC6クラスの試験終了後,教室後方のドアが開いたら入室を開始し て,後ろのスペースに待機していて下さい.C6クラスの学生が退室した後に着席 可能です.

    • 履物

      C6クラスの人は入室時に履物を教室前方の三和土に置くか,自分で保管するようにしてください.退 室時には下足箱の方には進めません.

    • 提出時間厳守

      試験終了の合図をして以降の解答の提出は認められませんので,必ず時間内に提 出してください.

    • コンパイル不能および動作不能の答案について

      コンパイルできない答案や,動作させると適切に動かない,終了しないなどの不 備のある答案は採点しませんので,注意してください.

    • 解答用紙

      解答用紙はこれを使用してください.解答用紙自体がC言語のプログラムにすで になっていますので,扱いに注意してください.

      学生番号と名前は試験前にあらかじめ準備しておいてください.また,コメント 行の部分も消さないでください.もちろん,printf の行は消してはダ メです.

    • 提出方法

      提出方法はいつもの通りです.件名が違っていると採点しませんので,そこも注 意してください.今回の件名は以下のようになります.

      final_c6_s0940** (C6クラス)
      final_c7_s0940** (C7クラス)

  4. 2配列

  5. 実習

    1. 添字を式にする練習

      教科書p.52の5.1に書いてあるように,配列のデータを区別するのに使用する番 号を「添字」と言います.英語ではindexです.ここには順番を表す数字がきま すが,式が来ても構いません.例に以下のような作業をしてみましょう.

      適当な文字列を用意して,その文字列の順序を反転しましょう.下のようにして みましょう.

      Original string is "World Cup".
      Reversed string is "puC dlroW".
      
      

      ヒント

      次のような文字列の配列を用意して,for ループで逆から表示するこ とが可能です.

          char str[10] = "World Cup";
      

      また,配列に入っている文字を printf で1文字ずつ表示する場合%記 法では,文字を表す %c を使います.

      解答例(18行)

    2. 文字型配列の活用

      教科書p.67の(2)にあるように,数種類の文字列を配列にすることで使いやすく なります.以前に作ったトランプの例を改良 してみましょう.

      用意するのは次のような配列です.

          char suit[4][9] = {"Spades", "Hearts", "Diamonds", "Clubs"};
          char num[13][3] = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
      

      結果表示は同じように下のようにしましょう.

      Your card is Q of Spades.
      

      解答例(20行)

    3. 2次元配列の実習

      教科書p.60の例3では数値を値に持つ2次元配列の初期化が出ています.これを応 用して,一桁の正の整数からなる5×5の数値列を作り,左上から右下へ,と,右 上から左下への対角線上の数値の和を求めましょう.結果は以下のようになるも のとします.

       2 4 1 8 2
       1 8 2 7 5
       2 7 5 4 3
       5 4 3 9 1
       3 9 1 3 1
      
      Sums of diagonal elements are 25 and 21.
      
      

      ヒント

      ループを活用して自己代入で和を求めることができますが,その際に数値配列の 添字に式を使うことで簡単になります.

      解答例(30行)

    4. パターン表示

      文字列 World Cup を使用して,下に示す ような表示を作りましょう.配列としては次のものを使うようにします.

          char str[] = "World Cup";
      

      ヒント

      左上を原点とする座標系として考えると,直線の式 y = ax + b を考 えるとわかりやすくなります.

      いくつかの表示パターンが簡単に作れます.

       W               W
         o           o
           r       r
             l   l
               d
      
           C       C
         u           u
       p               p
      
      

      解答例(22行)

               W
             o   o
           r       r
         l           l
       d               d
      
         C           C
           u       u
             p   p
      
      
      

      解答例(22行)

  6. 宿題

    授業の最後に宿題の案内をしますので,注意していて下さい.


目次ページに戻る