Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2011, 22:39   #1
dimka123
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 96
Смущение исправление.Паскаль

программа- сдвиг влево и вправо
const N = 10;
var a: array [1..N] of integer;
i:integer;
begin
for i:=1 to N do
a[i] := Random(100);
writeln('Элементы массива a: ');
for i:=1 to N do
write(a[i],' ');
writeln; writeln;
begin
for i:=1 to N-1 do
a[i] := a[i+1];
a[N] := 0;

writeln('После сдвига влево: ');
for i:=1 to N do
write(a[i],' ');
writeln; end;writeln;

for i:=N downto 2 do
a[i] := a[i-1];
a[1] := 0;
writeln('После сдвига вправо: ');
for i:=1 to N do
write(a[i],' ');
writeln;
end.

если мы сдвигаем влево то последний элемент должен равняться 1 т.е первому элементу который до сдвига.
[COLOR="Blue"]Элементы массива a:
1 54 20 26 94 11 9 84 56 97
После сдвига влево:
54 20 26 94 11 9 84 56 97 0 а если вправо то 97 54 и т.д а не 0 54

Последний раз редактировалось dimka123; 25.12.2011 в 22:42.
dimka123 вне форума Ответить с цитированием
Старый 25.12.2011, 22:43   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
const N = 10;
var a: array [1..N] of integer;
i:integer;b:integer;
begin
randomize;
for i:=1 to N do
a[i] := Random(100)+1;
writeln('Элементы массива a: ');
for i:=1 to N do
write(a[i],' ');
writeln; writeln;
begin
b:=a[1];
for i:=1 to N-1 do
a[i] := a[i+1];
a[N] := b;

writeln('После сдвига влево: ');
for i:=1 to N do
write(a[i],' ');
writeln; end;writeln;
b:=a[n];
for i:=N downto 2 do
a[i] := a[i-1];
a[1] := b;
writeln('После сдвига вправо: ');
for i:=1 to N do
write(a[i],' ');
writeln;
end.
Цитата:
Элементы массива a:
84 43 17 78 50 46 26 78 11 49

После сдвига влево:
43 17 78 50 46 26 78 11 49 84

После сдвига вправо:
84 43 17 78 50 46 26 78 11 49
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 25.12.2011, 22:49   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

крайний элемент нужно сохранять отдельно. например, так:
Код:
var a: array [1..N] of integer;
  i, a_dop : integer;
begin
  .......
  {циклический сдвиг влево}
  a_dop := a[1];
  for i:=1 to N-1 do
     a[i] := a[i+1];
  a[N] := a_dop;


  {циклический сдвиг вправо}
  a_dop := a[N];
  for i:=N downto 2 do
     a[i] := a[i-1];
  a[1] := a_dop;

Добавлено
да разве за Mad_Cat угонишься?!!!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.12.2011, 23:10   #4
dimka123
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 96
По умолчанию

например

Элементы массива a:
84 43 17 78 50 46 26 78 11 49

После сдвига влево:
43 17 78 50 46 26 78 11 49 84

После сдвига вправо:
49 84 43 17 78 50 46 26 78 11
вот так должно получиться!
dimka123 вне форума Ответить с цитированием
Старый 25.12.2011, 23:11   #5
dimka123
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 96
По умолчанию

Цитата:
Сообщение от dimka123 Посмотреть сообщение
например

Элементы массива a:
84 43 17 78 50 46 26 78 11 49

После сдвига влево:
43 17 78 50 46 26 78 11 49 84

После сдвига вправо:
49 84 43 17 78 50 46 26 78 11
вот так должно получиться!
а получается что при сдвиге вправо элементы не меняються!
dimka123 вне форума Ответить с цитированием
Старый 25.12.2011, 23:42   #6
dimka123
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 96
По умолчанию

чуть не так!косячок по сдвигу вправо! массив не изменился!
dimka123 вне форума Ответить с цитированием
Старый 26.12.2011, 00:05   #7
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
то при сдвиге вправо элементы не меняються
какого, я не побоюсь этого слова, черта?
dimka123 хвораешь??? смотри был массив
Цитата:
84 43 17 78 50 46 26 78 11 49
ты его сдвинул влево он стал
Цитата:
43 17 78 50 46 26 78 11 49 84
про первоначальный забудь он изменился у тебя теперь этот массив! ты его
сдвинул вправо получил
Цитата:
84 43 17 78 50 46 26 78 11 49
первоначальный
если хочешь повыеживаться сдвигай его еще раз вправо
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 26.12.2011 в 00:08.
Mad_Cat вне форума Ответить с цитированием
Старый 26.12.2011, 11:29   #8
Necare
Форумчанин
 
Аватар для Necare
 
Регистрация: 22.10.2010
Сообщений: 145
По умолчанию

Юзайте поиск, тут такая прога на паскале уже писалась мною.
До последней точки с запятой в коде...
Necare вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исправление ошибок toldo Microsoft Office Word 2 09.01.2011 15:22
Исправление кода... SwIm Помощь студентам 3 19.01.2010 01:43
Исправление лабораторной) Sudeki Помощь студентам 0 08.12.2009 22:02
Исправление Behold Фриланс 5 10.09.2009 13:32
Исправление ошибки bee_uk Общие вопросы C/C++ 1 02.06.2009 13:43