情報科学演習
2011.06.20

Back to index page



  1. 本日の作業内容

  2. 節電について

    全国各地で今夏の節電への協力が求められています.中国電力は電力供給に余力 のある数少ない会社ですが,関西電力への協力依頼なども求められており,我々 の節電に対する行動も重要になってきます.

    この教室は電力を大量に使用する施設ですが,各自節電に留意して使用してくだ さい.照明と空調が一番大きな問題と思いますが,特に空調は,設定温度を大学 推奨の28℃もしくはせいぜい27℃で使用するよう心がけてください.

  3. 宿題の結果について

    • 良くない例

      次のものはインデントが変です.

                      for(j=1; j<=6 - i; j++){
                              a = rand() % 21 ;
                                              b = b + a;     何故この行がインデントされる?
                                                      printf(" %2d",a);     なぜこの行も?
      

      次のは余分な変数 c が定義されています.この変数は使用されていま せん

              int a , b, c, d, e=0;
      
              for(a = 1; a <= 5; a++){
                      e = 0;
                      for(b = a; b <= 5; b++){
                              d = rand() % 20 + 1;
                              printf(" %2d",d);
                              e += d;
                      }
                      printf(" --- %d \n",e);
              }
      

      次のは何故か3重ループになっていました.宿題のプログラムは2重で十分です.

              for(i=1;i<=5;i++){
                      for(j=5;j>=i;j--){
                              for(k=5;k>=j;k--)
      

      次のはインデントが少しおかしいものです.前回も指摘しましたが,このパター ンがいくつかありました.

              for(b=1; b<=5; b++){
                      gokei=0;
                      for(c=5; c>=b;c--){
                              a=rand() % 20 + 1;
                              printf("%2d ",a);
                              gokei += a;
                      }
              printf("--- %2d\n",gokei);    この行が下がっていない
              }
      

      次のは,不要な if 文があります.%2d を使用すればこのよ うな冗長な処理は不要です.

                              if(num >= 10)
                                      printf("%d ", num);
                              else
                                      printf(" %d ", num);
      

      次は自分の学生番号になっていないものです.

              printf("My student number: s104099\n\n");
      

      次のは %f ですが,整数型しか扱っていない場合には %d で 十分です.

              printf(" --- %2.0f \n",sum);
      

    • 学生番号もハイフンラインも無し.

  4. 前回の復習

    for 文の式2の終了条件が定数でなく,変数になる場合を練習しました. これにより2次元の多様な表現が可能となります.今後も使用しますので, 覚えておいてください.

        for(i=1; i<=5; i++)
            for(j=1; j<=i; j++)
    

    上のように j に関する終了条件を i に依存させることで, 以下のような変数の変化が実現できます.

    (1,1)
    (2,1) (2,2) 
    (3,1) (3,2) (3,3) 
    (4,1) (4,2) (4,3) (4,4) 
    (5,1) (5,2) (5,3) (5,4) (5,5)
    

  5. while

    while 文は,for 文と異なり,終了条件(式2)しか指定しま せん.その分,自由度が高いので,熟練した人はよく使用します.最初は for 文の方が簡単なので,この授業では基本的に for 文を使用しますが,知っておいて損はありません.

  6. 実習