dポイントプレゼントキャンペーン実施中!

ファイルからデータを読み込み,それを整列し,入力された値をデータの中から二分探索によって探索することを繰り返すプログラムが作りたいのですが,どのように記述すればよいのか分かりません。教えてください。

A 回答 (2件)

ひょっとして二分探索のアルゴリズムをPascalで


どう記述するか見当がつかないとかいう話だったりしますか?

program ex01(input, output);
var data : array [1..20] of integer;

procedure readdata();
var i, v: integer;
f : text;
begin
(* assign(f, 'sample.txt');*)
reset(f, 'sampledata.txt');
for i:=1 to 20 do
begin
readln(f, v);
writeln(v);
data[i] := v;
end;
end;

procedure sortdata();
var i: integer;
begin
for i:=1 to 20 do
begin
(* 省略 *)
writeln(data[i]);
end;
end;

procedure search(v: integer);
var low, high, mid: integer;
begin
while low < high do
begin
mid := (high - low) div 2 + low;
(* 省略 *)
end
end;
begin
(* read data *)
writeln('#####');
readdata();
(* sort *)
writeln('#####');
sortdata();
(* search *)
search(15);
end.

てな感じで組めば良いのではないですか?
検索対象の値の入力は工夫の余地ありですけど。

ファイルのオープンの手続きは処理系によって
違うようなので参考程度に。
    • good
    • 0

とりあえず、手順の各部分でどうするかはわかってますか?



・ファイルからデータを読み込む
・整列する
・二分探索によって検索を行う

データの種類(文字列とか整数)や個数についての
情報はないのですか?

この回答への補足

整列する方法は分かっています。
データは20個の整数です。

補足日時:2007/06/25 19:02
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!