Имя: Пароль:
1C
 
Сдвиг элементов массива
0 nikoslav
 
16.11.17
19:05
Дан массив из m элементов. Необходимо сдвинуть элементы с a по b на n позиций. При этом нельзя создавать новые переменные кроме счетчика цикла. Переменные m,a,b нельзя менять.

Получается нужно менять индекс,указать на сколько позиций. Элементы добавлять нельзя.
1 Cyberhawk
 
16.11.17
19:26
Держись там
2 Woldemar177
 
16.11.17
19:27
ТС похоже начал или Кнута читать или сессию здавать
3 H A D G E H O G s
 
16.11.17
19:28
Удачи, чё.
4 Cyberhawk
 
16.11.17
19:32
Лабораторные походу
5 Брудвар
 
16.11.17
19:33
(0) Нельзя создавать переменные значительного размера, типа массивов? Или нельзя вообще использовать ни одного лишнего байта?
Оптимизировать по количеству перестановок нужно?
6 Cyberhawk
 
16.11.17
19:36
(5) Перестановки не нужны - нужно тупо сдвинуть, как Я понял. Если там на новом месте есть элемент, то его перезатирать
7 Cyberhawk
 
16.11.17
19:39
Ну а если сдвиг циклический, то вот: http://codelab.ru/task/cycle_shift/
8 Брудвар
 
16.11.17
19:39
(6) Образуется пустое место, и затрутся другие элементы. Я думаю так не должно быть.
9 Брудвар
 
16.11.17
19:40
(7) Там временные переменные используются
10 Cyberhawk
 
16.11.17
19:41
(9) Ну это для затравки мною было дано )
11 Александр056
 
16.11.17
20:58
при смещении, последний элемент должен стать первым? получается что его выталкивают в начало?
12 Александр056
 
17.11.17
14:41
постановку можно уточнить?  недоговорил по условиям. Потому как в нынешней постановке задача не зависит от индексов a и b. Неважно, какие индексы ты задашь, всегда получишь один и тот же результат.
13 Широкий
 
17.11.17
14:46
ЕСли просто сдвинуть то Вставить(ИндексA)
14 dezss
 
17.11.17
14:56
b+n<m?
или допускается циклический сдвиг?
15 фросия
 
17.11.17
15:04
перезаписать элементы внутри массива без доп переменных можно если тип у них число. если ссылочный тип то придётся с индексами придумывать что-то...
16 Александр056
 
17.11.17
15:08
(14) вот мне так и показалось, обычный циклический сдвиг
17 dezss
 
17.11.17
15:15
Для массива состоящего из чисел

й = a;
Пока й <= b Цикл
    Массив[й] = Массив[й] + Массив[b+n-Цел((b+n)/m)*m];
    Массив[b+n-Цел((b+n)/m)*m] = Массив[й] - Массив[b+n-Цел((b+n)/m)*m];
    Массив[й] = Массив[й] - Массив[b+n-Цел((b+n)/m)*m];
    й = й + 1;
КонцЦикла
18 dezss
 
17.11.17
15:33
(17) тьфу...
не
[b+n-Цел((b+n)/m)*m]
а
[й+n-Цел((й+n)/m)*m]
19 Александр056
 
17.11.17
15:45
да но про числа не написано...
20 dezss
 
17.11.17
16:01
(19) если любые элементы, то никак...только если знаешь тип элементов.
21 john90
 
17.11.17
16:20
(0) зачем этот бред????
22 john90
 
17.11.17
16:21
1сик не для этого разрабатывали
23 Wirtuozzz
 
17.11.17
16:24
(0) вот бы такие стандарты были в 1с на разработку.
24 PCcomCat
 
17.11.17
16:28
Припоминаю,что есть несколько методов: пузырьковый, сдвига и т.д. Какой-то из них можно без переменных.
25 john90
 
17.11.17
16:28
(23) зачем? глупость
26 Buster007
 
17.11.17
17:19
Как я понял условие, например:
Есть массив м состоящий из 10 элементов:
а1, а2,.. , а10
Необходимо сместить элементы 3, 4, 5 на 5 позиций

таким образом, т.к. количество элементов в массиве нельзя изменять, то
для первого шага элементы в массиве
а10, а1, а2, а3,.. а9
для второго шага
а9, а10, а1,... а8

Непонятно, зачем нужно знать, что хранит массив в этой задаче.
27 Михаил Козлов
 
17.11.17
17:27
(26) Есть такая задача: для 2-х чисел а и б переприсвоить, НЕ ИСПОЛЬЗУЯ ДРУГИЕ ПЕРЕМЕННЫЕ. Для чисел это можно (17), а если это любые переменные, то непонятно как без "буфера".
28 Buster007
 
17.11.17
17:35
(27) да-да, уже подумал над этим )
29 Сияющий в темноте
 
17.11.17
22:10
переменная-это адрес в памятм
аосенять переменные-переставиь адреса?
30 Сияющий в темноте
 
17.11.17
22:11
а сдвиг,наверное,предполагался циклический
31 Bigbro
 
17.11.17
22:15
если нет переменных и памяти то остается стэк и регистры процессора. еще можно с шиной поиграться, про внешние устройства ничего сказано не было.
32 Bigbro
 
17.11.17
22:17
кстати в х86 системе команд с 486 точно а может и раньше уже присутствуют расширения для работы с массивами
33 Александр056
 
20.11.17
08:57
вопрос зачем мне нзнать про а и б элементы? если я начинаю сдвигать какой-либо элемент, то двигается весь массив.
34 Сияющий в темноте
 
20.11.17
09:45
сдвигать подмассив в массиве для этого и границы подмассива даны
35 lodger
 
20.11.17
09:49
зависит от языка на котором пишешь лабу.