Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для GDmit
0 / 0 / 0
Регистрация: 14.10.2016
Сообщений: 1

Сдвинуть последовательность

14.10.2016, 20:36. Показов 1043. Ответов 2

Студворк — интернет-сервис помощи студентам
Дана последовательность из N (1 ≤ N ≤ 100000) целых чисел и число K (|K| ≤ 100000). Сдвинуть всю последовательность на |K| элементов вправо, если K – положительное и влево, если отрицательное, и вывести (не меняя элементы массива местами)

Ограничение 1 секунда.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var n,i,m:integer;
a:array[1..100000] of integer;
begin
readln(n);
for i:=1 to n do
read(a[i]);
read(m);
if m>=0 then begin
    m:=(m mod n);
    for i:=(n-m+1) to n do 
    write(a[i], ' ');
    for i:=1 to (n-m) do
    write(a[i], ' ');
    m:=1;
    end;
if m<0 then begin
  m:=abs(m);
  m:=(m mod n)+1;
    for i:=m to n do 
    write(a[i], ' ');
    for i:=1 to m-1 do
    write(a[i], ' ');
    m:=1
    end;
end.
Подскажите, как сделать рациональнее
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.10.2016, 20:36
Ответы с готовыми решениями:

Дана последовательность А1...А50. Получить новую последовательность, исключив отрицательные элементы
Дана последовательность А1...А50. Получить новую последовательность, исключив отрицательные элементы

2. Дана целочисленная последовательность. Определить количество вхождений каждого числа в последовательность
Написал программу var a,c:array of integer; count,i,p,u: integer; begin for i:=1 to 10 do begin read(p); a:=p; end;

Вставить в последовательность число так, чтобы последовательность осталась неубывающей.
Дана последовательность действительных чисел а1&lt;=а2...&lt;=an. Вставить в нее действительное число b так, чтобы последовательность осталась...

2
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
15.10.2016, 08:57
Попробуйте так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var n,k,s,i1,i2,i3,i4,i:integer;
    a:array[1..100000] of integer;
begin
readln(n);
for i:=1 to n do
read(a[i]);
read(k);
s:=abs(k) mod n;
if k=0 then
 begin
  i1:=1;
  i2:=n;
  i3:=2;
  i4:=1;
 end
else if k>0 then
 begin
  i1:=n-s+1;
  i2:=n;
  i3:=1;
  i4:=n-s;
 end
else
 begin
  i1:=s+1;
  i2:=n;
  i3:=1;
  i4:=s;
 end;
for i:=i1 to i2 do
write(a[i], ' ');
for i:=i3 to i4 do
write(a[i], ' ');
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
15.10.2016, 11:15
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
  n, k, i: Integer;
  a: array[0..99999] of Integer;
  b: array [0..4*1024-1] of Char;
begin
  SetTextBuf(output,b);
  ReadLn(n);
  for i:=0 to n-1 do Read(a[i]);
  Read(k); k:=k mod n;
  if k>=0 then begin
    for i:=n-k to n-1 do Write(' ',a[i]);
    for i:=0 to n-k-1 do Write(' ',a[i]);
  end else begin
    for i:=-k to n-1 do Write(' ',a[i]);
    for i:=0 to -k-1 do Write(' ',a[i]);
  end;
end.
Добавлено через 5 минут
Что, очевидно, можно записать как:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var
  n, k, i: Integer;
  a: array[0..99999] of Integer;
  b: array [0..4*1024-1] of Char;
begin
  SetTextBuf(output,b);
  ReadLn(n);
  for i:=0 to n-1 do Read(a[i]);
  Read(k); k:=k mod n;
  for i:=Ord(k>=0)*n-k to n-1 do Write(' ',a[i]);
  for i:=0 to Ord(k>=0)*n-k-1 do Write(' ',a[i]);
end.
Добавлено через 1 минуту
Строки 4 и 6 для повышения скорострельности вывода, на алгоритм не влияют и, если скорости вывода хватает, могут быть также благополучно выброшены.
Pascal
1
2
3
4
5
6
7
8
9
var
  n, k, i: Integer;
  a: array[0..99999] of Integer;
begin
  Read(n); for i:=0 to n-1 do Read(a[i]);
  Read(k); k:=k mod n;
  for i:=Ord(k>=0)*n-k to n-1 do Write(' ',a[i]);
  for i:=0 to Ord(k>=0)*n-k-1 do Write(' ',a[i]);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.10.2016, 11:15
Помогаю со студенческими работами здесь

дана последовательность вещественных чисел а1,а2,.а15 Определить являеться ли последовательность упорядоченной по возрастанию
дана последовательность вещественных чисел а1,а2,...а15 Определить являеться ли последовательность упорядоченной по возрастанию. В случае...

Вводится последовательность натуральных чисел. Признак конца ввода – 0. определить является ли последовательность геометрической прогрессией
Помогите пожалуйста написать программу на языке Паскаль, без использования массива.

Вводится последовательность из N целых чисел, отличных от нуля. Определить, сколько раз последовательность меняет знак
Вводится последовательность из N целых чисел, отличных от нуля. Определить, сколько раз последовательность меняет знак. паскаль:)

сдвинуть столбцы в массиве
В заданном целочисленном массиве Anm сдвинуть все столбцы на один шаг вправо (последний столбец – на первое место) С использованием...

Сдвинуть массив на 2 элемента.
Добрый вечер, уважаемые. Прошу Вас помочь решить задачу, текст которой представлен далее. Задан одномерный массив B(N), где N - заданное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru