Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Циклический сдвиг


Автор: mortisedstalbun 7.10.2008, 21:27
Тема в том, как организовать, используя циклический сдвиг, перемещение максимального элемента массива на место минимального. Впервые столкнулся с такого рода проблемой за последние 3 года.... Да и в поиске ничего дельного не нашел.... Есть мысли какие-нибудь?

Автор: Albinos_x 8.10.2008, 07:37
я так понимаю, запоминаешь максимальный, потом все от минимального включительно до максимального сдвигаешь на одby? записываешь в освободившуюся ячейку максимальный элемент

Автор: mortisedstalbun 8.10.2008, 12:40
Не совсем правильно... Т.е.е есть массив, ищи масимальное и минимальное в нем, потом, используя циклический сдвиг надо поставить максимальный элемент массива на место минимального... Не понимаю, как организовать сам циклический сдвиг....

Автор: mortisedstalbun 8.10.2008, 13:00
Все.... Вот нашел ответ, как это можно организовать....

Код

max:=-32768;
min:=32767;
for i:=0 to n-1 do
  if b[i]>max then
    begin
    max:=b[i];
    maxi:=i
    end;
for i:=0 to n-1 do
  if b[i]<min then
    begin
    min:=b[i];
    mini:=i
    end;
for j:=0 to maxi-mini-1 do
  begin
  beg:=b[0];
  for i:=1 to n-1 do
    b[i-1]:=b[i];
  b[n-1]:=beg
  end;


ВОт впринципе и все... Вроде как работает правильно))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)