Показать сообщение отдельно
Старый 02.06.2014, 21:27   #1 (permalink)
pashasnuff
Member
 
Регистрация: 16.04.2014
Сообщений: 51
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Pascal, задача

Сделал подпрограмму для того чтобы в векторе на первые позиции переставить отрицательные элементы, но вот ошибку найти не могу, помогите пожалуйста
Код:
Function F:real;
{+$F}
Function F(x:real):real;
begin
f:=x;
end;
{-$F}

Procedure Razd(var a:Vect;m:byte;F:REAL;k:byte);
var
 i,j:byte;
 x:real;
 p:boolean;
begin
 i:=1;
 j:=m;
 while i<j do 
 begin
   if a[i]>=0 then
  begin
   p:=true;
    while (j>i) and (p=true) do
     if a[j]<0 then
      begin 
       x:=a[i];
       a[i]:=a[i+1];
       a[i+1]:=k;
       p:=false;
       end;
      end;
      j:=j-1;
     end;
      i:=i+1;
   end;
   begin
if j=m then
   begin
    k:=J+1;
     end
      else 
     begin
      If p=true then 
      begin
      k:=i-1;
      end
      else
      begin
      k:=j;
     end; 
     end;
     end;
Где F - заданная внешняя функция
А(М) - вектор
К - параметр которому присваивается номер того элемента , с которого начинается вторая часть переставленного массива.


Прошу помощи.
pashasnuff вне форума   Ответить с цитированием
Ads

Яндекс

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