|
Урок 1 Символьная константа
Символьные переменные
СП-11-Урок 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;
B egin a:= ‘вода’; ВОДОПАД
b:= ‘падение’;
c:= Copy(a,1,3) + Copy(a,2,1) + Copy(b,1,3)
writeln(c)
End.
-
Из слов «информация» и «математика» составить новое слово «информатика».
-
Из слов «гонг», «трибуна», «километр» и «революция» составить новое слово «тригонометрия».
-
Самостоятельно составить новое слово из трех заданных.
Тема 2 «Подсчет количества»
-
В заданной строке подсчитать количество букв ‘я’ (строка на русском языке вводится с клавиатуры).
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.
-
В заданной строке подсчитать количество сочетаний ‘ый’ (строка на русском языке вводится с клавиатуры).
-
В заданной строке подсчитать количество слов (строка вводится с клавиатуры).
-
В заданной строке подсчитать количество предложений (строка вводится с клавиатуры, предложение может заканчиваться ‘.’, ‘!’ или ‘?’).
-
В заданной строке подсчитать количество цифр (строка вводится с клавиатуры).
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.
-
В заданной строке подсчитать количество слогов (строка на русском языке вводится с клавиатуры).
-
В заданной строке подсчитать каких букв «а» или «я» больше и на сколько (строка вводится с клавиатуры).
-
В заданной строке подсчитать количество букв латинского алфавита (строка вводится с клавиатуры).
…
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;
…
-
В заданной строке подсчитать количество букв русского алфавита (строка вводится с клавиатуры).
-
В заданной строке подсчитать букв какого алфавита больше русского или латинского (строка вводится с клавиатуры).
-
В заданной строке подсчитать количество слов, начинающихся с буквы “я” (“Я”).
Возможные ситуации: Я люблю_ягоды.
Яша и_Яна любят_ягоды.
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;
i f copy(s,i,1)= ‘Я’ then k:=k+1;
writeln(‘количество цифр k=’,k);
End. Примечание: отдельно проверяется первая буква строки.
-
В заданной строке подсчитать количество слов, оканчивающихся буквой “я”.
Тема 3 «Замена, удаление символов»
-
Из заданной строки (s) получить новую(t), заменив все пробелы на точки. Распечатать полученную строку.
Program zamena;
Var s, t: string;
i : integer;
Begin writeln (‘введите строку на русском языке’);
r Первоначально новая строка пустая eadln(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.
-
Из заданной строки получить новую, удалив из нее все точки. Распечатать полученную строку.
-
Из заданной строки получить новую, удалив все “” и повторив дважды каждый символ, отличный от звездочки.
-
Из заданной строки получить новую, заменив все фразы “так как” на сокращенное “т.к.”
…
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;
…
-
Из заданной строки получить новую, заменив все фразы “может быть” на сокращенное “м.б.”
|
|
|