![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.02.2017
Сообщений: 15
|
![]()
Помогите пожалуйста! Не могу понять как это сделать.
Как произвести сдвиг всех элементов массива на одну позицию влево (первый элемент встает вместо последнего) ![]() 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. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
![]()
Может так?
0.jpg А ну, попробуй мою идею для своих 14 элементов (я рассмотрел массив только из 4-х). Сначала набери просто операторами присваивания (например для шага №2: "a[1]=a[2];"); проверь чтобы программа правильно выдавала результат, а потом подумаем как это оформить с помощью цикла "for". |
![]() |
![]() |
![]() |
#3 |
Я самый любопытный
Участник клуба
Регистрация: 24.07.2012
Сообщений: 1,981
|
![]() Код:
![]() |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 07.02.2017
Сообщений: 15
|
![]()
Спасибо большое! теперь лучше понял как это происходит!
Цикл составил) : z:=a[1]; For i:=1 to N-1 do a[i]:=a[i+1]; a[N]:=z; |
![]() |
![]() |
![]() |
#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 |