Символьные типы данных

Что делать, чтобы стать программистом Что делать, чтобы стать программистом

Многие сегодня хотят стать программистами. Хотят. Но ничего не делают для этого. Не делают даже простых вещей. Не хотят даже прочитать книжку из 10 страниц. В итоге так и остаются никем. Потому что мечты не сбываются никогда. Сбываются только планы… Подробнее...

Символ - это один знак (буква, цифра, или специальный символ, например, знак вопроса).

Free Pascal поддерживает один символьный тип, который называется Char. Этот тип данных также занимает один байт и используется при работе с текстовыми символами таблицы ASCII.

Что такое код ASCII?

Как уже неоднократно было сказано, компьютер не понимает слов. Следовательно, все буквы (символы) в памяти компьютера представлены в виде чисел. То есть каждому символу соответствует определённое число. Таких кодировок существует довольно много. ASCII-код разработан достаточно давно, но всё ещё применяется. В ASCII-коде каждая буква (точнее, каждый символ, так как в таблице ASCII есть не только буквы) представлена числом от 0 до 255. Например, английская буква «А» в ASCII-коде представлена числом 65.

В книге Как стать программистом мы с вами уже написали программу, которая выводит на экран таблицу ASCII-кодов. Если эта тема вам интересна, то рекомендую обратиться к упомянутой выше книге.

Однако этот курс рассчитан на людей с нулевыми знаниями в области программирования. И мы подразумеваем, что те, кто читает это статью, ещё ничего не знают об ASCII-кодах и других вещах. Ну да ладно, это пока не так и нужно. Просто будем считать, что символьный тип Char представляет символы с кодами от 0 до 255, то есть всего данные типа Char могут принимать одно из 256 значений.

Пример программы, которая выводит диапазон кодов типа Char, а также все символы, которые используются в этом типе данных, показан в листинге 13.3.

Листинг 13.3. Программа вывода на экран диапазонов логических типов.
program sim;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes
  { you can add units after this };

var chi : Char;

begin
  Writeln('Char (code) : ',  Ord(Low(Char)), '..', 
           Ord(High(Char)), #13#10);
  for chi := #0 to #255 do
    Write(chi);
  Readln;
end.

Здесь мы несколько забежали вперёд: использовали переменные и стандартную функцию Ord. Но пока не обращайте на это внимание, а просто перепишите код и попробуйте запустить его.

Символы в программе можно записать двумя способами.

‘A’ - символ в одинарных кавычках.
#65 - код символа с префиксом #.

Например,

WriteLn('A');

и

WriteLn(#65);

выведут на экран один и тот же символ - английскую букву А.

Домашнее задание:

На внимательность: почему данные типа Char могут принимать одно из 256 значений, если коды символов лежат в диапазоне 0...255. Это очень просто, но многие не понимают)))

Создать новую программу, используя исходный код листинга 13.3. Запустить программу. Если у вашего компьютера есть динамик, то вы услышите противный писк. Этот звук будет повторяться при каждом запуске программы. Попробуйте догадаться, почему это происходит.

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


Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика