Главная страница
    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
Время: 1.324 c
3-1115121980
AloneAli
2005-05-03 16:06
2005.06.14
Как сделать поиск в IB без учета регистра?


14-1117097701
OX
2005-05-26 12:55
2005.06.14
Может быть, хоть здесь мне помогут...


14-1116936425
mike-d
2005-05-24 16:07
2005.06.14
Библиотека ваших детей...


6-1111439002
Zion
2005-03-22 00:03
2005.06.14
Как узнать IP-адрес компа в локалке по его сетевому имени?


1-1116935843
Karlson
2005-05-24 15:57
2005.06.14
Формат отображения даты в DateTimePicker





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский