Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];

Вниз

Задача на 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.035 c
14-1117030117
Андрей Жук
2005-05-25 18:08
2005.06.14
Финал Лиги Чемпионов


3-1115714964
KilkennyCat
2005-05-10 12:49
2005.06.14
Данные длиною в три байта.


4-1114382085
Кайфолом
2005-04-25 02:34
2005.06.14
Как обработать системные сообщения Формы ?


1-1117525901
Layner
2005-05-31 11:51
2005.06.14
Здравствуйте, подскажите плз, как программно установить ListView


1-1116949359
NightStranger
2005-05-24 19:42
2005.06.14
Как добавить подпункт в TreeView?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский