close

Вход

Забыли?

вход по аккаунту

?

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

код для вставкиСкачать
Символьные и строковые величины
10 класс
2
Основные теоретические сведения
Примеры решения задач
3
Основные теоретические сведения
Описание символов и строк
Операции над символами
Функции обработки символьных величин
Операции над строками
Процедуры и функции обработки строковых величин
4
Описание символов и строк
Тип данных
Описание
С
har
Хранит один символ кодовой таблицы
String
Хранит значение строки символов кодовой таблицы Значения строковых и символьных констант записываются в апострофах. Значения символов можно задавать с помощью знака # и кодового номера символа:
C
1
:=’$’;
С2
:=#36; (
знак -
’$’)
S:=’
Привет
’;
C3:=#27; (код клавиши Esc
)
Writeln (’
сумма чисел равна
’);
write(a,#9,b); (#9 –
код клавиши Tad)
If c=’+’ then …
For c:=’a’ to ’z’ do …
5
Операции над символами
Два символа можно сравнить. Больше будет тот символ, кодовый номер больше.
Символы алфавита, набранные в одном регистре упорядочены в алфавитном порядке;
’
Б
’<’
Д
’
; ’
п
’<’
т
’; ’S’<’Z’; ’f’<’v’
;
Большие буквы алфавита меньше маленьких букв алфавита;
’
Б
’<’
б
’; ’
Я
’<’
а
’
;
’R’<’r’; ’Z’<’a’
;
Символы цифр расположены в порядке возрастания их числовых значений;
’
1
’<’
5
’; ’
0
’<’
9
’
Символы цифр меньше символов любых букв;
’
1
’<’r’; ’
2
’<’W’
; ’
5
’<’
ж
’; ’
9
’<’
Я
’
Символы латинских букв меньше символов русских букв;
’z’<’
б
’; ’W’<’
Ц
’
; ’D’<’
ж
’; ’q’<’
Я
’
6
Функции обработки символьных величин
Название функции
Действие
Тип аргументов
Тип результата
C
hr
(x)
Определяет символ по его номеру в кодовой таблице
byte
char
Ord(c)
Определяет код символа в кодовой таблице
char
byte
Upcase(c)
Преобразует символ в верхний регистр char
char
LowCase(c)
Преобразует символ в нижний регистр
char
char
Pred(c)
Возвращает предыдущий символ в кодовой таблице
char
char
Succ(c)
Возвращает следующий символ в кодовой таблице
char
char
7
Операции над строками
Строки можно складывать –
результатом будет новая строка, полученная приписыванием к первой строке второй:
S1:=
'Иванов'
;
S2:=
'Павел'
;
S3:=S1+
' '
+S2;
После выполнения команд строка S3 получит значение 'Иванов Павел'
8
Операции над строками
Две строки можно сравнивать.
Строки сравниваются в лексикографическом порядке посимвольно.
Сравнивают первые символы, больше будет та строка, первый символ которой больше;
Если первые символы равны, то сравнивают вторые, третьи и т.д.
Если все символы двух строк равны, то строки равны.
Если одна из строк является началом другой, то вторая строка больше.
9
Примеры сравнения строк
Первая строка
Вторая строка
Результат
’
Четверг
’
’
Пятница
’
Первая больше
’
Понедельник
’
’
Пятница
’
Вторая больше
’
111111
’
’
111111
’
Равны
’
Лес
’
’
Леска
’
Вторая больше
10
Процедуры и функции обработки строковых величин
Название функции.
Действие.
Тип аргумента (ов).
Тип результата.
L
ength (s)
Возвращает длину строки s
string
integer
P
os (s1,s2)
Ищет первое вхождение строки s
1
в строке s
2
s
1,
s
2
–
string
byte
Copy (a,
n
,
k
)
копирует подстроку строки а
, из k символов, начиная с позиции n
a –
string,
k, n,
–
integer
string
delete(s, n, k)
удаляет k символов из строки s
, начиная с символа с номером n
s –
string
k, n –
integer
Процедура, результат сохраняется в переменной s
insert(s1, s2, n)
вставляет строку s
1 в строку
s
2, начиная с позиции n
n –
integer
s
1,
s
2 –
string
Процедура, результат сохраняется в переменной s
2
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
:=
L
ength
(s)
d
=11
S:=‘
Шла Саша по шоссе
’;
N:=Pos(‘
Саша
’,S);
N=5
12
Примеры решения задач
Определение кода введенного символа
Ввод
-
вывод строк
Поиск символов в строке 1
Поиск символов в строке 2
Преобразование строк
Простейшее преобразование строки
Удаление, вставка и замена символов
13
Определение кода введенного символа
Написать программу, которая выведет код введенного символа.
14
Этапы выполнения задания
I.
Определение исходных данных: переменная с (введенный символ).
II.
Определение результатов: переменная x (код символа в кодовой таблице).
III.
Алгоритм решения задачи.
1.
Ввод исходных данных
2.
Определение кода символа
3.
Вывод результата.
IV.
Описание переменных:
V.
Переменная c
–
тип char
, переменная x
–
тип byte
.
15
Программа:
var c:
char
;
x:
byte
;
begin
writeln(
'
введите символ
'
);
readln(c);
x:=ord(c);
writeln(
'код='
,x);
end
.
16
Тестирование и вопросы
Запустите программу и введите значения
$
Проверьте, результат должен быть следующим:
код=
36
Определите код символа пробел. Определите коды непечатных символов, которые вставляются в текст при нажатии клавиш табуляция и ввод. * Какому символу соответствует код 168
?
* Измените программу так, чтобы она запрашивала код символа и выдавала символ.
17
Ввод
-
вывод строк
Напишите программу, которая спросит имя пользователя, а затем поздоровается с ним.
18
Разбор задания
I.
Определение исходных данных: переменная imja
, строка, в которой будет храниться введенное имя.
II.
Определение результатов: строка с приветствием.
III.
Алгоритм решения задачи.
1.
Ввод имени
2.
Вывод строки с приветствием
IV.
Описание переменных:
V.
Переменная imja
–
тип string
.
19
Программа
Программа:
var imja:
string
;
begin
writeln (
'Как тебя зовут? '
);
readln(imja);
writeln (
'Привет, '
,imja);
end
.
20
Тестирование
Если запустить программу
и ввести значение –
Маша
то результат должен быть следующим:
Привет, Маша
21
Поиск символов в строке 1
Написать программу которая определит каких букв в строке с русским текстом больше: ‘о’ или ‘
O
’.
22
Исходные данные и результаты
Исходные данные
переменная St
-
исходный текст.
Результат Сообщение о том каких букв больше.
23
Алгоритм
решения задачи
Ввод исходных данных.
В цикле от 1
до длины строки St
проверяем каждый символ строки. Если встретилась буква ‘
o
’, то увеличиваем на 1 значение счетчика k
1, если ‘
O
’ –
значение счетчика k
2. Сравниваем полученные значения счетчиков.
Вывод результата.
24
Описание
переменных
Переменная St
имеет тип string
.
Переменные k
1
и k2
имеют тип integer
.
Тип переменной i
–
счетчика цикла –
integer
. Для хранения длины строки используем переменную n
типа integer
.
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
.
26
Тестирование
Запустите программу и введите значение
OOOoooOOO
Проверьте
, результат
должен быть следующим:
букв O больше чем o
27
Вопросы
Будет ли работать программа, если ввести текст на английском языке? Почему? Какие изменения необходимо внести в программу для работы с английским текстом? Подберите тесты для проверки программы.
Измените программу так, чтобы можно было работать с текстом, как на русском, так и на английском языке.
Ведите текст, в котором нет букв ‘
o
’. Какой ответ выдаст программа? Внесите изменения в программу, так чтобы на этот случай выдавалось сообщение ‘в тексте нет букв O
и o
’.
28
Поиск символов в строке 2
Задано
слово
.
Вывести
согласные
буквы
слова
синим
цветом,
а
гласные
буквы
красным
.
Посчитать
количество
гласных
букв
во
введенном
слове
.
29
Исходные данные и результаты
Исходные данные
переменная St
-
исходный текст.
Результат слово, в котором буквы выводятся разными цветами и сообщение о количестве гласных букв.
30
Алгоритм
решения задачи
Ввод исходных данных.
Создаем дополнительную строку, в которой хранятся все гласные буквы: g:=’ЁУЕЭОАЫЯИЮѐуеэоаыяию’.
Заводим переменную k
–
счетчик гласных букв. Вначале ее значение равно 0.
В цикле от 1
до длины строки St
находим позицию текущего символа из строки St
в строке с гласными буквами (переменная p
). Если это значение не равно нулю, то символ –
гласная.
Если символ является гласной буквой, то выводим его на экран красным цветом и увеличиваем значение счетчика гласных букв на 1, если символ не является гласной буквой, то выводим его синим цветом.
Вывод результата. 31
Описание
переменных
Переменные St
и g имеют тип string
.
Переменные k
и p
имеют тип integer
.
Тип переменной i
–
счетчика цикла –
integer
. Для хранения длины строки используем переменную n
типа integer
.
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(
'количество гласных букв равно '
, k);
End
.
33
Тестирование
34
Вопросы
Будет ли работать программа, если ввести текст на английском языке? Почему? Какие изменения необходимо внести в программу для работы с английским текстом? Подберите тесты для проверки программы.
Измените программу так, чтобы можно было работать с текстом, как на русском, так и на английском языке.
*Почему сообщение количество гласных букв равно выводится на экран до вывода символов разными цветами, хотя команда для вывода этого сообщения выполняется в программе последней? 35
Простейшее преобразование строки
Написать программу которая из слова ТЕСТИРОВАНИЕ получит слово РИСОВАНИЕ.
36
Этапы выполнения задания.
Определение
исходных данных: слово ТЕСТИРОВАНИЕ будем хранить как константу с именем s.
Определение
результатов: полученные слова.
Алгоритм
решения задачи.
Для получения слова нужно скопировать из исходной строки шестой символ, восемь символов, начиная с позиции 5
Затем все сложить. Получим ’Р’+’ИРОВАНИЕ’. Затем удалить третий символ (’РИОВАНИЕ’) Вставить на третье место третий символ исходной строки (’РИСОВАНИЕ’).
Вывод результата.
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
.
38
Удаление, вставка и замена символов
Написать программу, которая в заданном тексте заменит все встречающиеся пары из одинаковых цифр, словом ‘две’. 39
Исходные данные и результаты
Исходные данные
переменная St
-
исходный текст.
Результат Преобразованный текст
40
Алгоритм
решения задачи
Ввод исходных данных.
Просматриваем строку и выделяем из строки по два символа. Проверяем одинаковые ли эти символы, и являются ли они цифрами. Если да, удаляем их из строки и на их место вставляем слово ‘два’. Для того, чтобы проверить является ли символ цифрой, создадим строку z
, состоящую из всех цифр, и будем определять позицию текущего символа строки в строке из цифр. Если позиция текущего символа в этой строке отлична от нуля, то символ –
цифра, иначе нет. Поскольку длина строки при замене будет меняться, то для просмотра строки удобнее использовать цикл while.
Вывод результата. 41
Описание
переменных
Переменные St
и z
имеют тип string
.
Такой же тип имеет переменная x
, предназначенная для выделения пар символов Тип переменной i
–
счетчика цикла –
integer
. Для хранения длины строки используем переменную n
типа integer
.
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
.
43
Тестирование
Запустите программу и введите значение
st=
111123455677
Проверьте
, результат
должен быть следующим:
преобразованная строка дведве234две6две
44
Вопросы
Будет ли работать программа, если ввести римские цифры? Почему? Какие изменения необходимо внести в программу для работы с римскими цифрами (I –
1, V –
5, X –
10, L –
50, C –
100, D –
500, M –
1000)? Подберите тесты для проверки программы.
Измените программу так, чтобы можно было работать как с арабскими, так и с римскими цифрами.
Ведите текст, в котором нет цифр. Какой ответ выдаст программа? Внесите изменения в программу, так чтобы на этот случай выдавалось сообщение ‘в тексте нет цифр’.
Автор
sulvz
sulvz10   документов Отправить письмо
Документ
Категория
Презентации
Просмотров
2 970
Размер файла
370 Кб
Теги
величины, строковые, символьными, класс
1/--страниц
Пожаловаться на содержимое документа