|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.02.2017, 22:45 | #1 |
Пользователь
Регистрация: 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. |
19.02.2017, 23:25 | #2 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Может так?
0.jpg А ну, попробуй мою идею для своих 14 элементов (я рассмотрел массив только из 4-х). Сначала набери просто операторами присваивания (например для шага №2: "a[1]=a[2];"); проверь чтобы программа правильно выдавала результат, а потом подумаем как это оформить с помощью цикла "for". |
20.02.2017, 06:02 | #3 |
Я самый любопытный
Участник клуба
Регистрация: 24.07.2012
Сообщений: 1,949
|
Код:
|
21.02.2017, 20:57 | #4 |
Пользователь
Регистрация: 07.02.2017
Сообщений: 15
|
Спасибо большое! теперь лучше понял как это происходит!
Цикл составил) : z:=a[1]; For i:=1 to N-1 do a[i]:=a[i+1]; a[N]:=z; |
21.02.2017, 21:00 | #5 |
Пользователь
Регистрация: 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; |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Осуществить циклический сдвиг элементов массива влево на К позиций (Delphi) | ALEXandr20333 | Помощь студентам | 8 | 13.02.2014 23:04 |
Передвинуть массив циклически влево на одну позицию | Proskurina | Помощь студентам | 1 | 04.10.2012 20:32 |
Сдвиг элементов массива на 1 влево. Вывести матрицу в Memo | Abrokadawr | Помощь студентам | 3 | 04.11.2011 23:13 |