среда, 7 декабря 2011 г.

Cимвольный тип данных

Данные символьного типа описываются с помощью идентификатора Char.

Значением переменной символьного типа может быть любой символ − буквы, цифры, знаки препинания и специальные символы. Каждому символу алфавита соответствует индивидуальный числовой код от 0 до 255.



Примечание. Наиболее распространенной международной системой кодирования символов является система ASCII. Символы с кодами от 0 до 127 составляют так называемую основную таблицу кодов ASCII. Эта часть идентична на всех IBM-совместимых компьютерах. Символы с кодами от 128 до 255 составляют так называемую национальную кодовую таблицу. Именно в ней располагаются, например, русские буквы.

К символьным данным применимы операции сравнения. Операция сравнения осуществляется следующим образом: из двух символов меньше тот, который встречается в таблице ASCII раньше.

Обычно значения для переменных типа Char задаются в апострофах: ch:='*'; а:='3'; letter:='G'.

Кроме того, имеется возможность задавать значения непосредственно указанием ASCII-кода: kd:=#65 (символ 'А'); s:=#10 (код клавиши Enter).

Первые 32 символа ASCII являются управляющими. Для указания этих символов используются записи # или ^<символ>. Например, ^[ − символ, соответствующий клавише [Esc]; ^G − звуковой сигнал.

Так как символьный тип является порядковым, то для него справедливо все, что было сказано о порядковых типах.

Пример 1

Написать программу вывода последовательности символов ААВАВС...АВ...YZ.


Решение

Последовательность символов строится по следующему правилу: Последовательно выводятся начальные отрезки латинского алфавита, состоящие из 1 символа, из 2 символов и так далее, до тех пор, пока не будет выведен весь алфавит. Количество таких отрезков равно количеству букв в алфавите. Так как символьный тип данных является порядковым типом, то можно использовать цикл с параметром символьного типа:


Program Example_59;
Var i, j: Char;
Begin
For i:='a' To 'z' Do {количество начальных отрезков алфавита}
For j:='а' То i Do {количество символов в данном начальном отрезке}
Write(j);
Readln;
End.

Функции:
pred(x) - определяет предыдущее значение величины x.
succ(x) - определяет последующее значение величины х.
ord(x) - возвращает порядковый номер величины х
Upcase(х)-преобразует букву х в прописную (эта функция работает только с буквами английского алфавита, все другие символы не изменяются).

Пример 2
Написать программу, которая подсчитывает количество цифр, входящих в исходный текст. Текст − это последовательность символов, ввод которой заканчивается нажатием клавиши [Enter].

Решение
Так как признаком конца ввода последовательности символов служит нажатие клавиши [Enter] (ей соответствует символ с кодом 13), то будем вводить символы до тех пор, пока значение очередного символа не совпадет со значением #10. Анализируя каждый символ, будем увеличивать счетчик, если символ является цифрой:

Program Example_60;
Var ch: Char;
k: Integer;
Begin
k:=0;
While ch<>#10 Do {пока не нажата клавиша }
Begin
If (ch>='0') and (ch<='9') Then Inc(k);
Read(ch);
End;
Writeln(^G,' Количество цифр равно ',k);
End.

Комментариев нет:

Отправить комментарий