ВУЗ:
Составители:
Рубрика:
171
until (1<=n) and (n<=nn); { на отрезок от 1 до nn }
{ Вводим элементы массива }
for i:=1 to n do
begin write('Введите элемент массива B[',i:2,']=');
readln(b[i])
end;
write('Введите искомый элемент ');
readln(a);
i:=1; { начинаем просмотр с первого элемента }
f:=false; { пока не найдено }
while (i<=n) and not f do
{ просматриваем массив, пока есть элементы и не найден искомый }
if b[i]=a { если совпали, }
then f:=true { то нашли, }
else i:=i+1; { иначе перейти к следующему элементу }
if f { вывод результатов поиска }
then write('Номер найденного
элемента ',i)
else write('Не нашли')
end.
Тестирование.
Тест 1. n=8, B[1]=2, B[2]=8, B[3]=3, B[4]=1, B[5]=9, B[6]=2, B[7]=2, B[8]=2, a=5.
Результат поиска: «Не нашли».
Тест 2. n=7, B[1]=2, B[2]=8, B[3]=3, B[4]=1, B[5]=9, B[6]=8, B[7]=2, a=8.
Результат поиска: «Номер найденного элемента 2».
Вариант 2 (линейный поиск с барьером). В этом варианте программы
применяется широко распространенный прием фиктивного элемента, или барьера,
расположенного в конце массива. Использование барьера позволяет упростить
условие окончания цикла, т.к. заранее ясно, что хотя бы один элемент, равный а, в
массиве есть.
program POISK1;
{ поиск с барьером в одномерном массиве }
const nn=12; { константа задает максимальный размер массива }
type mas1=array[1..nn] of integer; { тип
массива }
var b : mas1; { исходный массив }
n : integer; { размер массива }
a : integer; { число для поиска }
i : integer; { индекс массива }
begin
write('Введите размер массива от 1 до ',nn-1);
repeat { вводим n до тех пор, }
readln(n); { пока оно не попадет }
until (1<=n) and (n<=nn); { на отрезок от 1 до nn-1 }
{ Вводим элементы массива }
for i:=1 to n do
begin
write('Введите элемент массива B[',i:2,']=');
171 until (1<=n) and (n<=nn); { на отрезок от 1 до nn } { Вводим элементы массива } for i:=1 to n do begin write('Введите элемент массива B[',i:2,']='); readln(b[i]) end; write('Введите искомый элемент '); readln(a); i:=1; { начинаем просмотр с первого элемента } f:=false; { пока не найдено } while (i<=n) and not f do { просматриваем массив, пока есть элементы и не найден искомый } if b[i]=a { если совпали, } then f:=true { то нашли, } else i:=i+1; { иначе перейти к следующему элементу } if f { вывод результатов поиска } then write('Номер найденного элемента ',i) else write('Не нашли') end. Тестирование. Тест 1. n=8, B[1]=2, B[2]=8, B[3]=3, B[4]=1, B[5]=9, B[6]=2, B[7]=2, B[8]=2, a=5. Результат поиска: «Не нашли». Тест 2. n=7, B[1]=2, B[2]=8, B[3]=3, B[4]=1, B[5]=9, B[6]=8, B[7]=2, a=8. Результат поиска: «Номер найденного элемента 2». Вариант 2 (линейный поиск с барьером). В этом варианте программы применяется широко распространенный прием фиктивного элемента, или барьера, расположенного в конце массива. Использование барьера позволяет упростить условие окончания цикла, т.к. заранее ясно, что хотя бы один элемент, равный а, в массиве есть. program POISK1; { поиск с барьером в одномерном массиве } const nn=12; { константа задает максимальный размер массива } type mas1=array[1..nn] of integer; { тип массива } var b : mas1; { исходный массив } n : integer; { размер массива } a : integer; { число для поиска } i : integer; { индекс массива } begin write('Введите размер массива от 1 до ',nn-1); repeat { вводим n до тех пор, } readln(n); { пока оно не попадет } until (1<=n) and (n<=nn); { на отрезок от 1 до nn-1 } { Вводим элементы массива } for i:=1 to n do begin write('Введите элемент массива B[',i:2,']=');
Страницы
- « первая
- ‹ предыдущая
- …
- 167
- 168
- 169
- 170
- 171
- …
- следующая ›
- последняя »