Помогите пожалуйста. Массив нужно свернуть в "кольцо". |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Помогите пожалуйста. Массив нужно свернуть в "кольцо". |
Gothar |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
Массив целых чисел х[1]... х[п] «свернуть в кольцо» и повернуть вправо на К позиций (К может быть больше п).
Заранне спасибо! Сообщение отредактировано: Gothar - |
Krjuger |
Сообщение
#2
|
Профи Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: 20 |
Выложите то что смогли сделать,даже если не работает.Чтоб было видно,что вы пытались хотябы это решить.
|
Gothar |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
Выложите то что смогли сделать,даже если не работает.Чтоб было видно,что вы пытались хотябы это решить. Вот что попытался сделать. получается бред program jopa; Сообщение отредактировано: Gothar - |
Client |
Сообщение
#4
|
Профи Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: 20 |
Посмотри тут
|
Gothar |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
Посмотрел! Всё равно правильно работать не хочет(( Видимо я вообще дурак полный( Сообщение отредактировано: Gothar - |
sheka |
Сообщение
#6
|
Я. Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: 11 |
2 аll
что означает «свернуть в кольцо»? для чего предназначена процедура Move(A[2], A[i], (size - 1)*Sizeof(integer)); и что за переменные в нее вводятся? расскажите пожалуйста. Сообщение отредактировано: sheka - |
Gothar |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
2 аll что означает «свернуть в кольцо»? для чего предназначена процедура Move(A[2], A[i], (size - 1)*Sizeof(integer)); и что за переменные в нее вводятся? расскажите пожалуйста. Вот что получается! Где косяк! Помогите понять ПОжалуйста! program jopa; Сообщение отредактировано: Gothar - |
Krjuger |
Сообщение
#8
|
Профи Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: 20 |
Ну во первых ты в tmp присваиваеш n а потом первому элементу присваиваеш n,это уже косяк,тебе надо значение н-ого элемента....А во вторых тебе четко написали,как работает процедура movе,а ты что мудриш зачем какие то два цикла???плюс сдвинуть надо вправо,а ты влево двигаеш.И повторить эту операцию надо n-k раз.
|
Gothar |
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
Ну во первых ты в tmp присваиваеш n а потом первому элементу присваиваеш n,это уже косяк,тебе надо значение н-ого элемента....А во вторых тебе четко написали,как работает процедура movе,а ты что мудриш зачем какие то два цикла???плюс сдвинуть надо вправо,а ты влево двигаеш.И повторить эту операцию надо n-k раз.
косяк тут понял!!!!! Но проблема осталась!!!! При сдвиге на 1 он не сдвигает! При 2х на 1! и т.д. Да и к тому же не читает сдвиги выше 5ти! тоесть условие задания (k может быть больше n) не выполняется! |
Client |
Сообщение
#10
|
Профи Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: 20 |
for k:=1 to n1 do begin //n1-это сколько сдвигов |
Gothar |
Сообщение
#11
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
for k:=1 to n1 do begin //n1-это сколько сдвигов Блин((( Я запутался!!!!!! Тоесть надо вместо процедуры for j:=1 to n-k do Надо for j:=1 to k do ТАК? Сообщение отредактировано: Gothar - |
volvo |
Сообщение
#12
|
Гость |
Лучше - так:
// k = число сдвигов, n = размер массива , чтоб не делать заведомо лишнее... Автору: как ты думаешь, Правила тебя не касаются? Мало того, что тема названа не пойми как, еще и тегами не пользуешься... В следующий раз такая тема сразу улетит в мусорку. А чтоб не улетела сейчас - исправляй... |
Gothar |
Сообщение
#13
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
Автору: как ты думаешь, Правила тебя не касаются? Мало того, что тема названа не пойми как, еще и тегами не пользуешься... В следующий раз такая тема сразу улетит в мусорку. А чтоб не улетела сейчас - исправляй... Исправил! Спасибо за предупреждение! Редко на форумах бываю просто |
Client |
Сообщение
#14
|
Профи Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: 20 |
Цитата Исправил! Еще и название темы |
Gothar |
Сообщение
#15
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
Лучше - так: // k = число сдвигов, n = размер массива , чтоб не делать заведомо лишнее... Автору: как ты думаешь, Правила тебя не касаются? Мало того, что тема названа не пойми как, еще и тегами не пользуешься... В следующий раз такая тема сразу улетит в мусорку. А чтоб не улетела сейчас - исправляй... Впринципе сдвигает нормально. с одним но! k не может быть больше n!!!!! виснет! Как быть? Добавлено через 2 мин. Еще и название темы А как? |
volvo |
Сообщение
#16
|
Гость |
Цитата А как? Редактировать первое сообщение...Цитата k не может быть больше n!!!!! виснет! Неправда, проверял на k = 8, n = 5, работает прекрасно... |
Krjuger |
Сообщение
#17
|
Профи Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: 20 |
А что есть сдвиг на К при К больше N??По сути это сдвиг на разность К и N,просто делаеш условие,если к меньше N оставляеш то что было,если больше то чуть чуть изменяеш и вуаля...
Вольво а у меня вопрос о приотитете действий. Цитата for i := 1 to k mod n do begin если к меньше n,то получается мы сдвигаем на остаток дробной части чтоли?И или не нужны ли скобки при к mod n или они чисто формальны в данном случае(? Сообщение отредактировано: Krjuger - |
Gothar |
Сообщение
#18
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
|
volvo |
Сообщение
#19
|
Гость |
Krjuger в первую очередь, а с ним и все остальные: ВНИМАТЕЛЬНО смотрим на ответы, которые появляются в теме: там MOD не для красоты, между прочим... Я надеюсь, объяснять, как работает MOD не надо? Какие, блин, условия еще придумали? Запустите компилятор уже, и проверьте, а не ДОГАДЫВАЙТЕСЬ...
Добавлено через 2 мин. Цитата не нужны ли скобки при к mod n Нет, скобки не нужны, приоритет ни при чем. Приоритет важен, когда в выражении больше одной операции, а здесь она всего одна... |
Gothar |
Сообщение
#20
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
Название темы изменено!)
Вот итоговый код программы: program jopa; Всем спасибо огромное! Сообщение отредактировано: Gothar - |
Текстовая версия | 11.01.2025 5:37 |