Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Sam has 32767 dollars and Sue has 32767 dollars deposited.




Add $1 to each account.

Now Sam has -32768 dollars and Sue has 32768 dollars deposited.

Poor Sam!

Sam has 0 dollars and Sue has 0 dollars deposited.

Take $1 from each account.

Now Sam has -1 dollars and Sue has 65535 dollars deposited.

Lucky Sue!

В этой программе переменной Sam типа SmallInt и переменной Sue типа Word присваивается самое большое значение для данных типа SmallInt, которое в нашей системе равно 32767. Затем значение каждой переменной увеличивается на единицу. Для переменной Sue это не вызывает никаких проблем, поскольку новое значение намного меньше максимально допустимого для целого числа без знака. Но значение переменной Sam изменяется с 32767 на -32768! Аналогично этому вычитание 1 из 0 не вызывает никаких проблем в отношении переменной Sam, но значение беззнаковой переменной Sue изменяется с 0 на 65535. Как видим, принцип здесь тот же, что и для спидометра автомобиля или счетчика видеомагнитофона: при выходе за границу диапазона одно граничное значение заменяется другим граничным значением. В Delphi определено, что данные без знака ведут себя именно таким образом.

Какой тип выбрать

В языке Delphi имеется такое разнообразие целочисленных типов данных, что может возникнуть вопрос: какой тип данных следует использовать в данном конкретном случае? Обычно для данных типа Intetger выбирается размерность, которая является наиболее "естественной" для компьютера. Понятие естественности означает, что целые числа подобного типа обрабатываются компьютером наиболее эффективно. Если нет серьезных причин предпочесть какой-либо иной тип данных, используйте Integer.

А теперь рассмотрим причины, по которым может потребоваться использовать какой-либо другой тип данных. Если переменная представляет величину, которая никогда не бывает отрицательной, например количество слов в документе, то можно использовать тип данных без знака. В результате переменная сможет принимать более высокие значения.

 

Целочисленные типы

Имя типа Диапазон допустимых значений
Integer -2 147 483 648..2 147 483 647
Cardinal 0..4 294 967 295
ShortInt -128..127
SmallInt -32768..32767
LongInt -2 147 483 648..2 147 483 647
Int64 -263..263-1
Byte 0..255
Word 0..65535
LongWord 0.. 4 294 967 295

 

 

Константы

Целочисленная константа — это константа, записываемая явно, например 212 или 1776. В языке Delphi целочисленные константы могут записываться в двух системах счисления: десятичной (самая популярная система) и шестнадцатеричной (любимая система хакеров, стремящихся получить доступ к данным на аппаратном уровне). Чтобы определить, к какой системе счисления относится числовая константа, анализируются одна или две первые цифры константы. Если первая цифра находится в диапазоне 1—9, то число является десятичным. Таким образом, число 93 —десятичное. Если первый символ — $, то речь идет о шестнадцатеричном числе. Например, число $42 — это шестнадцатеричное число, эквивалентное десятичному числу 66.


Программа 2_4

// демонстрирует использование шестнадцатеричных и восьмеричных чисел

program Project1;

 

{$APPTYPE CONSOLE}

Uses

SysUtils;

Const

chest = 42; //десятичная целочисленная константа

waist = $42; //шестнадцатеричная целочисленная константа

Begin

Writeln('chest = ', chest);

Writeln('waist = ', waist);

 

Readln;

end.

Результат:

chest = 42

waist = 66

По умолчанию оператор WriteLn отображает на экране целые числа в десятичном виде, независимо от того, как они записаны в программе.

Следует отдавать себе отчет в том, что все перечисленные системы счисления используются лишь для удобства. Например, если сегмент видеопамяти CGA эквивалентен шестнадцатеричному числу В000, то вам перед использованием в своей программе не потребуется преобразовывать его в десятичное число 45056. Можно просто записать $В000. Но независимо от того, в каком виде вы записываете число 10: как 10 или $А, — оно сохраняется в компьютере одним и тем же способом — в виде двоичного числа.

Значения строковых констант заключаются в одинарные кавычки и могут содержать последовательность любых символов. Если в текст строки надо включить символ одинарной кавычки, то он повторяется дважды. Например:

const MyFile = 'Имя моего файла ''Mf.txt'''

Объявленная таким образом константа соответствует тексту Имя моего файла "Mf.txt".

Если строковая константа состоит из последовательности нескольких строк (например, строка настолько длинная, что при кодировании ее желательно разбить на несколько строчек), то отдельные строки могут объединяться операцией «+»; Например, оператор:

const C= 'Это начало строки, ' +

'а это ее продолжение';

объявляет константу, содержащую текст «Это начало строки, а это ее продолжение».

В значение строковой константы можно включать как печатаемые, так и непечатаемые символы, указывая после символа «#» десятичное или шестнадцатеричное число от 0 до 255, соответствующее коду ASCII нужного символа. Например, обозначение #13 соответствует символу перевода строки. В записи константы можно чередовать записи в кавычках и записи с символом #. Например, константа

'строка 1'#13'строка 2'

соответствует двум строкам:

Строка 1

Строка 2

Тип данных char: символы и малые целые числа

Char – 8-битовый символ. Как можно судить по его названию, char предназначен для представления символов, например букв и цифр. Однако если организация хранения чисел не представляет для компьютеров сложности, то с хранением символов ситуация совсем другая. В языках программирования был найден простой выход: для представления символов используется числовой код. Таким образом, тип данных Char — это еще один тип целочисленных данных. Гарантируется, что данные этого типа имеют достаточную размерность для представления всего диапазона основных символов — всех букв, цифр, знаков препинания и т.п. — вычислительной системы, для которой предназначена реализация языка. На практике в большинстве систем основной набор символов содержит менее 256 символов, поэтому для его представления достаточно одного байта.

Наиболее распространенным набором символов в США является ASCII. Символы этого набора представлены числовым кодом (ASCII-кодом). Например, 65 — код символа А. Для удобства в примерах настоящей книги используется ASCII-код.

Тип данных Char также предназначен для хранения одного символа из следующей таблицы

  ·   [пробел]   @   `   ·   [пробел]   А   а
  ·   !   A   a   ·   Ў   Б   б
  ·   "   B   b   ·   ў   В   в
  ·   #   C   c   ·   Ј   Г   г
  ·   $   D   d   ·   ¤   Д   д
  ·   %   E   e   ·   Ґ   Е   е
  ·   &   F   f   ·   ¦   Ж   ж
  ·   '   G   g   ·   §   З   з
  * *   (   H   h   ·   Ё   И   и
  * *   )   I   i   ·   ©   Й   й
  * *   *   J   j   ·   Є   К   к
  ·   +   K   k   ·   «   Л   л
  ·   ,   L   l   ·       М   м
  * *   -   M   m   ·   ­   Н   н
  ·   .   N   n   ·   ®   О   о
  ·   /   O   o   ·   Ї   П   п
  ·       P   p   ·   °   Р   р
  ·       Q   q     ±   С   с
  ·       R   r     І   Т   т
  ·       S   s   ·   і   У   у
  ·       T   t   ·   ґ   Ф   ф
  ·       U   u   ·   µ   Х   х
  ·       V   v   ·     Ц   ц
  ·       W   w   ·   ·   Ч   ч
  ·       X   x   ·   ё   Ш   ш
  ·       Y   y   ·     Щ   щ
  ·   :   Z   z   ·   є   Ъ   ъ
  ·   ;   [   {   ·   »   Ы   ы
  ·   <   \   |   ·   ј   Ь   ь
  ·   =   ]   }   ·   Ѕ   Э   э
  ·   >   ^   ~   ·   ѕ   Ю   ю
  ·   ?   _   ·   ·   ї   Я   я

Применение данных типа Char демонстрируется в программе 2_4.

Программа 2_5

// применение данных типа char

program Project1;

 

{$APPTYPE CONSOLE}

 

Uses

SysUtils;

Var

ch: Char;

 

Begin

Write('Enter a character: ');

Readln(ch);

Writeln('Thank you for the ', ch,' character.');

Readln;

end.

Результат:

Enter a character:

M

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...