Урок из серии: «Язык программирования Паскаль«
На этом уроке мы продолжим знакомиться со стандартными типами данных языка программирования Паскаль.
Из урока 6 мы уже знаем, что все типы данных языка Паскаль можно разделить на простые типы и структурированные (составные). Величины, которые относятся к простым типам данных, не содержат составных частей.
Из простых типов данных мы уже изучили целые типы и логический тип. Это еще не весь список. Давайте продолжим изучение.
На этом уроке мы определим понятие порядкового типа и остановимся на символьном типе данных, рассмотрим несколько примеров обработки данных символьного типа.
К простым типам данных кроме целых типов и логического типа относятся:
- символьный;
- ограниченный;
- перечисляемый;
- вещественные типы.
Все простые типы данных, кроме вещественных, называются порядковыми.
В математике порядковым числом называется номер элемента при перечислении. Под порядковым типом понимают тип данных, областью значений которых является упорядоченное счетное множество. Каждому элементу такого множества соответствует некоторое порядковое число, являющееся как раз его номером при перечислении.
В любом порядковом типе для каждого значения, кроме первого, существует предшествующее значение.
В языке Паскаль существуют стандартные функции, которые позволяют их определять:
Имя и параметры функции | Действие |
Ord(x) | Возвращает порядковый номер значения перечисляемого типа. Для целых x возвращает само значение n, для символов char возвращает их код, а для элементов перечислимого типа — их номер (нумерация начинается с нуля). |
Pred(x) | Возвращает предыдущее значение перечисляемого типа |
Succ(x) | Возвращает следующее значение перечисляемого типа |
Понятие порядкового типа уже встречалось при изучении цикла с параметром for … next и оператора выбора case.
Только значения этих типов могут фигурировать в качестве выражения-переключателя в операторе case
. Переменная-параметр цикла for
также должна иметь перечислимый тип.
Мы уже изучили целые типы и логический тип. Сегодня остановимся на символьном типе данных.
Символьный тип данных
Идентификатор типа | Допустимые значения | Размер выделяемой памяти |
Char | Множество символов кодовой таблицы ASCII. Каждому символу приписывается целое число в диапазоне от 0 до 255. | 1 байт |
Пример описания величины символьного типа:
var letter, symbol, ch: char; |
В программе значения для переменных типа Char должны быть заключены в апострофы: ch := ‘*’; a := ‘3’; letter := ‘G’.
Кроме того, имеется возможность задавать значения указанием непосредственного числового значения ASCII-кода:
kd:= #65 {символ ‘A’}; s:= #10 {клавиша <Enter>}.
Операции для данных символьного типа
Над данными символьного типа определены операции сравнения: =, <>, <, >, <=, >=, вырабатывающие результат логического типа. Операция сравнения осуществляется следующим образом: из двух символов меньше тот, который встречается в таблице ASCII раньше.
Так как символьный тип является порядковым типом данных, то для него справедливо все, что было сказано о порядковых типах.
Функции для данных символьного типа
Для данных символьного типа определены следующие стандартные функции:
Функция | Назначение |
chr(x) | Преобразует выражение x типа byte в символ и возвращает значение символа |
ord(ch) | Преобразует символ ch в его код типа byte и возвращает значение кода. |
pred(ch) | Возвращает предыдущий символ. |
succ(ch) | Возвращает следующий символ. |
Примеры использования функций:
ord(‘:’) = 58
ord(‘A’) = 65
chr(128) = Б
pred(‘Б’) = A
succ(‘Г’) = Д
Пример 1. Определение кода по символу и символа по коду.
Program primer_1; var c: char; code: integer; begin writeln('Введите символ: '); readln(c); code := Ord(c); writeln('Код символа ',c,' равен ',code); writeln('Введите код символа: '); readln(code); c := Chr(code); writeln('Символ с кодом ',code,' - это ',c); end. |
Пример 2. Напишите программу для вывода на экран всех символов таблица ASCII.
program primer_2; var ch: char; i: byte; begin for i := 0 to 255 do begin if (i mod 5) = 0 then writeln; write (i:3,' - ', chr(i), '; ') end; end. |
Пример 3. Вывести в одну строку:
ABBCCC…ZZ…Z
Переменные:
i — переменная цикла; определяет, какая буква будет выводиться;
k — количество повторений буквы;
j — переменная цикла, счетчик количества уже выведенных букв.
program primer_3; var i: char; k, j: integer; begin k:=1; for i := 'A' to 'Z' do begin for j:=1 to k do write(i); k:=k+1; end; writeln; end. |
Внешний цикл определяет, какую букву выводим на печать, внутренний — сколько раз будет печататься буква. После вывода всех букв переходим в начало следующей строки.
На следующем уроке определим перечисляемый тип данных и тип-диапазон.
До встречи в следующем уроке!