2. Строковые величины. Для обработки текста в языке программирования Pascal есть два основных типа: Char – один символ. String – строка символов (длиной от 1 до 255). Давайте договоримся по возможности обозначать литерные величины переменными, которые начинаются с буквы S, будет проще с ними работать. При описании переменной типа String после строки Var можно в квадратных скобках указывать длину литерной величины, например: Var s1:string[10]; s2:string[50]; s3:string; В квадратных скобках указывается максимальное количество символов, которые могут быть записаны в данную переменную. ВНИМАНИЕ! Символом считается пробел, знаки препинания, буквы, текстовые значки, например, '@' или '*'. Если литерной величине присваивается значение (строка символов), то оно берется в апострофы: s:='Привет!'; Подсчитайте количество символов в литерных величинах s1, s2, s3: s1:='Привет ВСЕМ!!!'; (14) s2:='Здравствуйте! Как Вы поживаете?'; (31) s3:='33 раза УРА-А-А!!!'; (18) Литерные величины можно складывать (склеивать), например, если s1='Привет!', s2='друзья', то после выполнения операции: s:=s1+' Все мои '+s2; переменная S примет значение 'Привет! Все мои друзья'. ВНИМАНИЕ! Не забывайте про пробелы! Чтобы в конце поставить восклицательный знак, запишем так: s:=s1+' Все мои '+s2+'!'; Самое главное свойство переменной типа String – к любому символу можно обратиться по его порядковому номеру (он указывается в квадратных скобках). Например, если s='Хочу домой!', то s[3]='ч', s[5]=' ' (пробел), s[11]='!'. А если записать так: s1:=s[8]+s[2]+'х'; то переменная s2 примет значение 'мох'. Первую букву переменной S мы не взяли, потому что получили бы 'моХ'. Обратите внимание на то, что если мы запишем t:=s[5], то переменная t должна быть типа Char (один символ)! Одна из основных функций для работы со строковыми величинами: Length(s) – (читается лэнгт) длина литерной величины s (или количество символов в ли-терной величине S). То что Вы делали сегодня чуть раньше, компьютер делает за Вас: s1:='Привет ВСЕМ!!!'; length(s)=14 s2:='Здравствуйте! Как Вы поживаете?'; length(s)=31 s3:='33 раза УРА-А-А!!!'; length(s)=18 Пример 1. Подсчитайте количество букв А в предложении.
Program p1;
var s:string;
i,k:integer;
begin
write('Введите строку S=')
readln(s);
k:=0;
for i:=1 to length(s) do
if s[i]='A' then
k:=k+1;
writeln('Количество букв А =',k);
end.
ВНИМАНИЕ! Для того, чтобы перебрать все символы литерной величины используется цикл For (for i:=1 to length(s) do)! При таком решении компьютер будет подсчитывать количество букв 'А' в предложении, но если была введена русская большая А – он будет считать русские большие буквы А, а если латинская – ла-тинские. Если мы хотим подсчитать все буквы А (большие и маленькие, русские и латинские), то строку if s[i]='A' then изменяем на if (s[i]='A') or (s[i]='a') or (s[i]='A') or (s[i]='a') then меняя соответствующим образом регистр и язык. Пример 2. Замените в предложении все буквы 'о' (маленькую русскую) на указанный символ (вво-дится с клавиатуры).
Program p2;
var s:string;
t:char;
i:integer;
begin
write('Введите строку S=')
readln(s);
write('Введите нужный символ t=')
readln(t);
for i:=1 to length(s) do
if s[i]='о' then
s[i]:=t;
writeln('Полученная строка S=',s);
end.
Обратите внимание, что, так как t – имя переменной, то оно не берется в апострофы. Если бы надо было заменить 'о' на символ 't', то строка s[i]:=t; выглядела бы так: s[i]:='t';
3. Решение задач. 1. Подсчитайте количество указанных символов в предложении. 2. Подсчитайте количество слов предложении. 3. Замените в предложении все символы, совпадающие с введенным, на указанный.