Разделы презентаций


Одномерные массивы. Циклические сдвиги, сжатие

Алгоритм циклического сдвига на k позиций I способопределить сколько раз необходимо произвести одноэлементный сдвиг k := k mod n;k раз применить одноэлементный сдвиг Алгоритм одноэлементного сдвига.Запомнить в дополнительной ячейке первый (или последний) элемент

Слайды и текст этой презентации

Слайд 1Одномерные массивы
Циклические сдвиги, сжатие

Одномерные массивы Циклические сдвиги, сжатие

Слайд 2Алгоритм циклического сдвига на k позиций
I способ
определить сколько раз необходимо

произвести одноэлементный сдвиг
k := k mod n;
k раз применить одноэлементный

сдвиг
Алгоритм одноэлементного сдвига.

Запомнить в дополнительной ячейке первый (или последний) элемент массива
Сдвинуть все элементы влево (вправо)
На последнее (первое) место записать тот, который запоминали.

Алгоритм циклического сдвига на k позиций I способопределить сколько раз необходимо произвести одноэлементный сдвиг		k := k mod

Слайд 3Сдвиг вправо и влево
Program test;
Uses crt;
Сonst n=10;


Var a:array[1..n] of integer;

i,j,t,k:integer;
Begin
clrscr;
{ввод массива}
K:=k mod n;
For j:=1 to k do
Begin
t:=a[n];
for i:=n downto 2 do
a[i]:=a[i-1];
A[1]:=t;
End;
{Вывод массива}
End.

Program test;
Uses crt;
Сonst n=10;
Var a:array[1..n] of integer;
i,j,t,k:integer;
Begin
clrscr;
{ввод массива}
K:=k mod n;
For j:=1 to k do
Begin
t:=a[1];
for i:=1 to n-1 do
a[i]:=a[i+1];
A[n]:=t;
End;
{Вывод массива}
End.

Сдвиг вправо и влевоProgram test;Uses crt;Сonst n=10;          Var

Слайд 4II способ
Скопировать первые k элементов массива во временный массив
Сдвинуть

оставшиеся n-k элементов влево на k позиций
Скопировать данные из временного

массива обратно в основной массив на последние k позиций
II способ Скопировать первые k элементов массива во временный массивСдвинуть оставшиеся n-k элементов влево на k позицийСкопировать

Слайд 5III способ
отобразить элементы массива(1, k)
отобразить элементы массива (k+1, n)
отобразить элементы

массива (1, n)

III способотобразить элементы массива(1, k)отобразить элементы массива (k+1, n)отобразить элементы массива (1, n)

Слайд 6j-сколько раз произвести обмен, left - левая граница отображения, right

- правая граница отображения,
Dlina - длина отображаемой части массива


j:=1; left:=1; right:=k; dlina:=right-left+1;
(***) while j<=dlina div 2 do begin
temp:=a[left];
a[left]:=a[right];
a[right]:=temp;
inc(left);dec(right);inc(j);
end;
j:=1; left:=k+1; right:=n; dlina:=right-left+1;
(***) {повторить цикл}
j:=1; left:=1; right:=n; dlina:=right-left+1;
(***) {повторить цикл}
j-сколько раз произвести обмен, left - левая граница отображения, right - правая граница отображения, Dlina - длина

Слайд 7Сжатие массива.

Удаление каждого k-го элемента:
i – индекс активного элемента
l -

индекс просматриваемого элемента
kol – количество элементов после всех удалений.
i:=k; l:=k;
while

l<=n do begin
if l mod k=0 then inc(l);
if l<=n then a[i]:=a[l];
inc(i); inc(l);
end;
kol:=n-n div k;
Сжатие массива.Удаление каждого k-го элемента:i – индекс активного элементаl - индекс просматриваемого элементаkol – количество элементов после

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика