Pascaler
О проекте Теоретический материал Тестирование Архив задач
Войти в личный кабинет



О проекте


Преподавателям


Тема: Тип данных 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.

Мы будем пользоваться множеством литер, находящимся в таблице кодов, называемой ASCII - американский стандартный код обмена информацией.

Все символы упорядочены, т.к. имеют свой личный номер. Важно, что соблюдаются следующие отношения:

  'A' < 'B' < 'C' < ... < 'X' < 'Y' < 'Z' '0' < '1' < '2' < ... < '7' < '8' < '9'

Для проверки равенства или неравенства переменных типа char могут использоваться операторы булевого сравнения.

Задача. Написать программу, которая считывает две литеры и печатает больше, равна или меньше первая литера второй.

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.

Так как char - порядковый тип, то к его значениям применимы следующие функции.

Succ - возвращает следующий символ литерного множества;

Pred - возвращает предыдущий символ литерного множества;

Ord - возвращает значение кода литеры;

Chr - возвращает значение литеры, является обратной по отношению к функции Ord.

Например,

Succ('0')='1' - символ, следующий за символом 0, равен символу 1.

Pred('3')='2' - символ, предшествующий символу 3, равен 2;

Chr(65)='A' - символ, соответствующий коду 65, равен А;

Ord('A')=65 - код символа А равен 65

Задачи для самостоятельного решения

  1. Вывести в одну строку АаБбВвГг.


  2. Запросите у пользователя символ и выведите на экран 5 символов, следующих за ним в таблице американских стандартных кодов обмена информацией. Проверьте, есть ли среди них знаки препинания.


  3. Запросите у пользователя символ и выведите на экран 5 символов, предшествующих данному в таблице американских стандартных кодов обмена информацией. Проверьте, есть ли среди них знаки простейших математических действий.


  4. Определите выведите на экран коды русских заглавных букв и латинских прописных.


  5. Определите и выведите на экран коды русских прописных букв и латинских заглавных.


  6. Вывести в одну строку ZYY...AA...A.


  7. Составьте программу, проверяющую, является ли введенный символ буквой латинского алфавита или скобкой (учесть круглые, фигурные и квадратные скобки).


  8. Запросите у пользователя несколько символов и выведите на экран их коды. Проверьте, являются ли они буквами.


  9. Вывести в одну строку ABBCCCDDDD...ZZ...Z.


  10. Вывести треугольник:
    Аяяяяяяяя…я
    Бюююю…ю
    Вээээээ…э
    . . .
    Эввв
    Юбб
    Яа.


  11. Вывести треугольник:
    A B C ...Y Z
    B C …Y Z
    C ...Y Z
Вернуться назад
2003—2012 © Группа «Vimedia»
Проект «Pascaler» — лучший на ХI Всероссийской конференции молодых исследователей с международным участием «Шаг в будущее», Россия, Москва, 12 – 16 апреля 2004г.