Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 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 вне форума   Ответить с цитированием

Старый 02.06.2014, 21:27
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Темы, которые аналогичны вашей так же встречались на нашем форуме

Задача. Pascal
Pascal, задача
Задача Pascal ABC
Задача на множества Pascal ABC
Pascal задача

Старый 03.06.2014, 11:39   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,973
Сказал(а) спасибо: 322
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 102185
По умолчанию

Про всё, что связано с буквой F, я ни бельмеса не понял, ни в смысле "функции", ни в смысле параметра процедуры. То есть не понял настолько, что и пытаться бесполезно. А вот по массиву - хотелось бы уточнить задание: допустимо ли произвольное расположение элементов в новом массиве (лишь бы сначала отрицательные), либо массив должен быть упорядочен, либо порядок следования как положительных, так и отрицательных элементов должен быть сохранен, либо порядок следования требуется сохранить для какой-либо одной группы?
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 03.06.2014, 13:58   #3 (permalink)
pashasnuff
Member
 
Регистрация: 16.04.2014
Сообщений: 51
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Массив не должен быть упорядочен после этой ПП, а вот и картинка с заданием для этой ПП, в самом низу.
Миниатюры
ugvoc-vusas.jpg  
pashasnuff вне форума   Ответить с цитированием
Старый 03.06.2014, 14:26   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,973
Сказал(а) спасибо: 322
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 102185
По умолчанию

Знаете... я в некоторой растерянности. Потому что сколько имею дело с Паскалем, но такого, чтобы имя внешней функции загонять в список формальных параметров процедуры - не видел. Кто-то из нас, либо я, либо Ваши преподы, того...
Ну ладно, а не хотите рассмотреть такой вариант (функцию нужно задать отдельно):
Код:
Procedure Razd(var a:Vect; m:byte; var k:byte);
var:
 i,p,q:byte;
 b,c:Vect;
begin
 p:=0;
 q:=0;
 for i:=1 to m do
  if F(a[i])<0 then
   begin
    Inc(p);
    b[p]:=a[i];
   end;
  else
   begin
    Inc(q);
    c[q]:=a[i];
   end;
 for i:=1 to p do a[i]:=b[i];
 for i:=1 to q do a[p+i]:=c[i];
 k:=p+1;
end;
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 03.06.2014, 17:09   #5 (permalink)
pashasnuff
Member
 
Регистрация: 16.04.2014
Сообщений: 51
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Благодарю!
pashasnuff вне форума   Ответить с цитированием
Ads

Яндекс

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

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 12:56.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.