Примеры задач

Строки символов


Напишите функцию nonalpha, которая получает параметр str типа string и возвращает позицию его первой литеры, не являющейся буквой прописной или строчной.

Методика решения

Пример: Прогр5аммирование. Ответ: 6

Используемые переменные:
str(в функции)– строка;
i(в функции) – текущий номер литеры;
j(в функции) – параметр цикла;
f(в функции) – логическая переменная;
st – строка.
А так же используется константа a – сторока, состоящая из всех символов, не являющихся буквами.

Функция nonalpha
Входным параметром функции является строка str .
В цикле перебираем литеры строки. Сравниваем каждый из них со всеми символами строки константы a . Если символ, содержится в строке a , то он не является буквой. В этом случае логической переменной присваиваем true , а функции возвращаем позицию текущей литеры строки str . Этот цикл повторяем пока не закончилась строка и пока логическая переменная имеет значение false .
После цикла, если не найдено ни одной литеры, не являющейся буквой (логическая переменная равна false ), то функции возвращаем 0.
В основной программе считываем с экрана строку St , вызываем функцию nonalpha(st) и выводим на экран получившееся значение.

Листинг программы

Program ex4_1;
Uses Crt;
const a:string [40]='1234567890/\< >`?.,";:][=+-()*&^%$#@!~';
var st:string [10];
function nonalpha(str:string):integer;
var f:boolean; i,j:integer;
begin
i:=1;
f:=false;
while (i<=length(str)) and (f=false) do
begin
for j:=1 to length(a) do
if str[i]=a[j] then
>begin
f:=true; nonalpha:=i;
end;
i:=i+1;
end;
if f=false then nonalpha:=0;
end;
begin
clrscr;
writeln ('Введите строку');
readln (st);
writeln ('Результат:');
writeln(nonalpha(st));
readkey;
end.

Запустить программу






Назад