Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгор_ТХТК_пособие.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

I, j, p, n, m, k:integer;

begin

write(' введите n, m, k'); readln(n, m, k);

writeln ('введите массив a);

for i:=1 to n do readln (a[i]);

writeln ('введите массив b');

for i:=1 to m do readln (b[i]);

writeln ('введите массив c');

for i:=1 to k do readln (c[i]);

{ удаление элементов из a }

for i=:1to m do

begin

for i:=b[i] to n-1 do a[i]:=a[i+1];

n:=n-1;

end;

{ вставка элементов в a }

for j:=1 to k do

begin

if c[j]>=a[n] then {если c[j] - наибольший - его ставим в конец массива.}

begin

a[n+1]:=c[j]; n:=n+1;

end;

else

for i:=1 to n do

if a[i]>c[j] then

begin

for p: =n down to i do

a[p+1]:=a[p];

a[i]:=c[j];

n:=n+1; go to 3;

end;

3: end;

for i:=1 to n do

writeln (a[i]);

end.

Пример 5.11 Составить программу упорядочивания элементов массива х, состоящего из nd элементов, расположив их в порядке возрастания в том же массиве.

  1. Упорядочивание элементов массива по возрастанию можно выполнить, используя прием нахождения наименьшего элемента. В исходной последовательности найдем наименьший элемент и запомним его порядковый не мер к. Элемент хi поменяем местами с элементом хk. После этого наименьший элемент окажется на первом месте. Такую же процедуру необходимо проделать с оставшимися элементами от 2 до nd. В этом случае наименьший элемент xk нужно поменять местами со вторым элементом. На втором месте окажется второй по величине элемент. Процедуру поиска наименьшего элемента нужно повторить nd-1 раз. Последний элемент сам с собой можно не сравнивать. В алгоритм поиска минимального элемента вводим блок для запоминания порядкового номера этого элемента. Такой метод упорядочивания элементов массива называют методом перестановок.

program perestan; {Упорядочивание элементов массива методом перестановок}

const nmax = 100;

type

mass = array [1 .. nmax] of real;

var

I, j, k, nd : integer;

Xmin : real;

X : mass;

begin

read(nd);

for i := 1 to nd do

begin

write(' Введите ',i,'-й элемент массива ');

readln(x[i])

end;

for i := 1 to nd - 1 do

begin

xmin := x[i]; k := i;

for j := i+1 to nd do

if x[j] < xmin then

begin

xmin := x[j];

k:=j

end;

x[k] := x[i];

x[i] := xmin

end;

for i:= 1 to nd do

write(x[i]:8:2)

end.

B программе под мас­сив x отводится 100 ячеек памяти. Очевидно, что пере­менная nd не может быть больше 100. Хорошо было бы дополнить программу про­веркой nd при вводе. Если введено значение nd боль­шее 100, дать соответству­ющее сообщение и вернуть­ся на начало ввода.

Пример 5.12 Составить программу упорядочивания элементов массива x, со­стоящего из nd элементов, расположив их в порядке возрастания в том же мас­сиве. Использовать пузырь­ковый метод.

Сортировка множества данных является одной из центральных проблем обра­ботки данных. Задачу упоря­дочивания элементов мас­сива можно решать разными способами. Пузырьковый ме­тод заключается в том, что последовательно сравнива­ются между собой два со­седних элемента и меняют­ся местами, если xj-1 > xj.

program puzirok;

{Упорядочивание элементов массива методом сравнения двух соседних элементов}

const nmax =100;

type

mass = array [1 .. nmax] of real;