|
0 / 0 / 0
Регистрация: 04.12.2008
Сообщений: 12
|
|
Перемещение элементов внутри одномерного массива12.12.2008, 11:50. Показов 6944. Ответов 10
Метки нет (Все метки)
Задача. Требуется переместить несколько элементов внутри массива.
1. Есть одномерный массив из n ( =10 ) элементов, заполнен произвольно (цифры взяты по возрастанию для наглядности), например: 10 11 12 13 14 15 16 17 18 19 2. Требуется переметить в этом массиве m ( =2 ) элементов влево после k ( =4 ) элемента на p ( =3 ) шагов. 3. Было: 10 11 12 13 14 15 16 17 18 19 n=10 (число элементов в массиве) k=4 (это номер элемента массива «число=13», после которого надо передвинуть два элемента влево), m=2 (т. е. это два элемента массива-«числа 14 и 15» – которые надо передвинуть влево), p=3 (передвинуть на 3 шага). 4. Результат должен быть такой: 10 14 15 хх хх хх хх хх хх хх 5. В этом примере количество элементов m=2, которое надо передвинуть, и количество позиций p=3, на которое надо передвинуть, взято небольшое, чтобы не загромождать пример. Вопрос заключается в следующем: как лучше сделать, как правильнее: А). Сначала первое число «14» переместить на 3 позиции, потом второе число переместить на 3 позиции … (если бы надо было большее число элементов перемещать, то таким же образом до самого последнего элемента) – И всё это организовать в цикле? ИЛИ Б). Переместить «число 14» на один шаг, затем «число 15» на один шаг, … и так перемещать оба числа 3 раза - в данном примере p=3 (если бы надо было переместить большее число раз, чем 3, то таким же образом до последнего шага)- И всё это тоже организовать в цикле? ИЛИ В). Есть что-то другое?
0
|
|
| 12.12.2008, 11:50 | |
|
Ответы с готовыми решениями:
10
|
|
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
|
||||||
| 12.12.2008, 13:24 | ||||||
|
имхо лучше по пункту А:
0
|
||||||
|
0 / 0 / 0
Регистрация: 04.12.2008
Сообщений: 12
|
|
| 12.12.2008, 14:39 [ТС] | |
|
GalaX! Я поняла, что первый алгоритм предпочтительнее. В Вашем «коде» : числа «14» и «15» передвинуты на 3 шага влево, но Вы же еще поставили числа «11» и «12» на те места, с которых ушли «14» и «15», т. е. поменяли их местами.
Было: 10 11 12 13 14 15 16 17 18 19 Стало: 10 14 15 13 11 12 16 17 18 19 Вопрос. Когда требуется ПЕРЕМЕСТИТЬ, то надо только: 1). Было: 10 11 12 13 14 15 16 17 18 19 Стало: 10 14 15 13 14 15 16 17 18 19, т. е. нас не должно заботить то, что остается на тех местах, с которых мы сдвигаем элементы массива? ИЛИ 2). Было: 10 11 12 13 14 15 16 17 18 19 Стало: 10 14 15 13 11 12 16 17 18 19, т. е. надо поставить «11» и «12» на те места, с которых ушли «14» и «15»?
0
|
|
|
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
|
|||||||||||
| 13.12.2008, 09:49 | |||||||||||
|
не совсем понял вопроса... помоему этот вопрос нужно спрашивать у тебя... как тебе надо?
![]() вообщем: если надо так "10 14 15 13 11 12 16 17 18 19":
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 04.12.2008
Сообщений: 12
|
|
| 15.12.2008, 11:10 [ТС] | |
|
С перестановкой «11 и 12» понятно, а вот с оператором «for» - не очень! Ведь условия работы оператора «for»: «ОТ» и «ДО» – должны быть конкретные значения, а не в виде условия (больше, меньше, …), как «i<=k+m», так я поняла, когда разбиралась с операторами. А вот в операторах «while», «if» «ДО» какого значения будет работать оператор – может быть задан в виде условия. Или я что-то не так уяснила?
0
|
|
|
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
|
|
| 15.12.2008, 11:20 | |
|
ой, точно
![]() я чет запутался немного, в паскале в for ведь действительно не должно быть условия... тогда получается так должно быть: for i:=k+1 to k+m do begin
0
|
|
|
0 / 0 / 0
Регистрация: 04.12.2008
Сообщений: 12
|
|
| 15.12.2008, 11:37 [ТС] | |
|
А вот так я делала, и у меня перемещается только один элемент, а именно «14», а вот «15» на новом месте НЕТ.
Было: 10 11 12 13 14 15 16 17 18 19 Стало: 10 14 «12» 13 14 15 16 17 18 19 И не могу понять почему?
0
|
|
|
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
|
|
| 15.12.2008, 11:57 | |
|
тогда попробуй так:
for i:=k+1 to k+m+1 do begin
0
|
|
|
0 / 0 / 0
Регистрация: 04.12.2008
Сообщений: 12
|
|
| 15.12.2008, 13:32 [ТС] | |
|
Так "k+m+1" - тоже пробовала, результат тот же! Первое число встает куда надо, а второе НЕТ. Где-то у меня что-то запирается - орератор отрабатывает только один раз и запрещает перенос второго числа. Это маленький кусочек из другой задачки. Если вечером сегодня не найду в чем дело. То большая просьба (я завтра выложу весь листинг) - посмортеть его.
0
|
|
|
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
|
|
| 15.12.2008, 18:27 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 04.12.2008
Сообщений: 12
|
|
| 16.12.2008, 14:05 [ТС] | |
|
Это был кусочек - часть другой задачки. Я обозначу ее целиком, поэтому открою на форуме, как новую тему.
0
|
|
| 16.12.2008, 14:05 | |
|
Помогаю со студенческими работами здесь
11
Количество элементов одномерного массива меньших, чем среднее арифметическое значение всех элементов массива Формирование одномерного массива по заданному условию внутри процедуры
Переставить значения элементов заданного одномерного массива,так, чтобы все нулевые значения оказались в конце массива,а ненулевые вначале Найти сумму элементов двумерного массива 3х3 по строкам и вывести ее в виде одномерного массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|