プログラミング入門 情報科学演習
2016.02.01

Back to index page



  1. 本日の作業内容

  2. 宿題の結果について

    今回はコンパイルエラーや無限ループも無くわりと良かったのですが,慣れからか解答用紙の不使用が再び増えたのが残念でした.注意しましょう.

    以下は気になるプログラムの一例です.参考にしてください.

            for(i=0; i<=3; i++){
                    for(j=i+1; j<=3; j++){
                            if(score[i][0] < score[j][0]){
                                    num = score[i][0];
                                    score[i][0] = score[j][0];
                                    score[j][0] = num;
                                    num = score[i][1];
                                    score[i][1] = score[j][1];
                                    score[j][1] = num;
                            }
                    }
                    printf("%s(%d) ",class[score[i][1]],score[i][0]);
            }
    

    上の例のように並べ変えと表示を同時に行っているものがありましたが,ややこしくなるのであまり推奨しません.

            for(j=0;j<=3;j++){
                    for(i=j+1;i<=3;i++){
                            if(score[j][1]<score[i][1]){
                                    ts=score[i][1];
                                    score[i][1]=score[j][1];
                                    score[j][1]=ts;
                                    for(k=0;k<=11;k++){
                                            cl[k]=class[i][k];
                                    }
                                    for(k=0;k<=11;k++){
                                            class[i][k]=class[j][k];
                                    }
                                    for(k=0;k<=11;k++){
                                            class[j][k]=cl[k];
                                    }
                            }
                    }
            }
    

    何をしたいのかわかりませんでした.配列 cl も意味がわかりませんでした.

            for(i=0;i<=3;i++){
                    score[i][2]=rand()%100;
                    printf("%s(%d)  ",class[i],score[i][2]);
            }
    
            printf("\n");
    
            for(i=0;i<=3;i++){
                    for(j=i;j<=3;j++){
                            if(score[i][2]<score[j][2]){
                                    tmp=score[i][2];
                                    score[i][2]=score[j][2];
                                    score[j][2]=tmp;
                            }
                    }
                    printf("%s(%d)  ",class[i],score[i][2]);
            }
    

    配列 score の添字のうち,後ろのものには2番目はありません.

    解答用紙不使用: b1561 b1578 b1435

    インデントの不備: b1519 b1543 b1570 b1020 b1217

    学生番号無し: b1505

    ハイフンライン無し: b1505

    解答用紙に名前無し: b1448

  3. 期末試験について

    期末試験ですが,いつものように柱の部分の席を避けて座ってください.席の指定はありません.また,教科書やノートの持込は可能ですし,過去のテキストや種々の解答例 \(^o^)/ の参照も可能です.ただし,他の学生の画面を見るのは禁止です.

    携帯電話は電源を切ってカバンの中に入れてください.携帯電話が鳴動した場合には不正行為として扱うことがありますので,注意してください.

    また,4コマ目と5コマ目の受講生の入れ換えですが,短期間で不正な行動を制限する方法として以下のようにしますので,御了解下さい.

    • 1年生は,試験終了後は教室前側の扉から廊下に出て,東側エレベータもしくは非常階段で移動してください.西側へは移動できません.

    • 過年度生は1年生が退室するまで教室西側出入口付近および廊下で待機してください.1年生が退室した後着席できます.また,過年度生は座る際にとなりとはPC1台分空けて座ってください.

  4. 解答用紙

    本日の作業で,模擬的に練習する解答用紙はこれを使用します.これ自身がプログラムですので,使い方に注意してください.

    提出の必要はありませんが,コンパイル等の作業は必ず行ってください.

  5. 実習

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

  6. メンター学習室について

    2/3(水)が最後のメンター学習室となります.それ以外の時間でも質問などありましたら,縄手まで連絡してください.


目次ページに戻る