Форум: "Потрепаться";
Текущий архив: 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