Добро пожаловать, гость
:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте :: :: форум ::

Форум работает в режиме архива, только для чтения и поиска.
Архив 2004 Архив 2007 Архив 2013

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.12.2006, 19:37
незарегистрированный

 
Сообщений: n/a

помогите плиз (сортировка двоичного массива)
как отсортировать двоичный массив по убыванию в турбо паскале 7.0
  #2  
Старый 28.12.2006, 21:57
MSX MSX вне форума
Новичок

Отправить личное сообщение для MSX Посмотреть профиль Найти все сообщения от MSX
 
Регистрация: 30.11.2006
Сообщений: 12

Метод поразрядной сортировки при последовательном разделении массива по двоичным разрядам (сложность - O(C n)).
Код:
var A: array[1..100] of longint;

procedure radSort(k, l, r: integer);
var i, j, t: integer;
begin
  if (l >= r) or (k = 0) then Exit;
  i := 1; j := n;
  while (i <= j) do
  begin
    if ((A[i] and k) <> 0) then inc(i)
    else if ((A[j] and k) = 0) then dec(j)
    else begin
      t := A[i]; A[i] := A[j]; A[j] := t;
      inc (i); dec(j);
    end;
  end;
  radSort(k shr 1, l, j);
  radSort(k shr 1, i, r);
end;

var i, k, l, t, n: integer;
begin
  readln (n);
  k := 1;
  for i := 1 to n do
  begin
    read(A[i]);
    l := A[i]; t := 0;
    while (l <> 0) do begin
      l := l shr 1; inc(t);
    end;
    if (t > k) then k := t;
  end;
  radSort(1 shl (k - 1), 1, n);
end.
  #3  
Старый 28.01.2007, 20:27
Ксюша

 
Сообщений: n/a

помогите пожулуйста :)
Приветик,не могли бы вы помочь мне решить задачу в Турбо Паскале,вот условия(на украинском):
Написати програму для табулювання функції y=cos2x на проміжку [0;3,14] з кроком 0,25 і обчислити кількість і добуток значень, що задовольняють умові 0,5<y<1.
заранее огромное спасибо!!!очень надеюсь и жду!
  #4  
Старый 29.01.2007, 18:16
Новичок

Отправить личное сообщение для Мёртвый Анархист Посмотреть профиль Найти все сообщения от Мёртвый Анархист
 
Регистрация: 15.01.2007
Сообщений: 6

Сообщение от Ксюша Посмотреть сообщение
Приветик,не могли бы вы помочь мне решить задачу в Турбо Паскале,вот условия(на украинском):
Написати програму для табулювання функції y=cos2x на проміжку [0;3,14] з кроком 0,25 і обчислити кількість і добуток значень, що задовольняють умові 0,5<y<1.
заранее огромное спасибо!!!очень надеюсь и жду!
по тому, как я понял условие так я и написал

Код:
var
  x,y,d:real;
  k:word;
begin
  x:=0;
  d:=1;
  repeat
    y:=cos(2*x);
    if (y>=0.5) and (y<=1)
      then
        begin
          k:=k+1;
          d:=d*y;
        end;
    x:=x+0.25;
  until x>=3.14;
  writeln(k,d);
end.
если что не так, то пиши 380994440645@sms.jeans.com.ua (текст, плиз, в транслите)
  #5  
Старый 23.02.2007, 22:00
Катя

 
Сообщений: n/a

срочно нужна помощь!!!!
помогите, пожалуйста, реализовать программу. построить несбалансированное двоичное дерево записей. разработать формат хранения в файле. реализовать запись в файл, чтение из файла. добавление записи в дерево с клавиатуры, поиск записи удаление записи (по ключу введенному с клавиатуры).
вариант:
химические элементы: название, код (до 3х симв), номер, ат. вес,. ключ: название.
  #6  
Старый 26.02.2007, 18:00
Новичок

Отправить личное сообщение для Мёртвый Анархист Посмотреть профиль Найти все сообщения от Мёртвый Анархист
 
Регистрация: 15.01.2007
Сообщений: 6

не сильно врубился я в условие %)
можешь по-человечески написать? мож шо и помогу...
  #7  
Старый 26.05.2007, 18:52
Новичок

Отправить личное сообщение для Алёна Посмотреть профиль Найти все сообщения от Алёна
 
Регистрация: 26.05.2007
Сообщений: 1

турбо паскаль
помогите пожалуйста!!!! задача в турбо паскале, ее условие:
даны цифры десяти цехов, численности рабочих и инженерно-технических работников в каждом. напечатать списки цехов, в которых соотношение рабочих и итр более 1,5 и менее 2, и списки, в которых это соотношениеболее2.
  #8  
Старый 01.06.2007, 13:36
Sava

 
Сообщений: n/a

решение на ТПаскале
var
spisok:array[1..3,1..10] of real; {первое поле - код цеха, второе - кол. рабочих, а третье - кол. итр}
i,j:byte;
begin
for j:=1 to 10 do
begin
for i:=1 to 3 do
read(spisok[i,j]);
writeln;
end;
for j:=1 to 10 do
begin
if ((spisok[2,j]/spisok[3,j])>1.5) and ((spisok[2,j]/spisok[3,j])<2)
then
writeln(spisok[1,j]:2:4,' ',spisok[2,j]:2:4,' ',spisok[3,j]:2:4)
else
if ((spisok[2,j]/spisok[3,j])>2)
then
writeln(spisok[1,j]:2:4,' ',spisok[2,j]:2:4,' ',spisok[3,j]:2:4)
else
writeln();
end;
end.
  #9  
Старый 11.08.2007, 14:53
Hrr

 
Сообщений: n/a

Об этом подробно написано в любой книге по программироанию. Самая дешёвая стоит 80 руб, твоя просьба такая элементарная, что просто нет слов
  #10  
Старый 11.11.2010, 21:22
гость

 
Сообщений: n/a

помогите пожалуйста реализовать поразрядный алгоритм алгоритм, но чтоб сортировал двоичные числа 16 разрядные, т к нужно сортировать 30000 чисел))
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите плиз решить задачку Daiver Математические алгоритмы 2 22.04.2007 18:45