Содержимое курса
Раздел 2. (21 час) Алгоритмы и программирование.
0/21
Информатика 8 класс

Урок №30

Обработка символьных данных.



Теория:

Для обработки символьной информации используется тип данных char. Любому символу присваивается код – число от 0 до 255. Для хранения данных символьного типа выделяются ячейки длинной в 1 байт.
Для вывода кода на экран используется функция ord(x), при условии, что символ введен с клавиатуры. В программе символы заключаются в апострофы. Например, R:=’#’.
С символами можно совершать операции сравнения, при этом будут сравниваться коды символов.
Тип данных string позволяет вводить последовательность символов не длиннее 255, также заключенной в апострофы.
Например, R:=’Привет!’.
Тип данных Boolean применяется к логическим величинам. Они могут иметь всего два значения 0 и 1 или true и false.
Логические операции в Паскаль
Не — NOT — логическое отрицание (меняет значение операнда на противоположное).
И — AND — конъюнкция (true, если оба операнда true).
ИЛИ — OR — дизъюнкция (false, если оба операнда false).

 


Будем полагать, что текст — это произвольная последовательность символов некоторого алфавита. Алфавитом может служить любое множе­ство символов. Символьный тип данных служит для представления символа, кото­рый есть на клавиатуре. Всем имеющимся на клавиатуре символам ставится в соот­ветствие целое число — код символа. Всего кодируется 256 символов. В таблице кодов среди всех символов можно выделить следующие четыре группы:

1)   цифры от 0 (код 48) до 9 (код 57);

2)   латинские прописные буквы от «А» (код 65) до «Z» (код 90);

3)   латинские строчные буквы от «а» (код 97) до «z» (код 122);

4)   русские прописные буквы от «А» (код 128) до «Я» (код 159).

Символы в пределах каждой из групп следуют друг за дру­гом в алфавитном порядке и их коды изменяются при этом на 1. Каждый символ строковой величины занимает 1 байт памяти.

Данные символьного типа могут быть представлены двумя способами:

1)   графическим, когда соответствующий символ записывается в апострофах, например: ‘+’ (символ «плюс»);

2)   с помощью целочисленного кода, когда рядом со знаком целочисленного кода # указывается целое число — код данного символа в таблице ASCII. Напри­мер, #65 — представление латинской прописной буквы «А» с помощью целочис­ленного кода.

Строкой символов, или символьной (строковой, текс­товой) константой, будем называть последовательность символов, заключенную в кавычки. Среди строк пустая строка играет ту же роль, что ноль среди чисел. Максимальная длина текстовой строки — 255 символов.

В Паскале существует тип данных, предназначенный для обработки слов (цепочки символов). Такой тип данных называется строковым (тип string). Строки выводятся на экран посредством стандартной процедуры write {writeln) и  вводятся с клавиатуры с помощью стандартной процедуры read {readlri).

Объявление данных типа string:

·   если данные являются константами:

const  <имя_переменной>=<значение>;

·   если данные являются переменными:

var <имя_переменной>: string;

<имя_переменной>: string[20];

В квадратных скобках указывается максимальная длина строки. Если длина строки не указана, то она считается равной 255 символам — максимально возмож­ной длине.

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

Для строк определена операция объединения (сцепления), которая обозначает­ся знаком + и объединяет несколько строк в одну.

Например:

A:=’ Новосибирск’;

B:=’ столица Сибири’

С:=A+’- ’+B+’!’

Переменная  С иметь значение ‘Новосибирск- столица Сибири!’

Операции отношения (сравнения двух строк) =,<, >, >=,<=, <> .В результате сравнения двух строк получается логическое значение (true или false). Сравнение происходит слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в таблице символов (кодировки).

Например:

·   ‘строка'<>’строки'(верно, т.к. не совпадают последние символы),

·   ‘Abc'<‘abc'(отношение истинно, т.к. код символа ‘A’ равен 65 в десятичной системе счисления, а код символа ‘a’ — 97),

·   ‘год’>’век'(отношение верно, т.к. буква ‘г’ в алфавите стоит после буквы ‘в’, а, следовательно.

·   ‘кот ’=’ кот’ (отношение истинно, т.к совпадают все символы)

 Стандартные функции и процедуры.

Для работы с типом string определены следующие встроенные процедуры и функции:

 

Стандартные функции работы со строками

Функция

Что возвращает

Типы аргументов

Тип функции

length(S) длину строки S S:   string integer
Pos(Sl, S) номер символа, начиная с которого фрагмент S1 входит в строку S, или 0, если S1 не входит в S S,   S1:   string integer
copy(S, n, m) копирует m символов из строки S, на­чиная с n S:   string;

 

n,   m:   integer

string
upcase(S[i]) прописной латинский символ char char

 

 

 

Стандартные процедуры работы со строками

Процедура

Что делает

Тип аргументов

Где находится результат

Delete (S, n, m) удаляет m символов из строки S, начиная с n S:   string;

 

n,   m:   integer;

в S
Insert (Sl, S ,n) вставляет фрагмент S1 в строку S, начиная с символа n, отодвигая символы вправо S,   S1:   string;

 

n:   integer;

в S
Str (a, S) преобразует число а в строку S a:   real,   integer; S:   string; в S
val(S, a, code) преобразует строку S, если воз­можно, в число а с флагом code a:   real,   integer; code:   integer;

 

S:   string;

в а и code

 

IV. Первичная проверка усвоения знаний и закрепление знаний

Учитель решает задачи на интерактивной доске, учащиеся решают в тетрадях.. Идём обсуждение правильного решения задач.

·   Определить длину строки «Информатики».

K=length(‘Информатики’); K=11

·   Получить из слова » Информатики » слово «форма».

S:=’Информатика’

S1:=copy(S, 3, 5)

S1=’форма’

·   Чему равна строка M:= copy (S,1,4)

S2=’инфо’

·   Получить из слов «Язык», «Turbo», «Pascal» фразу «Язык Turbo Pascal».

A:=’ Язык’;

B:=’ Turbo’

D:= ‘Pascal’

С:=A+’  ’+B+’ ’+D

·   Какова позиция буквы «и» в слове «Книга».

S:=’ Книга ’

S1:= ‘и’

K1=Pos(Sl, S); K1=3

·   Преобразовать «a» в «A».

S1:=upcase(‘а’)

·   Чему станет равной строка M1 после выполнения операторов?

М:= ’моток’

М1:=insert(‘ло’,M,3)

M1=’ молоток’


Обработка символьных данных (Паскаль)