Цель: ввести понятия символьной информации, познакомиться с функциями и процедурами, предназначенными для работы с символьными величинами, научиться решать задачи с использованием символьной информации.
ПЛАН
1. Теоретический материал
1) Символьный тип данных
2) Строки символов
2. Вопросы и задания
Теоретический материал
Символьный тип данных
Величина типа «символ» может принимать значения любых символов компьютерного алфавита. Символьная величина занимает 1 байт памяти, в котором хранится код этого символа, соответствующий используемой кодовой таблице. Заметим, что в Delphi наряду с однобайтовой кодировкой символов используется и двухбайтовая.
Символьная константа записывается между апострофами. Например: 1R’, ‘ + ‘, ‘9’, ‘j’.
Символьной тип называется Char. Пример описания символьных переменных:
Var c1, с2: Char;
Символьный тип относится к порядковым типам данных. Из этого следует:
• символы — упорядоченное множество;
Информатика 8 класс: Типы переменных в языке Паскаль
• у каждого символа в этом множестве есть свой порядковый номер;
• между символами работает соотношение «следующий — предыдущий».
Порядковый номер символа — это его десятичный код, который лежит в диапазоне от 0 до 255. Например, в кодовой таблице ASCII десятичный код латинской буквы ‘А’ равен 65, а цифры ‘5’ — 53. О стандартах кодирования символов рассказывалось на уроках 13 — 16 «Представление текста, изображения и звука в компьютере».
Функция Ord(x)
Ord(x) — функция от аргумента порядкового типа, которая возвращает порядковый номер значения х в этом типе данных. Если х — символьная величина, то результатом функции будет десятичный код х в кодовой таблице. Например:
Ord(‘А’)= 65, Ord(‘5’)= 53
Функция Chr (х)
Chr (х) — функция от целочисленного аргумента, результатом которой является символ с кодом, равным х. Например:
Поскольку коды символов лежат в диапазоне от 0 до 255, желательно тип х определять либо как byte, либо как интервальный тип 0..255.
Пример 1. Составить программу на Паскале, по которой на экран будет выводиться таблица кодировки в диапазоне кодов от 32 до 255. Напомним, что символы с кодами, меньшими 32, являются управляющими (не экранными).
Значения выводятся парами: символ — код. В одной строке располагается 10 таких пар. Вся таблица разместится в 24 строках на экране.
Принцип последовательного кодирования алфавитов
В любой кодовой таблице выполняется принцип последовательного кодирования латинского (английского) алфавита и алфавита десятичной системы счисления. Это важное обстоятельство, которое часто учитывается в программах обработки символьной информации.
При выполнении операций отношений, применительно к символьным величинам, учитываются коды этих величин. Чем больше значение кода, тем символ считается больше. Истинными являются следующие отношения: ‘А’ с ‘В’, ‘Z’ > ‘Y’, ‘а’ > ‘А’. Значение символьной переменной С является прописной (заглавной) латинской буквой, если истинно логическое выражение:
Паскаль с нуля [ч2]. Переменные и типы данных
Значение символьной переменной С является цифрой, если истинно логическое выражение:
В латинском алфавите 26 букв. Поэтому разница между кодами букв ‘Z’ и ‘А’, а также ‘z’ и ‘а’ равна 25.
Пример 2. С помощью датчика случайных чисел заполнить массив Sim[0..10] строчными английскими буквами. Затем массив отсортировать в алфавитном порядке.
При тестировании программы было получено:
gnkbeqgmsin
beggikmnnqs
Вопросы и задания
1. Как в программе на Паскале обозначаются символьные константы и переменные?
2. Определите результаты вычисления выражений (типы и значения):
Строки символов
Рассмотрим еще один структурный тип данных — строковый тип. Строковый тип данных был введен в Турбо Паскале. Он позволяет программировать обработку слов, предложений, текстов.
Строка — это последовательность символов. Каждый символ занимает 1 байт памяти (код ASCII). Количество символов в строке называется ее длиной. Длина строки может находиться в диапазоне от 0 до 255. Строковые величины могут быть константами и переменными.
Строковая константа записывается как последовательность символов, заключенная в апострофы. Например:
‘ Язык программирования ПАСКАЛЬ’
‘ IBM PC — computer’
Строковая переменная описывается в разделе описания переменных следующим образом:
Var Name: String[20]
Параметр длины может и не указываться в описании. В таком случае подразумевается, что он равен максимальной величине — 255. Например:
Var slovo: String
Строковая переменная занимает в памяти на 1 байт больше, чем указанная в описании длина. Дело в том, что один (нулевой) байт содержит значение текущей длины строки. Если строковой переменной не присвоено никакого значения, то ее текущая длина равна нулю. По мере заполнения строки символами ее текущая длина возрастает, но она не должна превышать максимальной по описанию величины.
Символы внутри строки индексируются (нумеруются), начиная с единицы. Каждый отдельный символ идентифицируется именем строки с индексом, заключенным в квадратные скобки. Например:
Name[5], Name[i], slovo[k+1].
Значение индекса может быть задано положительной константой, переменной, выражением целочисленного типа. Оно не должно выходить за границы описания.
Тип String и стандартный тип Char совместимы: строки и символы могут употребляться в одних и тех же выражениях.
Строковые выражения строятся из строковых констант, переменных, функций и знаков операций. Над строковыми данными допустимы операция сцепления и операции отношения.
Операция сцепления (+) применяется для соединения нескольких строк в одну результирующую строку. Сцеплять можно как строковые константы, так и переменные.
В результате получится строка:
Длина результирующей строки не должна превышать 255.
Операции отношения: =, , =, < >производят сравнение двух строк, в результате чего получается логическая величина (true или false). Операции отношения имеют более низкий приоритет, чем операция сцепления. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в таблице символьной кодировки.
Если строки имеют различную длину, но в общей части символы совпадают, считается, что более короткая строка меньше, чем более длинная. Строки равны, если они полностью совпадают по длине и содержат одни и те же символы.
Функции и процедуры
Функция Copy(S, Poz, N) выделяет из строки S подстроку длиной N символов, начиная с позиции Poz. N и Роz — целочисленные выражения.
Функция Concat (SI, S2. SN) выполняет сцепление (конкатенацию) строк S1. SN в одну строку.
Функция Length (S) определяет текущую длину строки S. Результат — значение целочисленного типа.
Функция Pos (SI, S2) обнаруживает первое появление в строке S2 подстроки S1. Результат — целое число, равное номеру позиции, где находится первый символ подстроки S1. Если в S2 не обнаружена подстрока S1, то результат равен 0.
Процедура Delete (S, Poz, N) удаляет N символов из строки S, начиная с позиции Poz.
В результате выполнения процедуры уменьшается текущая длина строки в переменной S.
Процедура Insert (SI, S2, Poz) выполняет вставку строки S1 в строку S2, начиная с позиции Poz.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru
2. Данные в языке Паскаль
Любая программа выполняет над исходными данными некоторые расчеты. При этом, как и переменные или константы в математике, отдельные элементы данных обозначаются даваемыми программистом именами (идентификаторами). Любые идентификаторы в языке Паскаль строятся по следующим правилам:
- имена могут включать латинские буквы, цифры и знак подчеркивания (для простоты опустим некоторые другие символы, разрешенные в именах);
- имя состоит из одного слова; если требуется пробел в имени, он заменяется на подчеркивание: так, My_1 будет правильным идентификатором, а My 1 — нет;
- имя всегда начинается с буквы: возможен объект с именем A1, но не 1A; прописные и строчные буквы в именах не различаются Паскалем: x1 и X1 — это одна и та же величина;
- имена не могут совпадать с зарезервированными в языке служебными словами, обозначающими разрешенные в языке операции над данными: например, нельзя назвать Begin или BEGIN ни одну величину в программе, так как begin —зарезервированное служебное слово, а прописные и строчные буквы в служебных словах также не различаются. Познакомиться с большинством служебных слов мы сможем в процессе изучения языка.
2.1. Константы
Константой называют величину, значение которой не меняется в процессе выполнения программы. Числовые константы служат для записи чисел.
Различают следующие их виды: Целочисленные (целые) константы: записываются со знаком + или -, или без знака, по обычным арифметическим правилам: -10 +5 5 Вещественные числа могут записываться в одной из двух форм: обычная запись: 2.5 -3.14 2. — обратите внимание, что целая часть отделяется от дробной символом точки; экспоненциальная («научная») форма: в этой записи вещественное число представляется в виде m*10 p , где m — мантисса или основание числа, 0.1≤|m|≤1, p — порядок числа, заданный целочисленной константой. Действительно, любое вещественное число можно представить в экспоненциальной форме: -153.5 -0.1535*10 3 99.005 0.99005*10 2 Во всех IBM-совместимых компьютерах вещественные числа хранятся как совокупность мантиссы и порядка, что позволяет упростить операции над ними, используя специальную арифметику, отдельно обрабатывающую мантиссу и порядок.
Для программной записи числа в экспоненциальной форме в качестве обозначения «умножить на 10 в степени» используется символ E или e (латинские): -153.5 -0.1535*10 3 -0.1535E3 или -1.535E02 99.005 0.99005*10 2 0.99005E+2 или 9.9005e+01 Без принятия специальных мер, программа на Паскале будет выводить на экран и принтер вещественные числа именно в такой форме. Кроме того, такая форма удобна для записи очень маленьких и очень больших чисел: 10 30 1e30 -10 20 -1E20 10 -30 1E-30 Поскольку размер памяти, отводимой под мантиссу и порядок, ограничен, то вещественные числа всегда представляются в памяти компьютера с некоторой погрешностью.
Например, простейшая вещественная дробь 2/3 дает в десятичном представлении 0,666666. и, независимо от размера памяти, выделяемой для хранения числа, невозможно хранить все его знаки в дробной части. Одной из типичных проблем программирования является учет возможных погрешностей при работе с вещественными числами.
Кроме числовых констант существуют и другие их виды: логические константы служат для проверки истинности или ложности некоторых условий в программе и могут принимать только одно из двух значений: служебное слово true обозначает истину, а false — ложь; символьные константы могут принимать значение любого печатаемого символа и записываются как символ, заключенный в апострофы (‘одинарные кавычки’): ‘Y’ ‘я’ ‘ ‘ В последнем случае значение символьной константы равно символу пробела. Если требуется записать сам символ апострофа как символьную константу, внутри внешних апострофов он удваивается: »».
К символьным также относятся константы вида #X, где X — числовое значение от 0 до 255 включительно, представляющее собой десятичный ASCII-код символа. Таблицы ASCII-кодов, используемых операционными системами DOS и Windows, приведены в Приложении 1. Например, значение #65 будет соответствовать коду буквы ‘A’ латинской. Обработка нажатий клавиш и расширенные коды клавиатуры описаны в гл.
24 и Приложении 5. Строковые константы — это любые последовательности символов, заключенных в апострофы. Как правило, строковые константы служат для записи приглашений к вводу данных, выдаваемых программой, вывода диагностических сообщений и т. п.: ‘Введите значение X:’ ‘Ответ=’ Если в строковой константе необходимо записать сам символ апострофа, это делается так же, как для символьных констант.
Именованные константы перечисляются в разделе описаний программы оператором следующего вида: const Имя1=Значение1; Имя2=Значение2; . ИмяN=ЗначениеN; Ключевое слово const показывает начало раздела описаний именованных констант. Ясно, что зачастую удобнее обращаться к константе по имени, чем каждый раз переписывать ее числовое или строковое значение. Приведем пример раздела: const e=2.7182818285; lang=’Turbo Pascal 7.1′; Здесь описана числовая константа e со значением основания натурального логарифма и строковая константа с именем lang, содержащая строку ‘Turbo Pascal 7.1’. Каждое даваемое программистом имя должно быть уникальным в пределах одной программы. Если мы включим этот раздел в свою программу, мы уже не сможем создать в ней других объектов с именами e и lang.
Источник: studfile.net
Как в программе на Паскале обозначаются символьные константы и переменные?
Как в программе на Паскале обозначаются символьные константы и переменные?
Ответ эксперта
Символьная константа записывается между апострофами, символьный тип Char.