Показать сообщение отдельно
Старый 21.05.2011, 21:30   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

А здесь - вариант той же программы, но с записями. Сравните, обратив особое внимание на реализацию метода пузырька:
Код:
program otchet;
uses crt;
type
 Base=Record
  n:string;
  v:real;
  f:real;
  k:real;
 end;
var
 Predp:array [1..100] of Base;
 Pr:Base;
 i,im,j,m:integer;
 km,s,sum,min:real;
begin
 clrscr;
 write('Vvedite kolichestvo predpriyatiy= ');
 readln(m);
 for i:=1 to m do
  with Predp[i] do
   begin
    write('Vvedite nazvanie predpriyatiya ',i,' = ');
    readln(n);
    write('vvedite planoviy obiom roznichnogo tovarooborota= ');
    readln(v);
    write('Vvedite fakticheskiy obiom roznichnogo tovarooborota= ');
    readln(f);
   end;
 s:=0;
 km:=-999;
 for i:=1 to m do
  with Predp[i] do
   begin
    k:=f/v*100;
    if k<100 then s:=s+f;
    if k>km then
     begin
      km:=k;
      im:=i;
     end;
   end;
 writeln;
 writeln('naimen. predpr, plan, fact, proc:');
 for i:=1 to m do
  with Predp[i] do
   begin
    write(n);
    for j:=Length(n)+1 to 40 do write(' ');
    writeln(v:10:2,f:10:2,k:10:2);
   end;
 writeln;
 writeln('naib proc = ',km:10:2,' u predpr ',Predp[im].n);
 readln;
 sum:=0;
 for i:=1 to m do
  If Predp[i].f>=Predp[i].v then sum:=sum+Predp[i].f;
 Write('Summa obioma tovarooborota predpriatii, vipolnivshih plan = ',sum:8:2);
 readln;
 min:=32000;
 for i:=1 to m do
  If min>Predp[i].f then min:=Predp[i].f;
 Write('naim obioma tovarooborota = ',min:8:2);
 readln;

 writeln;
 for j:=1 to m-1 do
  for i:=1 to m-j do
   if Predp[i].k>Predp[i+1].k then
    begin
     Pr:=Predp[i];
     Predp[i]:=Predp[i+1];
     Predp[i+1]:=Pr;
    end;
 writeln;
 writeln('sort po proc ');
 for i:=1 to m do
  with Predp[i] do
  begin
   write(n);
   for j:=Length(n)+1 to 40 do write(' ');
   writeln(k:6:2);
  end;
 readln;
end.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070