Линейный поиск в массиве - Pascal ABC
Формулировка задачи:
Дан массив размером в n элементов, необходимо в массиве найти символ, который задаст юзер. Я запилил поиск для чисел, а вот как для буковок или других символов сделать - не знаю. Товарищи, засапортте, по-братски
Решение задачи: «Линейный поиск в массиве»
textual
Листинг программы
uses crt; const nmax=20; var a:array[1..nmax] of char; i,n,idxi,k:integer; c:char; begin repeat write('n='); readln(n); until n in [1..nmax]; for i:=1 to n do readln(a[i]); writeln('ГЊГ*Г±Г±ГЁГў ñèìâîëîâ :'); for i:=1 to n do write(a[i]:4); writeln; write('Ââåäèòå ñèìâîë = '); readln(c); //Ââîäÿòñÿ ñòðî÷Г*ûå ГЎГіГЄГўГ» k:=0; for i:=1 to n do if a[i]=c then begin idxi:=i; inc(k); break; end; if k=0 then writeln('ÑèìâîëГ* ',c,' Г*ГҐГІГі..') else writeln('Ñèìâîë ',c,' ГҐГ±ГІГј ГҐГЈГ® ïîçèöèÿ i=',idxi); end.
Объяснение кода листинга программы
Данный код выполняет линейный поиск в массиве.
- Сначала объявляются необходимые переменные: nmax (максимальное количество элементов в массиве), a (массив для хранения значений), i (индекс текущего элемента), n (количество элементов в массиве), idxi (индекс найденного элемента), k (счетчик найденных элементов). Также объявляется переменная c для чтения значения из массива.
- Затем идет цикл, который повторяется до тех пор, пока n не станет равным 0. В каждой итерации цикла пользователю предлагается ввести значение n.
- Далее происходит цикл for, который проходит по каждому элементу массива от 1 до n. Внутри этого цикла пользователь вводит значения для каждого элемента массива.
- После этого происходит проверка на равенство текущего элемента и c. Если они равны, то записывается индекс текущего элемента и увеличивается счетчик k.
- Если k равно 0, то выводится сообщение о том, что элемент не найден. В противном случае выводится сообщение с указанием индекса найденного элемента.
- Код завершается после выполнения всех циклов.