プログラミング入門I
2021.11.15

Back to index page



  1. 本日の作業内容

  2. 前回の宿題について

    今回は松江キャンパスが14日に朝から夜まで停電で,学科のシステムはその復旧遅れなどを見越してほぼ終日サーバが停止していたので,日曜日になってようやく宿題に取り掛かった人はちょっとあせったようですね.私のほうの周知も行ったつもりでしたが,Webページの更新ができておらず,皆さんにもご迷惑をおかけしました.今後はなるべく早めに宿題に取り掛かりましょう.

    さて,今回もコンパイルエラーが出てきてしまいました.自分で確認できるはずなので,提出の前に注意してください.出されても消去するだけなので,採点されません.

    コンパイルエラー: b2113 b2118 b2142

    実行結果に表示する学生番号が間違っているものも相変わらず出ています.こちらも注意しましょう.

    wrong num: C002 b2141 そして,一向に改善しないのがインデントの不備です.中括弧が出てきた時のブロックの意識が無い人,また,TABではなくスペースを入れるために不格好に不揃いとなる人の2つのパターンがあるようです.今後反復処理を扱うと,さらにインデントは重要になりますので,早く理解して修正してください.

    インデントの不備: C002 b2103 b2118 b2121 b2125 b2126 b2129 b2143 b2144 b2147 b2150 b2158 b2159

    以下は例によって問題のあるプログラムの例です.参考にしてください.

        switch(date)
        {
            case 3: printf("No class.");break;
            case 6: printf("No class.");break;
            case 7: printf("No class.");break;
            case 13:printf("No class.");break;
            case 14:printf("No class.");break;
            case 19:printf("No class.");break;
            case 20:printf("No class.");break;
            case 21:printf("No class.");break;
            case 23:printf("No class.");break;
            case 27:printf("No class.");break;
            case 28:printf("No class.");break;
            default:printf("Classes are held\n");
        }
    

    case 句の省略を有効に活用して文字数を減らすことも考えて欲しかったです.

      switch(date)
      { 
        case 1:
        case 2:
        case 4:
        case 5:
        case 8:
        case 9:
        case 10:
        case 11:
        case 12:
        case 15:
        case 16:
        case 17:
        case 18:
        case 19:
        case 22:
        case 24:
        case 25:
        case 26:
        case 29:
        case 30:
          printf("Classes are held.\n"); // 発生した数字が授業がある日ならば、"Classes are held."と出力する。
          break;
    
        default:
          printf("No class.\n"); // 発生した数字が授業がない日ならば、"No class."と
    出力する。
          break;
      }
    

    場合の数が多い方と少ない方のどちらを default にすると,入力文字数が少なくなるか,考えて欲しかったですね.

        switch(date){
            case 6: 
            case 7:
            case 13:
            case 14:
            case 19:
            case 20:
            case 21:
            case 27:
            case 28:    printf("%d November 2021: No class\n", date);
                        break;
            default:    printf("%d November 2021: Classes are held\n", date);
                        break;
        }
    

    上のようなものが若干見られました.祝祭日もちゃんと考慮しましょう.

  3. 前回の復習

    前回は switch 文を学習しました.宿題の状況を見ていると,だいたいのことは理解できていると思われます.必要に応じて使用することで,動作の速いプログラムとすることもできますので,知識としては知っておきましょう.

    これまでの条件分岐のまとめとしましては,以下のようなポイントがありますので,引き続き実習を通して確認していきましょう.

    • いくつかの選択肢の中のどれかを選ぶが,何もしないこともある場合
      • if() 文,もしくは,if-else() 文を適宜使用
      • switch() 文では case 句のみでも可

    • いつかの選択肢の中のどれかを必ず実行する場合
      • if() 文では最後に必ず else を用意する
      • switch() 文では最後に必ず default を用意する

  4. 実習

    今回は条件分岐の総まとめです.演習問題でしっかり確認しましょう.

  5. 次回の予習範囲

    教科書のp.59まで予習をしてきてください.

  6. 宿題

    宿題については当日18:00公開予定です.


目次ページに戻る