情報科学演習
2011.05.09

Back to index page



  1. 本日の作業内容

  2. 小テストの結果について

    小テストでも提出の不備が多く見られました.引き続き注意してください.また, 内容に関しては,不要な変数を用意する傾向が強く見られました.余分な変数は 使用しないで下さい.変数は後で使用するので値を入れておくために必要なもの で,ただ単に算術演算を行うだけの場合にはそのまま数値を式の中に入れてくだ さい.

        a = rand() % 5 + 1;
        b = a * 2;       <-- この変数 b は不要
    

  3. 前回の復習

    さまざまな乱数を試しました.これからも必要に応じて種々の乱数を発生させま すので,分からない人は早めに質問をして確認しておきましょう.

  4. if

    今回からは「制御構造」というプログラミングの重要な要素を含む学習です.教 科書をよく読んでしっかり理解してください.以下に特に注意する点を挙げてお きます.

    • 処理の流れ

      前回までのプログラムでは,プログラムの1行目から順に処理を行って,最後に return(0); が来て,全ての処理を終わり,画面をプロンプトに 戻してくれていました.if のような制御構造が入ると,全ての 行を順番に実行するのではなく,場合によって実行するかしないか分かれ ることになります.必ず実行される行とそうでない行があることに注意し てください.それを分かりやすくするのが「フローチャート」です.

    • フローチャート

      教科書の図3.1からいわゆるフローチャートの紹介が始まっています.プログラ ムにおける処理の流れを表したもので,ややこしい処理もフローチャートで理解 するとわかりやすくなるので,今後は必要に応じて自分でも作るようにしてくだ さい.

    • 関係演算子

      大小関係を判断する演算子です.頻繁に使用しますので,覚えておいてください.

    • 等価演算子

      等しいか等しくないかを判断する演算子です.ここで,高い頻度で間違える可能 性があるのが「等しい」かを判断する == です.等号一つでは「代入」 なのですが,ときどき間違えますので,注意してください.例えば,以下のプロ グラムは動作がおかしくなります.

      #include <stdio.h>
      
      main()
      {
          int n = 1;
      
          if(n = 2)
              printf("OK\n");
      
          return(0);
      }
      

    • ブロック

      教科書のp.24にブロックの紹介があります.if 文においては,if の中の処理が1行だけであるならばブロックを表す中括弧 { } は省略可能ですが,複数の処理が入ると中括弧が必須になります.ま た,ブロック内ではインデント(字下げ)を行ってください.

  5. 実習