Одномерные массивы Циклические сдвиги, сжатие. Алгоритм циклического сдвига на k позиций I способ 1. определить сколько раз необходимо произвести одноэлементный.

Презентация:



Advertisements
Похожие презентации
1 Обработка массивов. 2 Реверс массива Задача: переставить элементы массива в обратном порядке. Алгоритм: поменять местами A[1] и A[N], A[2] и A[N-1],
Advertisements

Шутилина Л.А., A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5]
1 Программирование на языке Паскаль Обработка массивов.
К. Поляков, Программирование на языке Паскаль Часть III Тема. Массивы.
Массив – совокупность конечного числа данных одного типа.
Алгоритмы сортировки Алгоритмы сортировки отличаются друг от друга: - степенью эффективности ( кол-во сравнений); - кол-вом обменов, производимых в процессе.
Тема: « Вставка- удаление элементов массива » :18:06.
Задача. Сдвинуть одномерный массив на один элемент влево. Например, исходный массив Обработанный массив: Фрагмент программы:
Месяц T [ 1:12 ]T [1]T [2]T [3]T [4]T [5]T [6]T [7]T [8]T [9]T [10]T [11]T [12] Температура начало конец.
A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5] Двумерный массив можно представить.
PROGRAM example1; const m=100; var a : ARRAY [1.. m] of INTEGER; i,k,n,q : INTEGER; BEGIN readln (n); randomize; WRITELN('Полученный массив:' ); FOR i.
1 Случайные числа на языке Паскаль Тип величины Диапазон значений Паскаль Веществен ный [ 0, 1 ]x : = random [ 0, a]x : = random * a [ a, b ]x : = random.
«Одномерные массивы. Применяемые операции» 08/04/13урок 1 Цель урока: научиться описывать одномерные массивы в языке программирования Turbo Pascal 7.0.
Чтобы найти максимальный элемент в массиве и потом производить с ним какие-либо действия, нужно узнать его номер (индекс - I).Чтобы найти максимальный.
Тема: «Понятие массива. Назначение. Тип. Размер. Размерность. Одномерный массив» :56:36.
3. Дана прямоугольная матрица, элементами которой являются целые числа. Поменять местами ее строки следующим образом: первую строку с последней, вторую.
Массив- совокупность однотипных данных, хранящихся в последовательных ячейках памяти и имеющих общее имя. Ячейка - это элемент массива. Номер элемента.
Задачи с использованием одномерных массивов 1. Опишите алгоритм подсчёта среднего значения положительных элементов в целочисленном массиве из 30 элементов.
Тема: «Понятие квадратная матрица» :17:47.
Задачи с использованием одномерных массивов 1. Опишите алгоритм подсчёта среднего значения положительных элементов в целочисленном массиве из 30 элементов.
Транксрипт:

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

Алгоритм циклического сдвига на k позиций I способ 1. определить сколько раз необходимо произвести одноэлементный сдвиг k := k mod n; 2. k раз применить одноэлементный сдвиг Алгоритм одноэлементного сдвига. 1)Запомнить в дополнительной ячейке первый (или последний) элемент массива 2)Сдвинуть все элементы влево (вправо) 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.

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

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

j- сколько раз произвести обмен, left - левая граница отображения, right - правая граница отображения, Dlina - длина отображаемой части массива j:=1; left:=1; right:=k; dlina:=right-left+1; (***) while j

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