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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2017, 22:45   #1
C_i_K_a_D_a
Пользователь
 
Регистрация: 07.02.2017
Сообщений: 15
Радость Pascal ABC.net Сдвиг элементов массива на одну позицию влево

Помогите пожалуйста! Не могу понять как это сделать.
Как произвести сдвиг всех элементов массива на одну позицию влево (первый элемент встает вместо последнего)


const
N = 14;
type
mas = array [1..N] of integer;
var
a : mas;
Sm : integer;

Procedure Inp ;
var
i :integer;
begin
for i := 1 to N do
begin
Write ('Введите элемент с индексом (',i,') : ');
readln(a[i]);
end
end;

Procedure Out;
var
i :integer;
begin
for i :=1 to N do
write(a[i]:5);
writeln
end;

{Здесь нужен сдвиг элементов массива на одну позицию влево}

Function Sum :integer;
var
i ,S :integer;
begin
S := 0;
for i :=1 to N do
if a[i] > 0 then
inc(S);
Sum := S;
end;

begin
Inp ;
Out;
{Здесь нужен сдвиг элементов массива на одну позицию влево}
Inp;
Sm := Sum;
Writeln('Кол-во положительных элемнтов в массиве :',Sm);

end.
Изображения
Тип файла: jpg Безымянный.jpg (60.0 Кб, 119 просмотров)
C_i_K_a_D_a вне форума Ответить с цитированием
Старый 19.02.2017, 23:25   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Может так?

0.jpg

А ну, попробуй мою идею для своих 14 элементов (я рассмотрел массив только из 4-х). Сначала набери просто операторами присваивания (например для шага №2: "a[1]=a[2];"); проверь чтобы программа правильно выдавала результат, а потом подумаем как это оформить с помощью цикла "for".
ura_111 вне форума Ответить с цитированием
Старый 20.02.2017, 06:02   #3
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
const
 N = 14;
 type
 mas = array [1..N] of integer;
 var
 a : mas;
 Sm,i,z : integer;

 Procedure Inp ;
 var 
 i :integer;
 begin
 for i := 1 to N do 
 begin
 Write ('Введите элемент с индексом (',i,') : ');
 readln(a[i]);
 end
 end;

 Procedure Out1;
 var
 i :integer;
 begin
 for i :=1 to N do
 write(a[i]:5);
 writeln
 end;

 Function Sum :integer;
 var 
 i ,S :integer;
 begin
 S := 0;
 for i :=1 to N do 
 if a[i] > 0 then
 inc(S);
 Sum := S; 
 end;

begin
 Inp ;
 Out1;
 z:=a[1];
 For i:=2 to N-1 do
    a[i]:=a[i+1];
 a[N]:=z;
 Out1;
 Sm := Sum;
 Writeln('Кол-во положительных элемнтов в массиве :',Sm);
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 21.02.2017, 20:57   #4
C_i_K_a_D_a
Пользователь
 
Регистрация: 07.02.2017
Сообщений: 15
По умолчанию

Спасибо большое! теперь лучше понял как это происходит!
Цикл составил) :

z:=a[1];
For i:=1 to N-1 do
a[i]:=a[i+1];
a[N]:=z;
C_i_K_a_D_a вне форума Ответить с цитированием
Старый 21.02.2017, 21:00   #5
C_i_K_a_D_a
Пользователь
 
Регистрация: 07.02.2017
Сообщений: 15
По умолчанию

Спасибо вам большое ,но вот только там я понял ,что цикл не от i := 2 ,а от i := 1 надо было. Ну я понял спасибо вам!
Почему добавив , как Procedure, программа игнорирует это ? Вы написали в основном теле программы(это я понял)

Procedure Change;
var
i , z :integer;
begin
z := a[1];
for i := 1 to N - 1 do
a [i] := a[i + 1];
a[ N ] := z;
end;
C_i_K_a_D_a вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Осуществить циклический сдвиг элементов массива влево на К позиций (Delphi) ALEXandr20333 Помощь студентам 8 13.02.2014 23:04
Передвинуть массив циклически влево на одну позицию Proskurina Помощь студентам 1 04.10.2012 20:32
Сдвиг элементов массива на 1 влево. Вывести матрицу в Memo Abrokadawr Помощь студентам 3 04.11.2011 23:13