Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 20.05.2007, 13:00   #1
Acid
 
Регистрация: 27.04.2007
Сообщений: 3
По умолчанию Задача на сортировку массива

Необходимо отсортировать первые две трети массива в порядке возрастания если средноее арифметическое всех элементов больше нуля; иначе - лишь первую треть. остальную часть массива не сортировать а расположить в обратном порядке.
Заранее благодарю за помощь
Acid вне форума   Ответить с цитированием
Старый 17.06.2007, 00:16   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Код:
 
const 
   N=100;
var 
i,j,k,z:integer;
Sum:LongInt;
a:array[1..N] of integer;
b:array[1..N] of integer;
 
function SrAri:real;{среднее арифметическое}
begin
Sum:=0;
 for i:= 1 to N do
Sum:=Sum+a[i];
SrAri:=Sum/N;
end;
 
procedure Sort(k);{сортировка от 1-го элемента до К-го}
begin
for i:=1 to K do
       begin
          for j:=1 to K-1 do
              begin
              if a[k+1]<a[k] then
                begin
                   z:=a[k+1];
                   a[k+1]:=a[k];
                   a[k]:=z; 
                end;
               end;
      end;
end;
 
begin
if SrAri >0 then 
  begin
    k:=((N div 3)*2); {выберем 2/3}
    Sort(k);      end
 else
  begin
    k:=(N div 3); {выберем 1/3}
    Sort(k);
       for i:= (k+1) to N do
           begin
              b[i]:=a[N-i];{запишем в другой массив в обратном порядке}
           end;
       for i:= (k+1) to N do
           begin
              a[i]:=b[i];{запишем в наш массив}
           end;
  end;
 for i:= 1 to N do
           begin
              Writeln(a[i],' ');{вывод массива}
           end;
end.
Alex21 вне форума   Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите переделать файловую сортировку на сортировку динамич. списков Taisja Помощь студентам 2 15.06.2008 16:10
Задача на сортировку... Sota Помощь студентам 4 25.05.2008 19:26
Про сортировку AlexMori Общие вопросы Delphi 3 11.01.2008 02:51
переписать из массива в линейный двунаправленный список чётные элементы массива Black_Ak24 Помощь студентам 12 08.01.2008 01:44