Реализовать последовательный поиск в динамическом массиве целых чисел - Pascal ABC
Формулировка задачи:
2)Реализовать последовательный поиск в динамическом массиве целых чисел.
Решение задачи: «Реализовать последовательный поиск в динамическом массиве целых чисел»
textual
Листинг программы
var a:^array[1..100] of integer;
n,i,k,x:integer;
begin
new(a);
repeat
write('Введите размер массива от 1 до 100 n=');
readln(n);
until n in [1..100];
for i:=1 to n do
begin
a^[i]:=1+random(100);
write(a^[i]:4);
end;
writeln;
write('Введите число для поиска x=');
readln(x);
i:=1;
k:=0;
while(i<=n)and(k=0) do
if a^[i]=x then k:=1
else inc(i);
if k=1 then write('Число ',x,' в массиве есть')
else write('Числа ',x,' в массиве нет')
end.
Объяснение кода листинга программы
- Создается переменная
aтипа^array[1..100] of integer;, которая представляет собой динамический массив целых чисел размером от 1 до 100. - Затем объявляются четыре переменные:
n,i,kиx. Переменнаяnиспользуется для хранения введенного пользователем размера массива, а переменныеi,kиxиспользуются для выполнения поиска в массиве. - Выполняется цикл
repeat, который продолжается до тех пор, пока введенный пользователем размер массиваnнаходится в диапазоне от 1 до 100. В каждой итерации цикла выводится запрос на ввод размера массива, и значение размера сохраняется в переменнойn. - После завершения цикла
repeatначинается циклfor, который выполняется от 1 доn. В каждой итерации цикла вычисляется значение индекса элемента массива, который будет заполнен следующим числом. Затем вычисляется значение числа, которое будет добавлено в массив. Это число равно1 + random(100), где функцияrandom(100)генерирует случайное число от 0 до 99. - После завершения цикла
forвыводится значениеa^[i](то есть значение элемента массива с индексомi), чтобы убедиться, что добавление чисел в массив происходит корректно. - Затем выводится запрос на ввод числа для поиска (
x). Значение этого числа сохраняется в переменнойx. - Инициализируются две переменные:
iиk. Переменнаяiустанавливается равной 1, а переменнаяkустанавливается равной 0. - Запускается цикл
while, который выполняется, покаiменьше или равноnиkравно 0. - Внутри цикла
whileвыполняется проверка условияif a^[i] = x then k := 1, что означает, что если текущий элемент массива равен искомому числу, то переменнаяkустанавливается равной 1. - Если условие истинно, то выводится сообщение
Число x в массиве есть, что означает, что искомое число найдено в массиве. - Если условие ложно, то выводится сообщение
Числа x в массиве нет, что означает, что искомое число не найдено в массиве. - После завершения цикла
whileзначение переменнойkвыводится на экран. Если значениеkравно 1, то сообщение о том, что искомое число найдено, будет выведено, иначе будет выведено сообщение о том, что искомое число не найдено.