Одна из важных невычислительных задач — поиск данного значения среди элементов массива, Такой поиск называется также поиском по ключу. На практике поиск осуществляется в упорядоченном массиве, причем имеются различные алгоритмы поиска. В данном примере осуществим поиск путем сплошного перебора. Если элемент найден, то напечатаем его номер, если нет, то выдадим соответствующее сообщение. Существенным является то, какой из одинаковых элементов массива, равных данному, нас интересует: первый встретившийся при поиске или последний. В этом примере будем искать первый. Поиск осуществляется в цикле, и как только элемент найден, надо выйти из цикла. Для досрочного выхода из цикла for используем оператор goto. Если досрочный выход не произойдет, то значит, элемент, равный данному, в массиве отсутствует. В таком случае выдача сообщения об отсутствии элемента происходит сразу после цикла поиска. Следовательно, чтобы обойти печать номера элемента, надо использовать еще один оператор goto и еще одну метку в программе.
|
|
Программа поиска данного элемента в массиве:
program Р15;
label 1,2;
const n = 7;
var a: array [1.. n ] of real; x: real; i: integer;
Begin
writeln (‘введите элементы массивов’);
for i: = 1 to n do
read (a [ i ]);
writeln;
write (‘введите число для поиска в массиве, х = ‘);
readln (х);
for i: = 1 to n do
if a [ i ] = x then goto 1;
writeln (‘такого числа в массиве нет’);
goto 2;
1: write (‘номер элемента массива, равного данному ‘, i);
2: end.
Если искать не первый по порядку равный ключу элемент, а последний, то надо использовать цикл обратного пересчета: for i: = n downto 1 do.