| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Turbo Pascal] Задача на массив |
| Автор: METTER 9.9.2008, 20:20 |
| Ребят, выручите плиз.. нужно срочно для получения зачёта )) Дан массив размера N. осуществить циклический сдвиг массива вправо на одну позицию (при этом А1 перейдёт в А2, А2 в А3, а Аn в А1). Заранее спасибо! |
| Автор: mr.Anderson 9.9.2008, 20:47 | ||
METTER, вопрос на засыпку: а что окажется тогда в A[1] ?
|
| Автор: METTER 9.9.2008, 20:54 |
| mr.Anderson, в А1 перейдёт Аn... т.е. последний элемент |
| Автор: mr.Anderson 9.9.2008, 21:05 | ||
METTER, ну, тогда вот так:
|
| Автор: METTER 9.9.2008, 21:13 |
| mr.Anderson, прошу прощения, что сразу не указал - здесь А1 - это образно... т.е. должно быть так - массив создаётся рандомом, выводится, а потом происходит сдвиг.. и вновь выводится... |
| Автор: METTER 9.9.2008, 21:49 |
| нашёл вот такой пример решения var a:array[1..10] of integer; x:integer; i:integer; begin writeln('введите 5 элементов массива'); for i:=1 to 5 do readln( a[i] ); x:=a[5]; for i:=5 to 2 do begin a[i]:=a[i-1]; end; a[1]:=x; writeln('после сдвига:'); for i:=1 to 5 do writeln( a[i] ); end. но в нём происходит замена только первого элемента.. помогите пожалуйста подправить, чтобы заменялись все элементы |
| Автор: THandle 10.9.2008, 10:19 | ||
Может я не правильно понял, но попробуй вот так:
|
| Автор: mr.Anderson 10.9.2008, 13:45 |
| Не въехал, чем мое решение не устроило... Добавить только заполнение рандомное перед циклом обхода и все... |
| Автор: THandle 10.9.2008, 14:12 | ||
mr.Anderson, чисто для тебя. Попробуй этот вот вариант, твой.
работает? |
| Автор: mr.Anderson 10.9.2008, 14:24 | ||
| Усе, молчу, действительно не работает. Ну что вы хотите, я уже спал, когда это писал... Подправил.
|
| Автор: METTER 10.9.2008, 21:51 |
| THandle, огромное спасибо! Именно то что нужно! ))) Только вот если N=5 поставить, то приходится вводить 6 раз, а не 5.. можно ли это подправить? Ну, если не особо трудно... Но вообще, mr.Anderson и THandle, большое спасибо за оказанную помощь! |
| Автор: THandle 11.9.2008, 13:21 | ||||
| METTER, у меня просто массив начинается с 0 до N, то есть количество элементов = N + 1. Если надо чтобы было N, то можно либо сделать массив [0..N-1] либо [1..N]. Оба варианта даю 1 вариант:
2 вариант:
Удачи!!! Если вопрос решен, то поставь теме галочку "Пометить как решенный" |
| Автор: METTER 11.9.2008, 17:54 |
| THandle, огромное спасибо! |
| Автор: THandle 11.9.2008, 18:16 |
Не за что |