Top / プログラミングおよび実習II / 20061006

[ 高橋のページ ] [ プログラミングおよび実習II2006? ]

プログラミングおよび実習II 2006年10月6日 [edit]

今日の課題: 単純選択法による並べかえのプログラム [edit]

テストの得点を表すデータがいくつか与えられたときに,

  1. それらを配列に格納する
  2. それらを単純選択法によって昇順に並べかえる
  3. できた配列の内容を表示する

というプログラムを作りましよう.前回の score1.c などと同様に,

  • データは整数,データ件数は最大50
  • はじめにデータ件数を入力し,次に各データを順番に入力する

こととします.

課題1006-A(締切: 今日の実習開始後すぐ,締切後チェック対象外) [edit]

  • 10月5日の演習問題のプリントを提出し,チェックを受けてください.

課題1006-B(締切: 次回の実習終了時) [edit]

  • 課題Aを元にしてプログラムを完成させ,動作を確認しましょう.
  • 作成するソースファイル名は selectionsort1.c として下さい.
  • 以下のことに注意してください.
    • 入力部分は score1.c 等のものを流用すると楽でしょう.
    • 次の関数 PrintData() を使い,元のデータ,並べかえ途中の様子,結果,を出力するようにしてください.並べかえ途中の様子を表示するには,二つの要素の交換の直後に PrintData() を呼ぶようにしたらよいです.
      void PrintData(int x[], int n)
      {
        int i;
      
        for(i = 0; i < n; i++){
          printf(" [%3d]", x[i]);
        }
        printf("\n");
      }
      

実行例はこんな感じ.

得点は何件ありますか? : 4
0番目の得点を入力してください : 44
1番目の得点を入力してください : 33
2番目の得点を入力してください : 22
3番目の得点を入力してください : 11

##### 元のデータ #####
 [ 44] [ 33] [ 22] [ 11]

##### 並べかえ中 #####
 [ 11] [ 33] [ 22] [ 44]
 [ 11] [ 22] [ 33] [ 44]
 [ 11] [ 22] [ 33] [ 44]

##### 並べかえ結果 #####
 [ 11] [ 22] [ 33] [ 44]

課題1006-C(おまけ,締切: 今日の実習終了時,締切後チェック対象外) [edit]

  • これはおまけ課題です.課題Bができた人が対象です.やらなくても実習成績の減点はありませんが,やると加点があるでしょう.
  • 課題Bのプログラムをコピーして,「最大値を末尾にもっていく」やり方で昇順にソートするものに書き換えましょう
  • 作成するソースファイル名は selectionsort2.c として下さい.

次回講義までの宿題 [edit]

次回の講義では,バブルソートのプログラムを考えます

  • バブルソートってどんなんやったか,「アルゴリズムとデータ構造I,II」の講義資料等で復習しといて下さい

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-08-13 (水) 13:45:19 (1709d)