Символьные переменные
Урок 1
Символьная константа – символ, заключенный в апострофы. Внутри апострофов допускается любой символ, за исключением символа апостроф (‘).
Символьная переменная – имеет имя, ее значением является один символ.
Строковая константа – строка символов, заключенная в
апострофы.
Строковая переменная – имеет имя, ее значением является строка символов.
|
Символьные |
Строковые |
|
a : char |
s : string |
Типы переменных
Операции над символами
|
Операция |
Пример |
Примечание |
|
Присваивание |
a:= ‘?’ |
|
|
Сравнение (по коду) |
‘r’ > ‘R’ |
т.к. у буквы ‘r’ код 114, а у буквы ‘R’ код 82 |
|
‘ ’ > ‘’ |
т.к. код пробела (32) больше кода пустого места (0) |
Операции над строками
|
Операция |
Пример |
Примечание |
|
Присваивание |
s:= ‘строка’ |
|
|
Сравнение (по коду) |
‘abc’ < > ‘acb’ |
Расхождения со второго символа |
|
‘abcd’ < ‘dbc’ |
т.к. код первого символа первой строки меньше кода первого символа второй строки |
|
|
Слияние |
s:= ‘Первый’ + ‘ урок’ |
от перестановки слагаемых результат изменяется |
Символьные функции
|
Функция |
Тип |
Назначение |
Пример |
Результат |
|
|
chr(x) |
Char |
Возвращает символ кода x |
chr(82) |
R |
|
|
ord(c) |
Byte |
Возвращает код символа c |
ord(‘r’) |
114 |
|
|
pred(c) |
Char |
Выдает символ, предшествующий c |
pred(‘Z’) |
‘Y’ |
|
|
succ(c) |
Char |
Выдает символ, следующий за c |
succ(‘f’) |
‘g’ |
|
|
upcase(c) |
Char |
Переводит символы нижнего регистра в верхний регистр |
upcase(‘b’) |
‘B’ |
|
|
Типы переменных |
x : Byte |
||||
|
c : Char |
|||||
Строковые функции
|
Функция |
Тип |
Назначение |
Пример |
Результат |
|
|
Length(s) |
Byte |
Вычисляет текущую длину строки |
Length(‘школа’) |
5 |
|
|
Concat(s1,…,s2) |
String |
Слияние строк |
Concat(‘шко’,’ла’) |
‘школа’ |
|
|
Copy(s, n, Len) |
String |
Выдает подстроку строки s длиной Len, начиная с позиции n |
Copy(‘школа’, 2,3) |
‘кол’ |
|
|
Delete(s, n, Len) |
String |
Удаляет подстроку строки s длиной Len, начиная с позиции n |
Delete(‘километр’,1,4) |
‘метр’ |
|
|
Insert(s, Subs, n) |
String |
Вставляет в строку s подстроку Subs, начиная с позиции n |
Insert(‘ша’, ‘кол’, 2) |
‘школа’ |
|
|
Pos(Subs, s) |
Byte |
Ищет вхождение подстроки Subs в строку s и выдает номер первого символа |
Pos(‘ров’, ‘корова’) |
3 |
|
|
Pos(‘дискета’, ‘диско’) |
0 |
||||
|
Типы переменных |
s, s1, s2, Subs : string |
||||
|
n, Len : integer |
|||||
* Примечание: коды русских и латинских букв отличаются.
Задачи по теме «Строковые переменные»
Тема 1 «Составление новых слов»
Program Slova;
Var a, b, c : string;
![]()
Begin a:= ‘вода’; ВОДОПАД
![]()
![]()
b:= ‘падение’;
c:= Copy(a,1,3) + Copy(a,2,1) + Copy(b,1,3)
writeln(c)
End.
Тема 2 «Подсчет количества»
1. В заданной строке подсчитать количество букв ‘я’ (строка на русском языке вводится с клавиатуры).
Program kolichestvo;
Var s : string;
i, k : integer;
Begin writeln (‘введите строку на русском языке’);
readln(s);
k:=0;
for i:=1 to Length(s) do
if copy(s,i,1)= ‘я’ then k:=k+1;
writeln(‘количество букв «я» - ’,k);
End.
2. В заданной строке подсчитать количество сочетаний ‘ый’ (строка на русском языке вводится с клавиатуры).
3. В заданной строке подсчитать количество слов (строка вводится с клавиатуры).
4. В заданной строке подсчитать количество предложений (строка вводится с клавиатуры, предложение может заканчиваться ‘.’, ‘!’ или ‘?’).
5. В заданной строке подсчитать количество цифр (строка вводится с клавиатуры).
Program kolichestvo;
Var s, n : string;
i, j, k : integer;
Begin writeln (‘введите строку’);
readln(s);
n:= ‘0123456789’;
k:=0;
for i:=1 to 10 do
for j:=1 to Length(s) do
if copy(n,i,1)=copy(s,j,1) then k:=k+1;
writeln(‘количество цифр k=’,k);
End.
6. В заданной строке подсчитать количество слогов (строка на русском языке вводится с клавиатуры).
7. В заданной строке подсчитать каких букв «а» или «я» больше и на сколько (строка вводится с клавиатуры).
8. В заданной строке подсчитать количество букв латинского алфавита (строка вводится с клавиатуры).
…
if ((‘A’>=copy(s,i,1)) and (copy(s,i,1)<= ‘Z’))
or ((‘a’>=copy(s,i,1)) and (copy(s,i,1)<= ‘z’))
then KL:=KL+1;
…
9. В заданной строке подсчитать количество букв русского алфавита (строка вводится с клавиатуры).
10. В заданной строке подсчитать букв какого алфавита больше русского или латинского (строка вводится с клавиатуры).
11. В заданной строке подсчитать количество слов, начинающихся с буквы “я” (“Я”).
Возможные ситуации: Я люблю_ягоды.
Яша и_Яна любят_ягоды.
Program kolichestvo;
Var s : string;
i, k : integer;
Begin writeln (‘введите строку на русском языке’);
readln(s);
k:=0;
for i:=1 to Length(s) do
if copy(s,i,2)= ‘_я’ or copy(s,i,2)= ‘_Я’ then k:=k+1;
if copy(s,i,1)= ‘Я’ then k:=k+1;
writeln(‘количество цифр k=’,k);
End.
Примечание: отдельно проверяется первая буква строки.
12. В заданной строке подсчитать количество слов, оканчивающихся буквой “я”.
Тема 3 «Замена, удаление символов»
1. Из заданной строки (s) получить новую(t), заменив все пробелы на точки. Распечатать полученную строку.
Program zamena;
Var s, t: string;
i : integer;
Begin writeln (‘введите строку на русском языке’);
Первоначально новая строка
пустая
readln(s);
t:= ‘’;
for i:=1 to Length(s) do
if copy(s,i,1)= ‘_’ then t:=t+ ‘.’
else t:=t+ copy(s,i,1);
writeln(‘новая строка ’);
writeln(t);
End.
2. Из заданной строки получить новую, удалив из нее все точки. Распечатать полученную строку.
3. Из заданной строки получить новую, удалив все “*” и повторив дважды каждый символ, отличный от звездочки.
4. Из заданной строки получить новую, заменив все фразы “так как” на сокращенное “т.к.”
…
i:=1;
while i<=length(s) do
begin if copy(s,i,7)<> ‘так_как’
then begin t:=t+ copy(s,i,1);
i:=i+1
end
else begin t:=t+ ‘т.к.’;
i:=i+7
end;
end;
…
5. Из заданной строки получить новую, заменив все фразы “может быть” на сокращенное “м.б.”
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.