総合問題

 

1. プログラム例(最大値検索)

  1. <?php

  2. header("Content-Type: text/plain; charset=X-SJIS");


  3. $fp = fopen("sample.txt", "r");


  4. $num = 0;

  5. while(fscanf($fp, "%d %d %f", $name[$num], $popu[$num], $area[$num]) > 0) {

  6.           printf ("%d\t%5d\t%12.1f\n", $name[$num], $popu[$num], $area[$num]);

  7.             $num ++;

  8. }

  9. printf ("\nnum = %d\n", $num);


  10. fclose($fp);


  11. $pmax = $popu[0];

  12. for($i=1; $i<$num; $i++) {

  13.      if($pmax < $popu[$i]) {

  14.           $pmax = $popu[$i];

  15.           $maxnum = $i;

  16.      }

  17. }


  18. printf ("Max = %d\t%5d\t%5.1f\n", $name[$maxnum], $popu[$maxnum], $area[$maxnum]);

  19. ?>




2. プログラム例(並べ替え)

  1. <?php

  2. header("Content-Type: text/plain; charset=X-SJIS");


  3. $fp = fopen("sample.txt", "r");


  4. $num = 0;

  5. while(fscanf($fp, "%d %d %f", $name[$num], $popu[$num], $area[$num]) > 0) {

  6.           printf ("%d\t%5d\t%12.1f\n", $name[$num], $popu[$num], $area[$num]);

  7.           $num ++;

  8. }

  9. printf ("\nnum = %d\n", $num);


  10. fclose($fp);


  11. for($j=0; $j<$num; $j++) {

  12.      $pmax = $popu[$j];

  13.      for($i=$j+1; $i<$num; $i++) {

  14.           if($pmax < $popu[$i]) {

  15.                $pmax = $popu[$i];

  16.                $popu[$i] = $popu[$j];

  17.                  $popu[$j] = $pmax;

  18.           }

  19.      }

  20. }


  21. for($i=0; $i<$num; $i++) {

  22.      printf ("%5d\n", $popu[$i]);

  23. }

  24. ?>


並べ替えのアルゴリズムは,他にもたくさんある.今回は最大値検索のアルゴリズムを応用して作ったものだが,他のアルゴリズムについても勉強して欲しい.

  1.      例題を改良し,人口密度の大きい順に県の番号,人口,人口密度を出力プログラムを作成しなさい.

  2.           出力は,県の番号,人口,人口密度の順で出力されるものとする.

  3.     変更したプログラムは,"p08.php"という名前で保存しなさい.

  4.     保存場所は,~/local_html/Program/p08.php

  5.     このプログラムをWebブラウザで確認しなさい

  6.           o http://www.wsk.kochi-tech.ac.jp/username/Program/p08.php





課題