Выбрать данные о проводниках и упорядочить их по убыванию удельного веса - Turbo Pascal

Формулировка задачи:

Создать файл f. содержащий сведения о веществах: название вещества, его удельный вес, проводимость (проводник, полупроводник, изолятор). выбрать данные о проводниках и упорядочить их по убыванию удельных весов

Код к задаче: «Выбрать данные о проводниках и упорядочить их по убыванию удельного веса - Turbo Pascal»

textual
program recfile;
{Создать файл f. содержащий сведения о веществах: название вещества, его удельный вес, проводимость 
(проводник, полупроводник, изолятор). 
выбрать данные о проводниках и упорядочить их по убыванию удельных весов}
uses
  crt;
type
  InfSub = record
  NameS : string[20];
  SpGr : real;
  conduct : (provodnik, poluprovodnik, izolyator);
  end;
var
  f : file of InfSub;
  a, b : InfSub;
  s : string[1];
  i,j : word;  
begin
  clrscr;
  assign(f,'FileRec.dat');
  rewrite(f);
  repeat
   write('Название вещества : ');
   readln(a.NameS);
   write('Удельный вес : ');
   readln(a.SpGr);
   write('Проводимость (provodnik, poluprovodnik, izolyator) : ');
   readln(a.conduct);
   write(f,a);
   write('Продолжить : y/n '); readln(s);
  until s='n';
  reset(f);
  writeln('Название вещества':18,'  Удельный вес':14,'  Проводимость':15);
  while not eof(f) do begin
    read(f,a);
    writeln(a.NameS:18,a.SpGr:14:3,'   ',a.conduct:15); 
    end;
  writeln;  
  for i := 1 to filesize(f)-1 do
    for j := 1 to filesize(f)-i do begin
    seek(f,j-1); read(f,a,b);
      if a.SpGr<b.SpGr then
       begin
        seek(f,j-1);
        write(f,b,a);
       end;
       end;
  writeln('Данные о проводниках, упорядоченных по убыванию удельных весов :');     
  reset(f);
  writeln('Название вещества':18,'  Удельный вес':14,'  Проводимость':15);
  for i := 1 to filesize(f) do begin
    read(f,a);
    if a.conduct=provodnik then writeln(a.NameS:18,a.SpGr:14:3,'   ',a.conduct:15); 
    end;
  close(f);
  readln;
end.

9   голосов, оценка 4.222 из 5


СОХРАНИТЬ ССЫЛКУ