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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2014, 16:00   #1
VladKB1
Форумчанин
 
Регистрация: 21.05.2014
Сообщений: 121
Восклицание Циклический сдвиг элементов массива (TurboPascal)

Помогите решить задачу с помощью циклического сдвига элементов массива:

Прочитайте из первой строки число n, n≤10, со второй строки – n элементов массива.
Поменяйте местами элементы массива зеркально относительно центра так, как показано в
примере ввода-вывода.
В программе можно использовать не более одного массива.
Ввод и вывод данных должен проводиться так, как показано в примере фрагмента программы.
Пример фрагмента программы:
...
for i:=1 to n do read(a[i]);
...
for i:=1 to n-1 do write(a[i],' ');
writeln(a[n]);
...
input.txt
5
1 2 3 4 5
output.txt
5 4 3 2 1


Задачу решил если кому-то это поможет вот код:

Код:
var
 n,i,j: longint;
 a: array [0..100] of longint;
begin
 assign(input,'input.txt');
 reset(input);
 assign(output,'output.txt');
 rewrite(output);
 read(n);

 if n = 0 then
 begin
  writeln;
  halt;
 end;

 for i:=1 to n do read(a[i]);

 for i:=1 to n div 2 do
 begin
  a[0]:=a[i];
  a[i]:=a[n+1-i];
  a[n+1-i]:=a[0];
 end;
 for i:=1 to n-1 do write(a[i],' ');
 writeln(a[n]);
end.

Последний раз редактировалось VladKB1; 02.06.2014 в 22:51. Причина: Добавление решения задачи
VladKB1 вне форума Ответить с цитированием
Старый 02.06.2014, 16:15   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

http://www.programmersforum.ru/showp...6&postcount=29
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 02.06.2014, 16:24   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
for i:=1 to n div 2 do begin x:=a[i]; a[i]:=a[n+1-i]; a[n+1-i]:=x; end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.06.2014, 22:46   #4
VladKB1
Форумчанин
 
Регистрация: 21.05.2014
Сообщений: 121
Радость

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
for i:=1 to n div 2 do begin x:=a[i]; a[i]:=a[n+1-i]; a[n+1-i]:=x; end;
Спасибо это оказалось легко , а я... Теперь всё работает ещё раз огромное спасибо!
VladKB1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Осуществить циклический сдвиг элементов массива влево на К позиций (Delphi) ALEXandr20333 Помощь студентам 8 13.02.2014 23:04
Осуществить циклический сдвиг элементов прямоугольной матрицы на n элементов вправо или вниз Nekro95 Помощь студентам 12 07.11.2012 22:31
циклический сдвиг элементов массива Carter Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2011 19:54
Описать процедуру,осуществляющую циклический сдвиг элементов массива на k позиций Bloodpoisoning Общие вопросы C/C++ 0 29.11.2010 15:50