Функция для поиска буквы в строке - Pascal
Формулировка задачи:
Задача:
Напишите функцию для поиска буквы в заданной строке.Функция возвращает True, если в строке есть хоть одна эта буква , и False в противном случаи.
Написал программу, но учитель по информатике сказал, что программа очень сложна и не надежна.
Вопрос: Как сделать программу проще и надежнее???
function find(arg: string; ch: char): boolean;
var
i, n: integer;
begin
n := 0;
for i := 1 to length(arg) do
if arg[i] = ch then n := n + 1;
if n > 0 then find := true
else find := false;
end;
var
s: string;
ch1: char;
begin
writeln('Введите строку');
readln(s);
writeln('Введите буквy,наличие которой нужно проверить');
readln(ch1);
writeln(find(s, ch1));
end.Решение задачи: «Функция для поиска буквы в строке»
textual
Листинг программы
function find(arg: string; ch: char): boolean; begin find:=pos(ch,arg)>0; end;
Объяснение кода листинга программы
- Функция называется
findи принимает два аргумента:arg(строка) иch(символ). - Функция возвращает логическое значение (boolean), указывающее, найден ли символ
chв строкеarg. - Внутренний процесс функции осуществляется с помощью функции
pos, которая возвращает позицию символаchв строкеarg. Если символ найден, тоposвозвращает положительное число, большее нуля, иначе возвращается ноль. - Значение
posприсваивается переменнойfind, которая используется для определения результата функции. - Код завершается, когда функция
findвызывается с аргументамиargиch.