Не могу найти ошибку в программе. Паскаль
Форумчане,помогите.Прграмма находит только процент вполнения плана первым предприятием,а у остальных пишет 0.Не могу найти ошибку.Зарание спасибо:tehnari_ru_203:
Решить задачу,связанную с оценкой экономической деятельности группы предприятий на основе известных данных
-название предприятий
-плановый объем розничного товарооборота
-фактический объем розничного товарооборота
Требуется определить:
1)процент вполнения плана каждым предприятием
2)сумму фактического товарооборота предприятий, выполнивших план
3)наименьший фактический товарооборот
4)упорядочить предприятия по возрастанию процента выполнения плана товарооборота
Прогр.:
program otchet;
uses crt;
var
n:array [1..100] of string;
p,f,v,k,c:array [1..100] of real;
i,im,j,m:integer;
km,s,y1,sum,min:real;
y2:string;
begin
clrscr;
write('Vvedite kolichestvo predpriyatiy= ');
readln(m);
for i:=1 to m 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
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('predpr plan fact proc');
for i:=1 to m do
writeln(n,' ',v:10:2,f:10:2,k:10:2);
writeln('naib proc =',km:10:2,' u predpr ',n[im]);
sum:=0;
for i:=1 to m do
begin
If f>=v then
sum:=sum+f;
end;
readln;
Write(' summa obioma tovarooborota predpriatii vipolnivshih plan = ',sum:8:2);
readln;
min:=32000;
for i:=1 to m do
begin
If min>f then
min:=f;
end;
readln;
Write(' naim obioma tovarooborota = ',min:8:2);
readln;
writeln;
for j:=1 to m-1 do
for i:=1 to m-j do
if k > k[i+1] then
begin
y1:=v;
v:=v[j];
v[j]:=y1;
y1:=f;
f:=f[j];
f[j]:=y1;
y1:=k;
k:=k[j];
k[j]:=y1;
y2:=n;
n:=n[j];
n[j]:=y2;
end;
writeln;
writeln('sort po proc ');
for i:=1 to m do
writeln(n,' ',k:6:2);
writeln;
end.
Форумчане,помогите.Прграмма находит только процент вполнения плана первым предприятием,а у остальных пишет 0.Не могу найти ошибку.Зарание спасибо:tehnari_ru_203:
Решить задачу,связанную с оценкой экономической деятельности группы предприятий на основе известных данных
-название предприятий
-плановый объем розничного товарооборота
-фактический объем розничного товарооборота
Требуется определить:
1)процент вполнения плана каждым предприятием
2)сумму фактического товарооборота предприятий, выполнивших план
3)наименьший фактический товарооборот
4)упорядочить предприятия по возрастанию процента выполнения плана товарооборота
Прогр.:
program otchet;
uses crt;
var
n:array [1..100] of string;
p,f,v,k,c:array [1..100] of real;
i,im,j,m:integer;
km,s,y1,sum,min:real;
y2:string;
begin
clrscr;
write('Vvedite kolichestvo predpriyatiy= ');
readln(m);
for i:=1 to m 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
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('predpr plan fact proc');
for i:=1 to m do
writeln(n,' ',v:10:2,f:10:2,k:10:2);
writeln('naib proc =',km:10:2,' u predpr ',n[im]);
sum:=0;
for i:=1 to m do
begin
If f>=v then
sum:=sum+f;
end;
readln;
Write(' summa obioma tovarooborota predpriatii vipolnivshih plan = ',sum:8:2);
readln;
min:=32000;
for i:=1 to m do
begin
If min>f then
min:=f;
end;
readln;
Write(' naim obioma tovarooborota = ',min:8:2);
readln;
writeln;
for j:=1 to m-1 do
for i:=1 to m-j do
if k > k[i+1] then
begin
y1:=v;
v:=v[j];
v[j]:=y1;
y1:=f;
f:=f[j];
f[j]:=y1;
y1:=k;
k:=k[j];
k[j]:=y1;
y2:=n;
n:=n[j];
n[j]:=y2;
end;
writeln;
writeln('sort po proc ');
for i:=1 to m do
writeln(n,' ',k:6:2);
writeln;
end.