Итак, продолжаем наши уроки Паскаль для начинающих. В прошлом уроке мы разобрали строковый тип данных, но там мы упомянули про символы, поэтому прежде чем глубоко изучать тип данных String, мы узнаем о типе Char. Символьный тип данных Char — тип данных, значениями которого являются одиночные символы. Данный тип может содержать всего один любой символ (Например: «*», «/», «.», «!» и другие). Каждый такой символ занимает 8 бит памяти, всего существует 256 восьмибитовых символов. Все символы, используемые символьным типом Char записаны в таблице символов ASCII (American Standart Code for Information Interchange) или Американский стандарт кода для обмена информацией.
Символьные константы заключаются в апострофы, например ‘.’, ‘*’, ‘7’, ‘s’. Также символьную константу можно записать с помощью символа — «решетки», например #185 — выведет символ под номером 185 из таблицы ASCII (это символ ‘№’).
К символьному типу применимы 5 функций: Ord, Chr, Pred, Succ и Upcase.
Функция Ord преобразовывает символ в её числовой код из таблицы ASCII. Например для символа ‘№’ она возвратит значение 185. Функция Chr обратна функции Ord. Функция Chr преобразует числовой код символа в сам символ, например, если взять числовой код 64, то функция Chr (64) возвратит символ ‘@’.
Пример программы на Паскаль с использованием функции Ord:
Пример программы на Паскаль с использованием функции Chr:
Функция Pred возвращает значение предыдущего символа из таблицы ASCII, например для символа ‘P’ (Pred (P)) эта функция возвратит символ ‘O’. Функция Succ обратная функции Pred. Для символа ‘P’ функция Succ (P) возвратит символ ‘Q’, то есть следующий символ из вышеописанной таблицы ASCII.
Пример программы на Паскаль с использованием функций Pred и Succ:
Функция UpCase применима только для строчных букв английского алфавита. Данная функция преобразует строчные английские буквы в заглавные.
Пример программы на Паскаль с использованием функции UpCase:
На сегодня урок окончен. Помните, что программирование на паскале просто и является основой для многих языков программирования.
Типы данных
Теоретический материал (Паскаль)
Тип данных char. Операции над символами
В большинстве применений компьютера алфавитно-цифровая информация используется наряду с числовой. Прежде чем мы сможем написать программу, которая манипулирует алфавитно-цифровыми знаками (литерами), нам потребуется тип данных для их представления. Для этих целей в языке Паскаль предусмотрен тип данных char.
Так же, как переменная типа integer может хранить одно целое число, переменная типа char может хранить один символ.
| Var Alpha : char; Begin Alpha :=’p’; Alpha :=’+’; Alpha :=’3′; Alpha :=’ ‘; Alpha :=»»; |
Первый оператор присваивания записывает в переменную Alpha литеру р.
Второй делает Alpha равной литере плюса (+).
Третий делает Alpha равной символу 3. Заметим, что символ 3 отличается от целого числа 3 тем, что символ не может быть использован в арифметических операциях.
Четвертый оператор присваивания делает Alpha равной литере пробела. Хотя литера пробела при печати не изображается, она является обыкновенным значением типа char.
Последний оператор присваивания делает Alpha равной литере апострофа, это специальный случай, так как знак апострофа используется для ограничения значения типа char.
Все символы упорядочены, т.к. имеют свой личный номер. Важно, что соблюдаются следующие отношения:
‘A’ Program Sravnenie;
Var
First, Second : char;
Begin
write (‘Введите две литеры: ‘);
readln (First, Second);
write (‘Первая литера ‘);
if First > Second
then
write (‘больше второй. ‘)
else
if First = Second
then
write (‘равна второй. ‘)
else
write (‘меньше второй. ‘);
Еnd.
Уроки Паскаль
Мы с Вами уже рассмотрели типы данных, которые позволяют хранить и обрабатывать целые числа (integer) и дробные числа (real). Теперь рассмотрим тип данных, позволяющий хранить и обрабатывать различные символы. Символы – это все буквы и значки, которые мы можем увидеть на клавиатуре. Для того чтобы ввести в программу символьные переменные необходимо указать для них символьный тип данных Char.
Строка №4. Записываем переменную «X» и указываем для нее тип данных Char. Char – тип данных, который позволяет хранить символы. В данном случае в переменную «X» мы будем записывать не какие-то числа, а символы.
В строке №7 мы присвоили переменной «X» значение латинской буквы L. Сам символ, который необходимо записать в переменную, обязательно берется в апострофы. Напомню, что когда мы присваиваем переменной числовое значение, то число в апострофы не берется.
В строке №8 выводим на экран значение, которое мы присвоили переменной X, т.е. фактически на экран выведется буква L.
В строке №10 выводим значение переменной «N» (т.е. числовой код буквы «L») на экран.
Строка №11. Функция Chr противоположна функции Ord. Эта функция будет преобразовывать числовой код символа в сам символ. В переменной N у нас записан код буквы «L». C помощью функции Chr мы преобразуем этот код в букву и запишем её в символьную переменную X. Таким образом, в строке №12 на экран выведется буква «L»
Дополнение к материалу.
В приведенном выше примере функция Ord возвращает в качестве значения код переменной «X», которой присвоено значение латинской буквы «L». После записи функции Ord переменная «X» стоит в круглых скобках (строка №9). Вместо записи переменной можно напрямую записать символ, код которого необходимо получить. Этот символ необходимо заключить не только в круглые скобки, но и в апострофы. Таким образом программу можно записать так:
Тип данных Char.
Тип CHAR (литерный, символьный). Этот тип задает конечное упорядоченное множество символов (литер), допускаемое в конкретной реализации языка.
Первые позиции 0 – 31 заняты под коды управления устройствами (монитор, принтер и др.) и могут иметь разное воздействие на разные устройства. Например, код 7 вызывает звуковой сигнал при выводе информации на дисплей:
WRITELN (‘Проверьте принтер!’, CHR(7)).
Коды 13 и 10 для дисплея или принтера осуществляют перевод курсора в начало текущей строки и переход на следующую строку. Эти коды можно использовать для вывода информационного сообщения, составляющего несколько строк, с помощью одного оператора вывода:
WRITELN(‘Bнимание!» + CHR(13) + CHR(10) + ‘Следите за экраном.’).
Переменная часть кодовой таблицы содержит национальный алфавит, символы псевдографики и специальные нестандартные символы. Коды 128 — 255, приведенные в таблице внизу, отражают модифицированную кодировку ГОСТа для подключения кириллицы.
Примечание: в таблицах сокращения (пр.) и (зб.) означают пробел и забой соответственно.
Значения констант и переменных типа CHAR есть один символ из допустимого набора, например: ‘Z’, ‘j’, ‘2’, ‘*’, ‘Ц’, ‘д’, ‘г’. Второй способ записи символа в программе состоит в использовании префикса # перед номером литеры. Примеры символов: #90, #106, #50, #42, #150, #164.
Описываются переменные этого типа как – VAR CHI, CH2:CHAR;
Использование переменных типа CHAR в арифметических выражениях запрещено. К данным этого типа могут применяться только операции сравнения, при этом результат зависит от порядковых номеров литер в кодовой таблице символов.
Например: ‘В’ > ‘А’ => FALSE, ‘1’ TRUE.
Множество цифр и букв не только упорядочено в соответствии с кодом литер от 32 до 255, но и связно, код последующей литеры больше кода предшествующей на 1.
Таким образом, ‘0’ ‘, CHR(I))
END.
Pascal: Занятие № 11. Строковый тип данных в Паскаль
Символьный тип char в Паскале
Символьной переменной соответствует тип char:
Инициализация символьной переменной:
Основные функции для работы с символами
Функция преобразует целое число, имеющее тип BYTE, в один символ ASCII-кода:
Функция возвращает порядковый номер символа параметра в таблице ASCII:
var i: integer; begin for i:=32 to 255 do write(chr(i):3); end.
Строковые переменные в Паскаль
Строковые переменные в Паскале имеют тип String
Объявление и инициализация строковой переменной:
var a:string; begin a:=’Привет всем!’; writeln(a); end.
Ввод значения строковой переменной с клавиатуры:
var a:string; begin writeln(‘Введите слово’); readln(a); writeln(‘Вы ввели слово ‘,a); end.
Строка «рассматривается» компилятором, как массив букв:
Функции работы со строками в Pascal
var s:string[30]; n,i:integer; begin writeln(‘введите текст’); readln(s); n:=0; for i:=1 to length(s) do if s[i]=’f’ then n:=n+1; write(‘в тексте букв f = ‘,n) end.
* Задание повышенной сложности: запросить у пользователя ввести подстроку, которую требуется удалить из исходной строки.
* усложненный вариант: предусмотреть, что в начале или в конце введенной строки введен пробел
const m = [‘0’..’9′]; var s: string; i, k: byte; begin read(s); k := 0; for i := 1 to length(s) do if s[i] in m then inc(k); writeln(‘цифр = ‘, k); readln; end.
var a,b,c:string; i:longint; begin write(‘введите слово:’); readln(a); b:=»; for i:=1 to length(a) do b:=a[i]+b; if a=b then write(‘перевертыш’) else write(‘не перевертыш’); end.
String 6. Определить, встречается ли в тексте сочетание букв «ку».
String 7. Заменить данную букву в слове другой буквой (буквы вводит пользователь).
Примечание:
Использовать функции: Pos, Copy, Delete
Пример:
Трудность низкая:
Программа должна формировать в памяти вторую строковую переменную с измененным текстом, а потом выводить ее на экран.
Трудность высокая:
Программа должна преобразовывать исходную строку без использования дополнительных переменных, и затем выводить ее на экран.
А теперь рассмотрим олимпиадное задание по Паскалю:
Посимвольный ввод до пробела
Посимвольный ввод удобен для «мгновенной» обработки символов в строке.
Для организации массива символьных строк:
Пример:
Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:










