1

労働者に関するさまざまなデータをテーブルに入力するプログラムを作成しました。(名前、苗字、給料)

最大給与値とこのワーカーの名前を探してコンソールに書き込む手順または関数を作成するのを手伝ってください

ループを使って作ることはできますか?

program labasix;

type firma = record
  name : string;
  lastName : string;
  salary : integer;
end;

var
  svitoch : array[1..12] of firma;
  i : integer;
  countOfWorkers : integer;
begin
  write('Number of workers (not more than 12): ');
  readln(countOfWorkers);
  writeln();

  for i := 1 to countOfWorkers do
    begin
      write('Name: '); readln( svitoch[i].name );
      write('lastName: '); readln( svitoch[i].lastName );
      write('Salary: '); readln( svitoch[i].salary );
      writeln();
    end;

   for i := 1 to countOfWorkers  do
     begin
        { what code must be here ??? }
     end;
end.

こんなのもあるはず

procedure findMax(x, y, z: integer; var m: integer); 

begin
   if x > y then
      m:= x
   else
      m:= y;
   if z > m then
      m:= z;
end;

しかし、xyz 値を取得する方法は?

どうもありがとうございます !

4

2 に答える 2

0

明らかに、現在持っている労働者のリスト (配列) を調べて、最も給与の高い労働者を探す必要があります。

したがって、その配列をパラメーターとして受け入れる関数(プロシージャーではない) を作成します。

この関数は、最初の従業員の給与を変数に格納してから、残りの従業員をループ処理する必要があります。従業員の給与が既に保存されているものよりも高い場合は、保存されている値を新しいより高い値に置き換えて、ループを続けます。リストの最後に到達すると、最高の給与が保存され、関数から返されます。

ヒント: をLow(YourArray)ループの開始点として、またループHigh(YourArray)の停止点として使用して、その配列内の関数に渡すことができるワーカーの数に制限がないようにする必要があります。

于 2014-03-28T23:22:27.953 に答える