Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.14;
Скачать: CL | DM;

Вниз

Задача на Pascal   Найти похожие ветки 

 
Bolt   (2005-05-24 23:52) [0]

препод завалил на задачке :
Используя программу ранжирования,расположить в массиве R элементы массива T так чтобы вначале шли по возрастающей положительные,А затем по убывающей отрицательные элементы...вот,а это массив T:
[-3,1,-1,2,4,6,-8,-6,7,-2,-9,5].
Заранее всем кто хоть как-то поможет решить...


 
raidan ©   (2005-05-24 23:53) [1]

И в чем заключается проблема?


 
Eraser ©   (2005-05-24 23:55) [2]

Bolt   (24.05.05 23:52)

имхо тут модифицированный "метод пузырька" нужен.


 
Bolt   (2005-05-24 23:55) [3]

нужен алгоритм решения=(..


 
Eraser ©   (2005-05-24 23:58) [4]

Bolt   (24.05.05 23:55) [3]

Я ж говорю, поищи в нете фразу "метод пузырька" - миллионы ссылок найдёшь.


 
Defunct ©   (2005-05-25 00:03) [5]

Eraser ©   (24.05.05 23:55) [2]

Не надо здесь пузырька никакого, массива ведь 2.

> препод завалил на задачке

Да уж завалил!!!
Чем же ж тут валить, задача простейшая.

1. находишь наименьшее положительное число массива T
2. Если больше нет положительных чисел - GOTO 6
3. кладешь его в R
4. Помечаешь, что ты его уже брал из T.
5. Goto 1
6. Находишь наименьшее (по модулю) число массива T
7. Если больше нет чисел - ВЫХОД
8. кладешь его в R
9. Помечаешь, что ты его уже брал из T.


 
Defunct ©   (2005-05-25 00:04) [6]

10. Goto 6


 
Bolt   (2005-05-25 00:06) [7]

хотелось бы уточнить по пункту 4.плз.


 
Eraser ©   (2005-05-25 00:16) [8]

Defunct ©   (25.05.05 00:03) [5]
Не надо здесь пузырька никакого, массива ведь 2.


Точно, я и не обратил внимания... тогда всё ещё легче. Как ты и описАл.


 
Defunct ©   (2005-05-25 00:17) [9]

По пункту 4.

можно сделать третий массив X: array[размерность] of boolean такой же размерности как массив T. Перед сортировкой все элементы массива X устанавливаешь в True, по мере поиска и отбора чисел из T, в массиве X устанавливаешь элемент, соответствующий "забираемому" из массива T в False.

А при поиске пользуешься массивом X так:
смотришь
if X[i]{i-й элемент T еще не забрали} and min(T[i]) then


 
Eraser ©   (2005-05-25 00:17) [10]

Defunct ©   (25.05.05 00:04) [6]

Т.е. Вы (на возраст не глянул) ;-)


 
vidiv ©   (2005-05-25 04:23) [11]

Про 0 ничего не сказано, но пусть они собираются слева. Тогда :

{$APPTYPE CONSOLE}
const arrmax=100;
var count:integer;
   arr:array[0..arrmax] of integer;
   c:integer;
   i,j:integer;
begin
 write("Enter array length: ");
 readln(count);

 for i:=0 to pred(count) do begin
    write("Enter element #",succ(i),": ");
    readln(arr[i]);
 end;

 for i:=0 to pred(pred(count)) do
   for j:=succ(i) to pred(count) do begin
     if ((arr[i]<0)and(arr[j]>0)) or ((arr[i]>arr[j]) and (arr[i]*arr[j]>0)) or (arr[j]=0) then begin
         c := arr[i];
         arr[i] := arr[j];
         arr[j] := c;
     end;
   end;

 write("Result: ");
 for i:=0 to pred(count) do
   write(arr[i]," ");

 writeln;
 readln;
end.


Пример:
Enter array length: 12
Enter element #1: -3
Enter element #2: 1
Enter element #3: -1
Enter element #4: 2
Enter element #5: 4
Enter element #6: 6
Enter element #7: -8
Enter element #8: -6
Enter element #9: 7
Enter element #10: -2
Enter element #11: -9
Enter element #12: 5
Result: 1 2 4 5 6 7 -9 -8 -6 -3 -2 -1


Сделано из большого нежелания работать =))


 
vidiv ©   (2005-05-25 04:24) [12]

Пардон, массива два должно было быть, но хотя ладно, пусть будет и так


 
SergP ©   (2005-05-25 05:18) [13]


>  [3] Bolt   (24.05.05 23:55)
> нужен алгоритм решения=(..


Любой метод сортировки, только в операции сравнения предусмотреть особенность сортировки.... и все.



Страницы: 1 вся ветка

Текущий архив: 2005.06.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.058 c
1-1117031143
SergP.
2005-05-25 18:25
2005.06.14
Необходимость деструктора в описании своего класса


1-1117436537
juice
2005-05-30 11:02
2005.06.14
Автозапуск, системная политика Win2000


3-1115844250
Bes
2005-05-12 00:44
2005.06.14
разпознать базу данных...


14-1116913099
cyborg
2005-05-24 09:38
2005.06.14
25 фактов о Звездных войнах


1-1117568825
Demonix
2005-05-31 23:47
2005.06.14
объект Edit1 и командная строка