|   |   | 
| 
 | Сдвиг элементов массива | ☑ | ||
|---|---|---|---|---|
| 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 | 
        зависит от языка на котором пишешь лабу.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |