Символьные и строковые величины
Основные теоретические сведения
Описание символов и строк
Операции над символами
Функции обработки символьных величин
Операции над строками
Операции над строками
Примеры сравнения строк
Процедуры и функции обработки строковых величин
Примеры использования функций
Примеры решения задач
Определение кода введенного символа
Этапы выполнения задания
Программа:
Тестирование и вопросы
Ввод-вывод строк
Разбор задания
Программа
Тестирование
Поиск символов в строке 1
Исходные данные и результаты
Алгоритм решения задачи
Описание переменных
Программа
Тестирование
Вопросы
Поиск символов в строке 2
Исходные данные и результаты
Алгоритм решения задачи
Описание переменных
Программа
Тестирование
Вопросы
Простейшее преобразование строки
Этапы выполнения задания.
Программа
Удаление, вставка и замена символов
Исходные данные и результаты
Алгоритм решения задачи
Описание переменных
Программа
Тестирование
Вопросы
669.00K
Category: programmingprogramming

Символьные и строковые величины. 10 класс

1. Символьные и строковые величины

10 класс

2.

Основные теоретические сведения
Примеры решения задач
2

3. Основные теоретические сведения

Описание символов и строк
Операции над символами
Функции обработки символьных
величин
Операции над строками
Процедуры и функции обработки
строковых величин
3

4. Описание символов и строк

Тип данных
Описание
Сhar
Хранит один символ кодовой
таблицы
String
Хранит значение строки символов
кодовой таблицы
Значения строковых и символьных констант записываются в
апострофах. Значения символов можно задавать с помощью
знака # и кодового номера символа:
C1:=’$’;
S:=’Привет’;
Writeln (’сумма чисел равна’);
If c=’+’ then …
С2:=#36; (знак - ’$’)
C3:=#27; (код клавиши Esc)
write(a,#9,b); (#9 – код клавиши Tad)
For c:=’a’ to ’z’ do …
4

5. Операции над символами

Два символа можно сравнить. Больше будет тот символ, кодовый
номер больше.
Символы алфавита, набранные в одном регистре упорядочены в
алфавитном порядке;
Большие буквы алфавита меньше маленьких букв алфавита;
’1’<’5’; ’0’<’9’
Символы цифр меньше символов любых букв;
’Б’<’б’; ’Я’<’а’;’R’<’r’; ’Z’<’a’;
Символы цифр расположены в порядке возрастания их числовых
значений;
’Б’<’Д’; ’п’<’т’; ’S’<’Z’; ’f’<’v’;
’1’<’r’; ’2’<’W’; ’5’<’ж’; ’9’<’Я’
Символы латинских букв меньше символов русских букв;
’z’<’б’; ’W’<’Ц’; ’D’<’ж’; ’q’<’Я’
5

6. Функции обработки символьных величин

Название
функции
Действие
Тип
аргументов
Тип
результата
Chr(x)
Определяет символ по его номеру в
кодовой таблице
byte
char
Ord(c)
Определяет код символа в кодовой
таблице
char
byte
Upcase(c)
Преобразует символ в верхний
регистр
char
char
LowCase(c)
Преобразует символ в нижний
регистр
char
char
Pred(c)
Возвращает предыдущий символ в
кодовой таблице
char
char
Succ(c)
Возвращает следующий символ в
кодовой таблице
char
char
6

7. Операции над строками

Строки можно складывать – результатом
будет новая строка, полученная
приписыванием к первой строке второй:
S1:='Иванов';
S2:='Павел';
S3:=S1+' '+S2;
После выполнения команд строка S3
получит значение 'Иванов Павел'
7

8. Операции над строками

Две строки можно сравнивать.
Строки сравниваются в лексикографическом
порядке посимвольно.
Сравнивают
первые символы, больше будет та
строка, первый символ которой больше;
Если первые символы равны, то сравнивают
вторые, третьи и т.д.
Если все символы двух строк равны, то строки
равны.
Если одна из строк является началом другой, то
вторая строка больше.
8

9. Примеры сравнения строк

Первая строка Вторая строка
Результат
’Четверг’
’Пятница’
Первая больше
’Понедельник’
’Пятница’
Вторая больше
’111111’
’111111’
Равны
’Лес’
’Леска’
Вторая больше
9

10. Процедуры и функции обработки строковых величин

Название
функции.
Действие.
Тип аргумента
(ов).
Тип результата.
Length (s)
Возвращает длину строки s
string
integer
Pos (s1,s2)
Ищет первое вхождение
строки s1 в строке s2
s1, s2 – string
byte
Copy (a,n,k)
копирует подстроку строки
а, из k символов, начиная с
позиции n
a – string,
k, n,– integer
string
delete(s, n, k)
удаляет k символов из строки s – string
s, начиная с символа с
k, n – integer
номером n
Процедура, результат
сохраняется в переменной s
insert(s1, s2, n)
вставляет строку s1 в строку
s2, начиная с позиции n
Процедура, результат
сохраняется в переменной s2
n – integer
s1, s2 – string
10

11. Примеры использования функций

Исходные данные
Команда
Результат
s:= 'informatika'
a:=copy(s,3,5);
а:= 'forma'
s:= 'informatika'
delete(s,3,7);
s:= 'inka'
s:= 'vina'
a:= 'elich'
insert(a,s,2);
s:= 'velichina'
d='Информатика’;
d:=Length(s)
d=11
S:=‘Шла Саша по шоссе’;
N:=Pos(‘Саша’,S);
N=5
11

12. Примеры решения задач

Определение кода введенного символа
Ввод-вывод строк
Поиск символов в строке 1
Поиск символов в строке 2
Преобразование строк
Простейшее
преобразование строки
Удаление, вставка и замена символов
12

13. Определение кода введенного символа

Написать программу, которая выведет
код введенного символа.
13

14. Этапы выполнения задания

Определение исходных данных: переменная с
(введенный символ).
Определение результатов: переменная x (код
символа в кодовой таблице).
Алгоритм решения задачи.
I.
II.
III.
1.
2.
3.
IV.
V.
Ввод исходных данных
Определение кода символа
Вывод результата.
Описание переменных:
Переменная c – тип char, переменная x – тип byte.
14

15. Программа:

var c:char;
x:byte;
begin
writeln('введите символ');
readln(c);
x:=ord(c);
writeln('код=',x);
end.
15

16. Тестирование и вопросы

Запустите программу и введите значения
$
Проверьте, результат должен быть следующим:
код=36
Определите код символа пробел.
Определите коды непечатных символов, которые
вставляются в текст при нажатии клавиш табуляция и
ввод.
* Какому символу соответствует код 168?
* Измените программу так, чтобы она запрашивала
код символа и выдавала символ.
16

17. Ввод-вывод строк

Напишите программу, которая спросит
имя пользователя, а затем
поздоровается с ним.
17

18. Разбор задания

Определение исходных данных:
переменная imja, строка, в которой будет
храниться введенное имя.
Определение результатов: строка с
приветствием.
Алгоритм решения задачи.
I.
II.
III.
1.
2.
IV.
V.
Ввод имени
Вывод строки с приветствием
Описание переменных:
Переменная imja – тип string.
18

19. Программа

Программа:
var imja:string;
begin
writeln ('Как тебя зовут? ');
readln(imja);
writeln ('Привет, ',imja);
end.
19

20. Тестирование

Если запустить программу и ввести значение –
Маша
то результат должен быть следующим:
Привет, Маша
20

21. Поиск символов в строке 1

Написать программу которая определит
каких букв в строке с русским текстом
больше: ‘о’ или ‘O’.
21

22. Исходные данные и результаты

Исходные
данные
переменная
St - исходный текст.
Результат
Сообщение
о том каких букв больше.
22

23. Алгоритм решения задачи

Ввод исходных данных.
В цикле от 1 до длины строки St
проверяем каждый символ строки.
Если встретилась буква ‘o’, то
увеличиваем на 1 значение счетчика k1,
если ‘O’ – значение счетчика k2.
Сравниваем полученные значения
счетчиков.
Вывод результата.
23

24. Описание переменных

Переменная St имеет тип string.
Переменные k1 и k2 имеют тип integer.
Тип переменной i – счетчика цикла –
integer.
Для хранения длины строки используем
переменную n типа integer.
24

25. Программа

Var
St: string;
n,i,k1,k2: integer;
Begin
Write('введите строку текста - St');
Readln(St);
n:=length(St);
For i:=1 to n do
begin
If St[i]='o' then
k1:=k1+1;
If St[i]='O' then
K2:=k2+1;
end;
if k1>k2 then
writeln('букв о больше чем О')
else
if k2>k1 then
writeln('букв O больше чем o')
else
writeln('количество букв о равно количеству букв О');
End.
25

26. Тестирование

Запустите программу и введите
значение
OOOoooOOO
Проверьте, результат должен быть
следующим:
букв O больше чем o
26

27. Вопросы

Будет ли работать программа, если ввести текст на
английском языке? Почему? Какие изменения
необходимо внести в программу для работы с
английским текстом? Подберите тесты для
проверки программы.
Измените программу так, чтобы можно было
работать с текстом, как на русском, так и на
английском языке.
Ведите текст, в котором нет букв ‘o’. Какой ответ
выдаст программа? Внесите изменения в
программу, так чтобы на этот случай выдавалось
сообщение ‘в тексте нет букв O и o’.
27

28. Поиск символов в строке 2

Задано слово. Вывести согласные буквы
слова синим цветом, а гласные буквы
красным. Посчитать количество гласных
букв во введенном слове.
28

29. Исходные данные и результаты

Исходные
данные
переменная
St - исходный текст.
Результат
слово,
в котором буквы выводятся разными
цветами и сообщение о количестве
гласных букв.
29

30. Алгоритм решения задачи

Ввод исходных данных.
Создаем дополнительную строку, в которой хранятся все
гласные буквы: g:=’ЁУЕЭОАЫЯИЮёуеэоаыяию’.
Заводим переменную k – счетчик гласных букв. Вначале
ее значение равно 0.
В цикле от 1 до длины строки St находим позицию
текущего символа из строки St в строке с гласными
буквами (переменная p). Если это значение не равно
нулю, то символ – гласная.
Если символ является гласной буквой, то выводим его на
экран красным цветом и увеличиваем значение счетчика
гласных букв на 1, если символ не является гласной
буквой, то выводим его синим цветом.
Вывод результата.
30

31. Описание переменных

Переменные St и g имеют тип string.
Переменные k и p имеют тип integer.
Тип переменной i – счетчика цикла –
integer.
Для хранения длины строки
используем переменную n типа
integer.
31

32. Программа

Uses GraphABC;
Var
St,g: string;
n,i,k,p: integer;
Begin
Writeln('введите строку текста - St');
Readln(St);
writeln(St);
n:=length(St);
g:= 'ЁУЕЭОАЫЯИЮёуеэоаыяию';
SetFontName('Couier New');
For i:=1 to n do
begin
p:=pos(st[i],g);
if p<>0 then
begin
SetFontColor(clRed);
TextOut(10*i,50,st[i]);
k:=k+1;
end
else
begin
SetFontColor(clBlue);
TextOut(10*i,50,st[i]);
end;
end;
SetFontColor(clGreen);
writeln('количество гласных букв равно
End.
', k);
32

33. Тестирование

33

34. Вопросы

Будет ли работать программа, если ввести текст на
английском языке? Почему? Какие изменения
необходимо внести в программу для работы с
английским текстом? Подберите тесты для
проверки программы.
Измените программу так, чтобы можно было
работать с текстом, как на русском, так и на
английском языке.
*Почему сообщение количество гласных букв равно
выводится на экран до вывода символов разными
цветами, хотя команда для вывода этого
сообщения выполняется в программе последней?
34

35. Простейшее преобразование строки

Написать программу которая из слова
ТЕСТИРОВАНИЕ получит слово
РИСОВАНИЕ.
35

36. Этапы выполнения задания.

Определение исходных данных: слово
ТЕСТИРОВАНИЕ будем хранить как константу с
именем s.
Определение результатов: полученные слова.
Алгоритм решения задачи.
Для получения слова нужно скопировать из исходной
строки шестой символ, восемь символов, начиная с
позиции 5
Затем все сложить. Получим ’Р’+’ИРОВАНИЕ’.
Затем удалить третий символ (’РИОВАНИЕ’)
Вставить на третье место третий символ исходной строки
(’РИСОВАНИЕ’).
Вывод результата.
36

37. Программа

const s='ТЕСТИРОВАНИЕ';
var s1:string;
begin
s1:=s[6]+copy(s,5,8);
delete(s1,3,1);
insert(s[3],s1,3);
writeln('слово=', s1);
End.
{РИРОВАНИЕ}
{РИОВАНИЕ}
{РИСОВАНИЕ}
37

38. Удаление, вставка и замена символов

Написать программу, которая в
заданном тексте заменит все
встречающиеся пары из одинаковых
цифр, словом ‘две’.
38

39. Исходные данные и результаты

Исходные
данные
переменная
St - исходный текст.
Результат
Преобразованный
текст
39

40. Алгоритм решения задачи

Ввод исходных данных.
Просматриваем строку и выделяем из строки по два
символа.
Проверяем одинаковые ли эти символы, и являются ли они
цифрами.
Если да, удаляем их из строки и на их место вставляем
слово ‘два’.
Для того, чтобы проверить является ли символ цифрой,
создадим строку z, состоящую из всех цифр, и будем
определять позицию текущего символа строки в строке из
цифр.
Если позиция текущего символа в этой строке отлична от
нуля, то символ – цифра, иначе нет.
Поскольку длина строки при замене будет меняться, то для
просмотра строки удобнее использовать цикл while.
Вывод результата.
40

41. Описание переменных

Переменные St и z имеют тип string. Такой
же тип имеет переменная x,
предназначенная для выделения пар
символов
Тип переменной i – счетчика цикла –
integer.
Для хранения длины строки используем
переменную n типа integer.
41

42. Программа

Var
St: string; z:string[10]; x:string[2];
i: integer;
Begin
Write('введите строку текста - St');
Readln(St);
z:='0123456789';
i:=1;
while i<=length(st)-1 do
begin
x:=copy(st,I,2);
if (x[1]=x[2]) and (pos(x[1],z)<>0) then
begin
delete(st,i,2);
insert('две',st,i);
i:=i+1;
end;
i:=i+1;
end;
writeln('преобразованная строка ', st);
End.
42

43. Тестирование

Запустите программу и введите
значение
st=111123455677
Проверьте, результат должен быть
следующим:
преобразованная строка
дведве234две6две
43

44. Вопросы

Будет ли работать программа, если ввести римские
цифры? Почему? Какие изменения необходимо
внести в программу для работы с римскими
цифрами (I –1, V –5, X –10, L –50, C –100, D – 500, M
–1000)? Подберите тесты для проверки программы.
Измените программу так, чтобы можно было
работать как с арабскими, так и с римскими
цифрами.
Ведите текст, в котором нет цифр. Какой ответ
выдаст программа? Внесите изменения в
программу, так чтобы на этот случай выдавалось
сообщение ‘в тексте нет цифр’.
44
English     Русский Rules