Ошибки в программе
Помогите Пожалуйста(((
то для чего делалась:
Создать процедуру, определяющую в целочисленном векторе vectorn два элемента, наиболее близкие к среднему арифметическому всех элементов вектора. Элементы, расположенные между ними, отсортировать по возрастанию.
Помогите Пожалуйста(((
Код:
program hj;
uses crt;
const
n=10;
Type
Tvect=array [1..n] of integer;
var
V_max,V_min,i, j, n_min1, n_min2, temp :integer;
vector:Tvect;
b:boolean;
arifmet:real;
min1, min2, arifm, shift :real;
Procedure Arif(nn:integer; AA:Tvect; var arifm:real; var ar_b:boolean);
var
i,min1,min2,max1,n,max2:integer;
Sum:real;
begin
n:=0;
Sum:=0;
for i:=1 to nn do
begin
Inc(n);
Sum:=Sum+AA[i];
end;
if n=0 then
begin
arifm:=0;
b:=false;
end
else
begin
arifm:=Sum/n;
b:=true;
end;
end;
begin
min1:=abs(vector[1] - arifmet);
n_min1:=1;
For i:=2 to n do
begin
shift:=abs(vector[i] - arifmet);
if (shift < min1)
then
begin
min2:=min1;
n_min2:=n_min1;
min1:=shift;
n_min1:=i;
end;
end;
For i:=1 to n do
begin
if ((vector[i] > min1) AND (vector[i] < min2))
then
min2:=vector[i];
end;
if (n_min1=(n_min2+1)) or (n_min1=(n_min2-1))
then
writeln('there are no values between ', vector[n_min1] , ' AND', vector[n_min2] ,' to sort!' )
else
begin
begin
if n_min1>n_min2
then
begin
for i:=(n_min1-1) downto (n_min2+2) do
for j:=(n_min2+1) to (i-1) do
if vector[j]>vector[j+1]
then
begin
temp:=vector[j];
vector[j]:=vector[j+1];
vector[j+1]:=temp;
end;
end;
if n_min1<n_min2
then
for i:=(n_min2-1) downto (n_min1+2) do
for j:=(n_min1+1) to (i-1) do
if vector[j]>vector[j+1]
then
begin
temp:=vector[j];
vector[j]:=vector[j+1];
vector[j+1]:=temp;
end;
end;
end;
Begin
Randomize;
Writeln('Diapazon slych chisel:');
Write('V_min= ');
readln(V_min);
Write('V_max= ');
readln(V_max);
writeln('______________________________');
writeln;
For i:=1 to n do
begin
vector[i]:=Random(V_max-V_min + 1) + V_min;
write(vector[i],' ');
end;
writeln;
writeln('______________________________');
Writeln;
Arif(n,vector,arifmet,b);
writeln('Sred. arifm = ', arifmet);
writeln('Sorting between: ', vector[n_min1], ' AND ', vector[n_min2]);
writeln;
writeln('______________________________');
writeln;
For i:=1 to n do
begin
write(vector[i]:3);
end;
writeln;
writeln('______________________________');
end;
end.
то для чего делалась:
Создать процедуру, определяющую в целочисленном векторе vectorn два элемента, наиболее близкие к среднему арифметическому всех элементов вектора. Элементы, расположенные между ними, отсортировать по возрастанию.