情報科学演習
2012.10.29

Back to index page



  1. 本日の作業内容

  2. 小テスト

    最初に小テストを実施します.レポート提出システムを利用して行いますので,ログインして待っていて下さい.

  3. 宿題について

    今回はコンパイルエラーの答案が一つもありませんでした.大変うれしく思います.ただ,解答の内容は問題があるものが多く見られ,残念です.以下,例をいくつか挙げております.
                    printf("Odd number between 1 and 99: %d\n\n", rand() % 99 + 1 );
    

             printf("Odd number between 1 and 99: %d\n", rand() % 50 + 29);
    

    上の2つは絶対にやっちゃだめなものです.奇数の探索を何もやっていません.残念ながら0点になります.あくまで奇数を表示する努力をしてください.無理矢理な方法もたくさん見られましたが,きちんと奇数が表示されればそれなりに点はつけています.

                           printf("Odd number between 1 and 99 : %d\n", rand() % 50 * 2 + 1);
    
            printf("-----------------------------------------------\n");
    
            int num;
    
            num  = rand();
    
    
            return(0);
    

    この答案には最後の return(0); の前に余分なものがあります.こういう必要の無いものがあるときは減点します.

            int a ,b=1,c;
            a=rand() % 50;
            c=a*2+b;
    

    上の例は計算自体は間違っていないのですが,変数を3つも使う理由がありません.なるべく変数を増やさないようにしましょう.

            printf("_______________________%c\n\n");
    

    これは最後のハイフンラインのさらに最後に変なものが入っていますので,画面にごみが出ます.注意しましょう

  4. 前回の復習

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

  5. 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行だけであるならばブロックを表す中括弧 { } は省略可能ですが,複数の処理が入ると中括弧が必須になります.ま た,ブロック内ではインデント(字下げ)を行ってください.

  6. 実習

    実習の演習問題は当日ご案内します.

  7. 次回の予習範囲

    教科書のp.33まで予習をしてきてください.特に,論理演算子のところは重要で すので,しっかり学習してください.

  8. 宿題

    授業の終わりに宿題の案内をします.ただ し,問題を見ることができるのは明日以降です.

    C7クラスの宿題に関して事故がありましたので,宿題の問題閲覧開始を31日の10:00からとさせていただきます.すみません.

    今回の宿題では整数型の割算と剰余を上手に使う必要があります.例えば,25を10で割るといくらになるか,また,25を10で割った余りはいくらになるか,よく考えてみてください.

  9. メンター学習室

    内容も宿題も段々と難しくなっていきます.つまづく前にメンター学習室を活用して十分にプログラミング練習をしましょう.開設時間は金曜日の14:30-16:00です.


目次ページに戻る