Помощь - Поиск - Пользователи - Календарь
Полная версия: Записи!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
programerNOX
Задание:
Составить програму упорядоченея списка бригады в порядке убывания производительности(ведомость сделать в файле);
То что я зделал:
Program Pr1;
  uses crt;
  const
      n=3;
      kolchasov=8;
  type
      y=record
        nn:integer;
        fio:string[15];
        kol:real;
        vp:array[1..8] of real;
        vrem:real;
        proiz:real;
      end;
      r=array[1..n] of y;
  var
     x:r;
     i,j:integer;
     s:y;
     fl:boolean;
  Procedure vvod;
    var
      i:integer;
      f:text;
  begin
      clrscr;
      writeln('Создание файла');
      readkey;
      assign(f,'c:vedomost.txt');
      rewrite(f);
      writeln('Файл создан­');
      readkey;
      for i:=1 to n do
        begin
            x[i].nn:=1;
            textcolor(3);
            writeln('Заполнение ведомости');
            write('ФИО : ');
            readln(x[i].fio);
            writeln(f,'ФИО : ', x[i].fio);
            write('Количество часов за смену : ');
            readln(x[i].kol);
            writeln(f,''Количество часов за смену :',x[i].kol:4 :2);
            write('Выпускаемая продукцыя : ');
             for j:=1 to kolchasov do
               begin
                 writeln('за ', j ,' час  ');
                 readln(x[i].vp[j]);
                 writeln(f,'за ',j,'час',x[i].vp[j]:4 :2);
               end;
             write('Время простоя : ');
             readln(x[i].vrem);
             writeln(f,'Время простоя : ', x[i].vrem);
             write('Произ. деталей в еденицу времени :');
             x[i].proiz:=x[i].vp[kolchasov]/(x[i].kol-x[i].vrem);
             writeln(x[i].proiz:4 :1);
             writeln(f,'Произ. деталей в еденицу времени :',x[i].proiz);
        end;
        close(f);
  end;
begin

  vvod;
end.

Как мне упорядочить список и как вывести содержымое списка(что находится в файле) на екран???
Пожалусто помогите к завтрешнему дню!
GLuk
Если ишшо не поздно:


Program WorkSort;
Uses
    Crt;
Const
     N        = 3;
     HourCnt  = 8;
     WaitKey  = True;
     FileName = 'blank.bin';
Type
    Blank = record
    NN:Integer;               
{??? What's that?????????!!!!!!!! Что это за ХЕРНЯ?! %)}

    FIO:string[15];           {”?Ћ}
    HCnt:Real;                {Љ(r)«ЁзҐбвў(r) з б(r)ў ў ᬥ­г}
    VP:array[1..8] of Real;   {Љ(r)«-ў(r) Їа(r)¤гЄжЁЁ §  !Є ¦¤л(c)! з б ўаҐ¬Ґ­Ё??}
    DownTime:Real;            {‚аҐ¬п Їа(r)бв(r)п}
    Production:real;          {Џа(r)Ё§ў(r)¤ЁвҐ«м­(r)бвм ¤Ґв «Ґ(c) ў з б}
    end;

Var
   X:array[1..N] of Blank;
   i,j:integer;
   F:File of Blank;

Procedure InitData;
var
   S:String;
begin
     S:='?ў ­(r)ў X.X.';
     For i:=1 to n do
     begin
          X[i].NN:=1;
          S[8]:=Chr(Random(27)+128);
          S[10]:=Chr(Random(27)+128);
          X[i].FIO:=S;
          X[i].HCnt:=Random(18)+6;
          for j:=1 to HourCnt do X[i].VP[j]:=j+3;
          X[i].DownTime:=Random(2)+Random;
          x[i].Production:=x[i].vp[HourCnt]/(x[i].HCnt-x[i].DownTime);
   end;
end;

Procedure ShowData;
begin
     ClrScr;
     For i:=1 to n do
     begin
          TextColor(3);
          WriteLn('======================================================');
          writeln('”?Ћ : ', x[i].fio);
          Writeln('Љ(r)«ЁзҐбвў(r) з б(r)ў §  ᬥ­г : ',x[i].HCnt:4 :2);
          WriteLn('------------------------------------------------------');
          for j:=1 to HourCnt do Writeln('‡  ',j,' з б : ',x[i].vp[j]:4 :2);
          writeln('‚аҐ¬п Їа(r)бв(r)п : ', x[i].DownTime:4 :2);
          write('Џа(r)Ё§ў(r)¤ЁвҐ«м­(r)бвм ¤Ґв «Ґ(c) §  Ґ¤Ё­Ёж㠢६Ґ­Ё :');
          WriteLn(x[i].Production:4 :2);
          If WaitKey then
          begin
               WriteLn('Ќ ¦¬ЁвҐ Є« ўЁиг...');
               ReadKey;
               ClrScr;
          end;
   end;
end;

Procedure GetData;
begin
     ClrScr;
     Write('—Ёв Ґ¬ ¤ ­­лҐ.');
     Assign(F,FileName);
     Reset(F);
     For i:=1 to N do
     begin
          Read(F,X[i]);
          Write('.');
     end;
     Close(F);
end;

Procedure SortData;
var
   b,t,j:Integer;
   Temp:Blank;
begin
     b:=N;
     While b<>0 do
     begin
          t:=0;
          For j:=1 to b-1 do
              If X[j].Production<X[j+1].Production then
              begin
                   Temp:=X[j];
                   X[j]:=X[j+1];
                   X[j+1]:=Temp;
                   t:=j;
              end;
          b:=t;
     end;
end;

Procedure SaveData;
begin
     ClrScr;
     Assign(F,FileName);
     ReWrite(F);
     For i:=1 to N do
     begin
          Write(F,X[i]);
          Write('.');
     end;
     Close(F);
end;

Procedure ShowProduction;
begin
     WriteLn('Љ(r)нддЁжЁҐ­вл Їа(r)Ё§ў(r)¤ЁвҐ«м­(r)бвЁ : ');
     For i:=1 to N do WriteLn(X[i].Production:4 :2);
     ReadKey;
end;

Begin
     Randomize;
     ClrScr;
     InitData;
     ShowProduction;
     SaveData;
     GetData;
     SortData;
     SaveData;
     ShowData;
     ClrScr;
     ShowProduction;
End.


P.S. Генерация данных стоит на автомате, надеюсь ввод данных запары для тебя не составит...
programerNOX
GLuk спасибо тете за помошь! ;)
programerNOX
Как выдать упорядоченый список и какие в етой програме ошыбки?
Переделаная програма:
Program  Zapis;
Uses
    Crt;
Const
     N   = 3;
     HourCnt  = 8;
     WaitKey  = True;
     FileName = 'blank.bin';
Type
    Blank = record
    NN:Integer;     {Ќ(r)¬Ґа}
    FIO:string[15];      {”?Ћ}
    HCnt:Real;      {Љ(r)«ЁзҐбвў(r) з б(r)ў ў ᬥ­г}
    VP:array[1..8] of Real;   {Љ(r)«-ў(r) Їа(r)¤гЄжЁЁ §  !Є ¦¤л(c)! з б ўаҐ¬Ґ­Ё??}
    DownTime:Real;  {‚аҐ¬п Їа(r)бв(r)п}
    Production:real;     {Џа(r)Ё§ў(r)¤ЁвҐ«м­(r)бвм ¤Ґв «Ґ(c) ў з б}
    end;

Var
   x:array[1..N] of Blank;
   i,j:integer;
   F:text;

Procedure InitData;
begin
     assign(f,'c:test.txt');
     rewrite(f);
     writeln('‘(r)§¤ Ґ¬ ‚Ґ¤(r)¬(r)бвм');
     For i:=1 to n do
      begin
            x[i].nn:=1;
            textcolor(3);
            write('” ¬Ё«Ёп ?¬п ЋвзҐбвў(r) : ');
            readln(x[i].fio);
            writeln(f,x[i].fio);
            writeln('Љ(r)«ЁзҐбвў(r) з б(r)ў §  ᬥ­г : ');
            readln(x[i].hcnt);
            writeln(f,x[i].hcnt:4 :2);
            writeln('‚ЁЇгбЄ Ґ¬ п Їа(r)¤гЄжлп : ');
            for j:=1 to HourCnt do
             begin
               writeln('§  ',j,' з б  :');
               readln(x[i].vp[j]);
               writeln(f,x[i].vp[j]:4 :2);
             end;
            writeln('‚аҐ¬п Їа(r)бв(r)п :');
            readln(x[i].downtime);
            writeln(f,x[i].downtime:4 :2);
            x[i].Production:=x[i].vp[HourCnt]/(x[i].HCnt-x[i].DownTime);
            writeln('Џа(r)¤гЄжлп :',x[i].production:4 :2);
            writeln(f,x[i].production:4 :22)
     end;
   close(f);
end;

Procedure ShowData;
begin
     ClrScr;
     assign(f,'c:test.txt');
     reset(f);
     For i:=1 to n do
     begin
     TextColor(3);
     WriteLn('======================================================');
     readln(f,x[i].fio);
     writeln('”?Ћ : ', x[i].fio);
     readln(f,x[i].HCnt);
     Writeln('Љ(r)«ЁзҐбвў(r) з б(r)ў §  ᬥ­г : ',x[i].HCnt:4 :2);
     WriteLn('------------------------------------------------------');
     for j:=1 to HourCnt do
        begin
          readln(f,x[i].vp[j]);
          Writeln('‡  ',j,' з б(r)ў : ',x[i].vp[j]:4 :2);
        end;
        readln(f,x[i].DownTime);
        writeln('‚аҐ¬п Їа(r)бв(r)п : ', x[i].DownTime:4 :2);
        write('Џа(r)Ё§ў(r)¤ЁвҐ«м­(r)бвм ¤Ґв «Ґ(c) §  Ґ¤Ё­Ёж㠢६Ґ­Ё :');
        readln(f,x[i].production);
        WriteLn(x[i].Production:4 :2);
        If WaitKey then
        begin
           WriteLn('Ќ ¦¬ЁвҐ ­  «оЎго Є« ўЁиг...');
          ReadKey;
          ClrScr;
        end;
       end;
end;

Procedure GetData;
begin
     ClrScr;
     Write('—Ёв Ґ¬ ¤ ­­лҐ.');
     Assign(F,'c:test.txt');
     Reset(F);
     For i:=1 to N do
     begin

     Write('.');
     end;
     Close(F);
end;

Procedure SortData;
var
   b,t,j:Integer;
   Temp:Blank;
begin
     b:=N;
     While b<>0 do
      begin
       t:=0;
       For j:=1 to b-1 do
       If X[j].Production<X[j+1].Production then
         begin
          Temp:=X[j];
          X[j]:=X[j+1];
          X[j+1]:=Temp;
          t:=j;
        end;
     b:=t;
     end;
end;

procedure SaveData;
begin
     ClrScr;
     Assign(F,FileName);
     ReWrite(F);
     For i:=1 to N do
     begin
     Write(F,X[i]);
     Write('.');
     end;
     Close(F);
end;
Procedure ShowProduction;
begin
     WriteLn('Љ(r)нддЁжЁҐ­вл Їа(r)Ё§ў(r)¤ЁвҐ«м­(r)бвЁ : ');
     For i:=1 to N do WriteLn(X[i].Production:4 :2);
     ReadKey;
end;

Begin
     ClrScr;
     InitData;
     ShowProduction;
     SaveData;
     GetData;
     SortData;
     SaveData;
     ShowData;
     ClrScr;
     ShowProduction;
End.
programerNOX
Помогите хто нибуть пожалуста на завтра срочно надо в универ. :'(
programerNOX
Помогите!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.