Символьные типы данных
Lazarus IDE: Основы программирования в Windows
Несмотря на то, что всё потихоньку уходит в сеть, программирование для настольных компьютеров остаётся востребованным. И будет таковым ещё долго. Ну а самая распространённая операционная система для настольных компьютеров – это по-прежнему Windows. Поэтому любой программист, даже если он собирается стать веб-разработчиком, должен знать хотя бы основы создания программ для Windows. Подробнее... |
Символ - это один знак (буква, цифра, или специальный символ, например, знак вопроса).
Free Pascal поддерживает один символьный тип, который называется Char. Этот тип данных также занимает один байт и используется при работе с текстовыми символами таблицы ASCII.
Что такое код ASCII?
Как уже неоднократно было сказано, компьютер не понимает слов. Следовательно, все буквы (символы) в памяти компьютера представлены в виде чисел. То есть каждому символу соответствует определённое число. Таких кодировок существует довольно много. ASCII-код разработан достаточно давно, но всё ещё применяется. В ASCII-коде каждая буква (точнее, каждый символ, так как в таблице ASCII есть не только буквы) представлена числом от 0 до 255. Например, английская буква «А» в ASCII-коде представлена числом 65.
В книге Как стать программистом мы с вами уже написали программу, которая выводит на экран таблицу ASCII-кодов. Если эта тема вам интересна, то рекомендую обратиться к упомянутой выше книге.
Однако этот курс рассчитан на людей с нулевыми знаниями в области программирования. И мы подразумеваем, что те, кто читает это статью, ещё ничего не знают об ASCII-кодах и других вещах. Ну да ладно, это пока не так и нужно. Просто будем считать, что символьный тип Char представляет символы с кодами от 0 до 255, то есть всего данные типа Char могут принимать одно из 256 значений.
Пример программы, которая выводит диапазон кодов типа Char, а также все символы, которые используются в этом типе данных, показан в листинге 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. Запустить программу. Если у вашего компьютера есть динамик, то вы услышите противный писк. Этот звук будет повторяться при каждом запуске программы. Попробуйте догадаться, почему это происходит.
Попробуйте также догадаться, почему начиная с некоторого символа, вывод начинается с новой строки.