Одномерные массивы |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Одномерные массивы |
frogg |
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: 0 |
даны массивы A(N), B(M) и натуральные числа K, L переместить элементы массива А вправо на К позицийа элементы массива В вправо на L позиций. Перемещение элементов массива вправо на заданное кол-во позиций с использованием вспомогательного массива оформить в виде подпрограммы
помогите плиз. Спасибо за ранее |
Lapp |
Сообщение
#2
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
даны массивы A(N), B(M) и натуральные числа K, L переместить элементы массива А вправо на К позицийа элементы массива В вправо на L позиций. Перемещение элементов массива вправо на заданное кол-во позиций с использованием вспомогательного массива оформить в виде подпрограммы А что делать с освобождающимися элементами массивов? Или ты имеешь в виду циклическое перемещение?помогите плиз. Спасибо за ранее -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
frogg |
Сообщение
#3
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: 0 |
|
volvo |
Сообщение
#4
|
Гость |
frogg, есть 2 способа циклически сдвинуть массив на 1 элемент вправо или влево. И для этого даже не нужен никакой вспомогательный массив:
способ 1 (пищу для сдвига влево, вправо делается по аналогии): Запоминаешь элемент, который был первым. Начиная со второго и до конца массива (длина ж тебе известна?) переносишь элемент Ai на одну позицию левее: A[i - 1] := A[ i ]. Ну, а потом - устанавливаешь в последний, самый правый элемент, то значение, которое было сохранено ранее из первой (левой) ячейки. способ 2: запоминаешь первый элемент (это придется делать, никуда от этого не денешься), потом без цикла, одним вызовом процедуры Move переносишь все элементы массива на одну позицию левее: Move(A[2], A[i], (size - 1)*Sizeof(integer)); (здесь size - размер массива A, а integer - тип элементов массива, если у тебя массивы вещественных чисел - то надо будет поставить другой тип). И потом опять же последнему элементу присвоить сохраненное ранее значение. Выбирай, что больше нравится. Процедура Move присутствует в Паскале, ее не надо изобретать и реализовывать, она уже есть, только использовать (это так, на всякий случай, информация). |
Текстовая версия | 11.01.2025 5:34 |