
- •Лабораторная работа №5
- •1. Теоретическая часть
- •1.1 Основные алгоритмы преобразования одномерных массивов.
- •1.2 Пример составления алгоритма и программы на языке Pascal для преобразования одномерного массива.
- •2. Практическая часть
- •2.1 Требования к выполнению работы:
- •2.2 Варианты индивидуальных заданий.
- •2.3 Контрольные вопросы и практические задания:
Лабораторная работа №5
“Преобразование одномерных массивов”
Цель работы: Освоение методов удаления и вставки, сортировки и преобразования одномерных массивов, разработки на их основе алгоритмов, построения и отладки программ.
1. Теоретическая часть
1.1 Основные алгоритмы преобразования одномерных массивов.
1.1.1 Алгоритм удаления элемента из массива
Блок-схема алгоритма удаления элемента с номером M из массива A, в котором N элементов выглядит следующим образом:
Соответствующий фрагмент текста программы на языке Pasal:
for i:=M to N–1 do A[i]:=A[i+1];
N:= N–1;
1.1.2 Алгоритм удаления из массива серии элементов с заданными номерами
Блок-схема алгоритма удаления серии элементов с номерами от M1 до M2 из массива A, в котором N элементов, выглядит следующим образом:
Соответствующий фрагмент текста программы на языке Pasal:
k:=M2-M1+1;
for i:=M1 to N–k do A[i]:=A[i+k];
N:= N–k;
1.1.3 Алгоритм удаления из массива элементов с заданным значением
Блок-схема алгоритма удаления всех элементов, равных заданному значению X, из массива A, в котором N элементов, выглядит следующим образом:
Соответствующий фрагмент текста программы на языке Pasal:
i:=1;
while i<=N do
begin
if A[i]=X
then begin
for j:=i to N-1 do A[j]:=A[j+1];
N:=N-1;
end
else i:=i+1;
end;
1.1.4 Алгоритм копирования элементов массива в новый массив
Блок-схема алгоритма копирования элементов, удовлетворяющих заданному условию (в данном случае – элементов, значение которых больше, чем X), из массива A, в котором N элементов, в массив B выглядит следующим образом:
В результате массив B будет содержать K элементов.
Соответствующий фрагмент текста программы на языке Pasal:
K:=0;
for i:=1 to N do
begin
if A[i]>X
then begin
K:=K+1;
B[K]:=A[i];
end;
end;
1.1.5 Алгоритм вставки нового элемента в массив
Блок-схема алгоритма вставки элемента с номером M, равного X, в массив A, который содержит N элементов, выглядит следующим образом:
Соответствующий фрагмент текста программы на языке Pasal:
N:=N+1;
for i:=N downto M+1 do A[i]:=A[i-1];
A[M]:=X;
1.1.6 Алгоритм упорядочения элементов массива
Блок-схема алгоритма упорядочения по возрастанию элементов массива A, состоящего из N элементов, методом «пузырька» выглядит следующим образом: и
Соответствующий фрагмент текста программы на языке Pasal:
for i:=1 to N-1 doёёёёёёёёёёё
begin
for j:=1 to N-i do
begin
if A[j] > A[j+1]
then begin
P:=A[j];
A[j]:=A[j+1];
A[j+1]:=P;
end;
end;
end;
Алгоритм упорядочения элементов массива по убыванию отличается только знаком в условии сравнения соседних элементов, в этом случае необходимо проверять Aj < Aj+1.
1.1.7 Алгоритм вставки элемента в упорядоченный массив
Блок-схема алгоритма вставки элемента, равного X, в упорядоченный массив A, который содержит N элементов, без нарушения упорядоченности массива выглядит следующим образом:
Соответствующий фрагмент текста программы на языке Pasal:
if X>=A[N] then A[N+1]:=X
else begin
K:=1;
while X>A[K] do K:=K+1;
for i:=N downto K do A[i+1]:=A[i];
A[K]:=X;
end;
N:=N+1;