Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры информатика 2012.doc
Скачиваний:
16
Добавлен:
17.04.2019
Размер:
11.54 Mб
Скачать

11. Поиск номера элемента последовательности с заданным значением.

По условию поиска для некоторой исходной последовательности необходимо определить номер элемента, значение которого равно значению заданной переменной Р. В нашем случае поиск повторяется до тех пор, пока не будет найден нужный элемент последовательности, равный некоторому эталону Р. Если элемент будет найден, то индекс найденного элемента будет минимально возможным. Но в заданной последовательности может не оказаться элемента со значением. Если предполагается, что в исходной последовательности может быть только один элемент, равный эталону, то, после того как этот элемент найден, поиск можно закончить. Если таких элементов, равных эталону Р, будет несколько, то можно задать дополнительное условие, какой по порядку найденных необходим.( задается доп переменная)

Основной алгоритм поиска будет следующим: 1. Сравнить очередной элемент 2. Перейти к следующему элементу 3. Если не все элементы просмотрены, повторить, начиная с п.1.

Алгоритм должен однозначно реагировать на ситуацию, если искомого значения в последовательности нет. Для этой цели введем в алгоритм переменную k, начальное значение которой равно 0. Результат k>0 – номер найденного элемента. Если элемент со значением P не найден, то результат k остается нулевым.

var a:array[1..10]of integer;

i,n,k:integer;

begin

writeln('Введите количество элементов ряда');

readln(n);

writeln('Введите элементы ряда');

for i:=1 to n do

readln(a[i]);

writeln('Введите номер элемента');

readln(k);

writeln(a[k]);

readln;

end.

12. Сортировка. Простой выбор.

Идея Выделяется наименьший (наибольший) элемент массива и отделяется от остальных. Далее опять выделяется наименьший(наибольший) из оставшихся и т.д.

Например, расположить элементы последовательности А1,А2..Аn в порядке возрастания. Найти в массиве элемент с наименьшим значением и поменять его местами с первым элементом. Далее те же действия выполнить с остальными N-1 элементами массива, затем с N-2 элементами и т.д., пока не останется один элемент, последний, наибольший.

Допустим, что два первых элемента являются упорядоченными. Если несколько элементов последовательности оказываются равными, то следует найти первый среди максимальных элементов. Таким образом, можно достичь устойчивости сортировки. Найденный элемент из двух первых и третий нужно поменять местами. Для получения результата необходимо N-1 раз найти максимальное значение в массиве длина которого будет уменьшаться с каждым шагом на 1. Словестный алгоритм сортировки просты выбором: 1. Начинаем сортировку с первого элемента i=1 2. Найти максимальный элемент и его номер в массиве А1,А2..,An. 3. Поменять местами Ai и максимальный элемент Ak 4. Перейти к следующему элементу i:=i+1; 5. Если рассмотрены не все N-1 элементы, то повторить с п.2.

var a:array of integer;

i,j,k,n:integer;

x:integer;

begin

write('kol-vo elementov= '); readln(n);

setlength(a,n);

randomize;

for i:=1 to n do begin

a[i]:=random(100);

write(' ',a[i]);

end;

for i:=1 to n-1 do begin

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

for j:=i+1 to n do begin

if a[j]>x then begin

x:=a[j]; k:=j;

end;

end;

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

end;

writeln;

writeln('________________');

for i:=1 to n do write(' ',a[i]);

readln;