0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Типы данных

Типы данных

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

Целые числа — это числа, с помощью которых Вы учились считать (1, 5, -21 и 752, например).

Вещественные числа имеют дробные части (3.14159) и экспоненты (2.579×10**24). Они также известны как числа с плавающей точкой.

Символы — это любые буквы алфавита, символы и цифры 0-9. Они могут использоваться отдельно (а, z, !, 3) или объединяться в символьные строки (‘Это только проверка’).

Булевские выражения имеют только два значения: TRUE или FALSE (истина или ложь). Они используются в условных выражениях.

Указатели — это адреса ячеек памяти, содержащих информацию.

Целые числа.

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

В Turbo Pascal поддерживается целочисленный тип MaxInt = 32,767, допуская значение -32,768. Переменная целочисленного типа занимает 2 байта.

В Turbo Pascal, кроме того, поддерживается четыре других целочисленных типов данных, каждый из которых имеет свой диапазон значений.

Заключение: Turbo Pascal позволяет использовать шестнадцатиричные целые значения (основание 16). При описании шестнадцатиричной константы перед ней указывается знак доллара $, например $27=39.

Статья в тему:  Выключается мышка x7. Почему отключается мышь

+Вещественный тип данных.

В стандартном Паскале тип Real представляет значение с плавающей точкой, содержащее мантиссу и экспоненту — степень числа 10.

Количество значащих цифр в мантиссе и диапазон значений экспоненты зависят от компьютера. В Turbo Pascal данные вещественного типа Real имеют размер в 6 байт, с 11 значащими цифрами, мантиссы и экспоненты от 10**-38 до 10**38.

Кроме того Turbo Pascal поддерживает стандарт IEEE 754 для двоичной арифметики с плавающей точкой. В этом случае добавляются типы данных с Single, Double, Extended и Comp:

Single — размер 4 байта, допускается 7 значащих цифр и диапазон экспоненты от 10**-45 до 10**38;

Double — размер 8 байт, допускается 15 значащих цифр и диапазон экспоненты от 10**-324 до 10**308;

Extended — размер 10 байт, допускается 19 значащих цифр и диапазон экспоненты от 10**-4951 до 10**4931.

Если у вас есть процессор 8087, и включена работа с числовым сопроцессором (<$N+>), Turbo Pascal генерирует инструкции 8087 для поддержки этих типов и выполнения всех операций с плавающей точкой на 8087.

Если у Вас нет 8087, но Вы хотите использовать IEEE типы, Вы можете указать Turbo Pascal эмулировать процессор 8087, разрешая и эмуляцию 8087 и обработку с плавающей точкой (директивы <$E+,N+>). Turbo Pascal подключает специальную библиотеку, которая выполняет операции с плавающей точкой, так же как процессор 8087.

Статья в тему:  Виндовс 7 защита от вирусов. Бесплатные антивирусы

Сохраним ее в файле DORATIO.PAS с помощью функции основного меню File/Save As. Нажмите ALT-R для компиляции и запуска программы. Введем два значения, 10 и 3, и получим результат 3.000000.

Ожидая ответа 3.3333333333, мы получили результат 3. Получили такой результат, потому что был использован оператор «div» для деления целых чисел.

Исправим оператор «div» на Ratio := A / B; сохраним код (F2), откомпилируем и выполним. Новый результат 3.3333333333, как и ожидали. Оператор деления «/» обеспечивает более точный результат.

+Символьные и строковые типы данных.

Научившись записывать числовые данные, выучим запись и использование символьных и строковых данных. Паскаль позволяет определять тип Char, имеющий размер в один байт и содержащий один символ. Символьные константы содержат один символ, заключенный в апострофы (‘A’,’e’,’г’,’2′). Заметим, что ‘2’ означает символ 2, а 2 означает целое число 2 (и 2.0 — вещественное число) .

После вычисления коэффициента, выдается сообщение:

Do it again? (Y/N). (Повторить? (Да/Нет)).

Программа находится в состоянии ожидания одного из указанных символов и нажатия клавиши «Enter». Если Вы нажмете «n» или заглавную «N», то условие «until» будет выполнено и цикл закончится. В случае, если Вы ответите «Y» («y»), то выполнение цикла будет продолжено.

«N» и «n» не одно и тоже, потому что они имеют различные значения в коде ASCII. Каждый символ имеет свой код ASCII, представленный 8-битным значением (символ занимает 1 байт). Приложение B в Руководстве программиста содержит список кодов ASCII для всех символов.

Статья в тему:  Рейтинг популярных браузеров. Сравнение браузеров

В Turbo Pascal существуют два дополнительных способа описания символьных констант: с помощью символа «^» и символа числа «#».

Символы с кодами от 0 до 31 — управляющие символы. Они обозначаются аббревиатурами (CR — возврат каретки, LF — перевод строки, ESC — выход) или с помощью двух клавиш, одна из которых Ctrl + буква. Значение буквы получается прибавлением 64 к управляющему коду.

Например, управляющий символ кода ASCII 7 известен как Bel или CtrlG. Turbo Pascal дает возможность представить символы с помощью «^», за которым следует буква (или символ). Так, «^G» то же самое, что и Ctrl-G. «^G» можно использовать в операторах Turbo Pascal: Writeln (^G). Этот метод применим только к управляющим символам.

Вторая возможность обозначения — использование символа номера «#», за которым следует код ASCII. Так, #7 то же самое, что и «^G», #65 — ‘A’, a #233 — один из специальных псевдографических символов IBM PC.

В большинстве случаев используются строки символов. В стандартном Паскале не поддерживается тип строк символов. В Turbo Pascal реализована эта возможность. Рассмотрим программу

Переменная Name объявлена, как string (строка), и под нее резервируется 30 байт (для 30 символов). Кроме того, Turbo Pascal отводит еще один байт, в котором содержится текущая длина строки. В этом случае, независимо от того, какой длины будет введено имя, оператор Writeln распечатает имя указанной длины. Если будет введено имя больше 30 символов, то будут использоваться только первые 30 символов, а остальные будут проигнорированы.

Статья в тему:  Размер айфон 6 и 6s одинаковый. Объем внутренней памяти

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

Turbo Pascal предлагает несколько процедур и функций, работающих со строковыми переменными. Их описание дано в главе 1 Справочного руководства по библиотеке.

+Булевские данные.

Встроенный тип Boolean данных в Turbo Pascal имеет два возможных значения: True и Falsе (истина и ложь). Можно объявить переменную типа Boolean, и присвоить ей значение True или False, или же, что более важно, присвоить ей значение выражения, которое при вычислении принимает одно из этих значений.

Булевское выражение — это выражение, которое принимает значение True или False.

Оно состоит из выражений отношений, булевских операторов, булевских переменных и/или других булевских выражений. Например:

while содержит булевское выражение. Булевское выражение в этом случае все, что находится между ключевыми словами while и do. Done — это переменная (или функция) булевского типа.

+Указатели.

Все рассмотренные типы данных содержат непосредственно данные. Указатель, содержащий другой тип информации — адрес. Указатель — это переменная, содержащая адрес памяти, где какие либо данные помещаются. Другими словами, он указывает на данные, как адресная книга или оглавление.

Обычно указатель указывает на данные определенного типа. Расмотрим следующий пример:

Тип данных Buffer определен, как строковая переменная размером 255 байт, в то же время BufPtr — указатель на Buffer. Переменная Buf1 имеет тип Buffer и занимает (255+1) байт памяти. Переменная Buf2 имеет тип BufPtr, это 32-битовый адрес и занимает 4 байта памяти.

Статья в тему:  Прога для скачки из контакта. Как скачать музыку вконтакте

Куда указывает Buf2? В данный момент никуда. Прежде чем использовать BufPtr, необходимо зарезервировать (распределить) память и запомнить ее адрес в Buf2. Вы делаете это, используя процедуру New:

Поскольку Buf2 указывает на тип Buffer, то этот оператор выделит в памяти 256-байтовый буфер и его адрес поместит в Buf2.

Как использовать Buf2 и данные, на которые он указывает? С помощью оператора ^. Например, необходимо поместить строку и в Buf1 и в буфер, на который указывает Buf2:

Отметим различие между Buf2 и Buf2^: Buf2 означает 4-байтовую переменную указателя; Buf2^ — 256-байтовую строковую переменую, адрес которой в Buf2.

Теперь, как освободить память, на которую указывает Buf2? Используя процедуру Dispose. Эта процедура освобождает память. После того, как при помощи Dispose освобождена память, следует присвоить указателю значение nil, т.е. указатель ни на что не указывает:

Заметим, что значение nil присваивается указателю Buf2, а не Buf2^.

Стандартные типы

Турбо-Паскаль имеет четыре встроенных стандартных типа: integer (целое), real (вещественное), boolean (логический) и char (символьный).

Целочисленный тип (integer)

В Турбо-Паскале имеется пять встроенных целочисленных типов: shortint (короткое целое), integer (целое), longint (длинное целое), byte (длиной в байт) и word (длиной в слово). Каждый тип обозначает определенное подмножество целых чисел, как это показано в следующей Таблице.

Встроенные целочисленные типы.

Тип

Статья в тему:  Перенос данных с самсунга на самсунг

Диапазон

Формат

8 битов со знаком

16 битов со знаком

32 бита со знаком

8 битов без знака

16 битов без знака

Арифметические действия над операндами целочисленного типа осуществляются в соответствии со следующими правилами:

  1. Тип целой константы представляет собой встроенный целочисленный тип с наименьшим диапазоном, включающим значение этой целой константы.
  2. В случае бинарной операции (операции, использующей два операнда), оба операнда преобразуются к их общему типу перед тем, как над ними совершается действие. Общим типом является встроенный целочисленный тип с наименьшим диапазоном, включающим все возможные значения обоих типов. Например, общим типом для целого и целого длиной в байт является целое, а общим типом для целого и целого длиной в слово является длинное целое. Действие выполняется в соответствии с точностью общего типа и типом результата является общий тип.
  3. Выражение справа в операторе присваивания вычисляется независимо от размера переменной слева.

Операции совершаемые над целыми числами:

SQR – возведение в квадрат

DIV – после деления отбрасывает дробную часть

MOD – получение целого остатка после деления

ABS – модуль числа

RANDOM(X)-получение случайного числа от 0 до Х

Описываются переменные целого типа следующим образом:

var список переменных: тип;

Например: var а,р,n:integer;

Вещественный тип(real)

К вещественному типу относится подмножество вещественных чисел, которые могут быть представлены в формате с плавающей запятой с фиксированным числом цифр. Запись значения в формате с плавающей запятой обычно включает три значения – m, b и e – таким образом, что m*b е , где b всегда равен 10, а m и e являются целочисленными значениями в диапазоне вещественного типа. Эти значения m и e далее определяют диапазон и точность вещественного типа.

Статья в тему:  Интересные блоггеры в жж. Блог визуальных осколков

Имеется пять видов вещественных типов: real, singlе, duble, exnende, comp. Вещественные типы различаются диапазоном и точностью связанных с ними значений

Диапазон и десятичные цифры для вещественных типов

Тип

Диапазон

Цифры

2.9×10Е-39 до 1.7×10Е 38

1.5×10Е-45 до 3.4×10Е 38

5.0×10Е-324 до 1.7×10Е 308

3.4×10Е-493 до 1.1×10Е 403

Операции совершаемые над вещественными числами:

  • Все операции допустимые для целых чисел.
  • SQRT(x)-корень квадратный из числа х.
  • SIN(X), COS(X), ARCTAN(X).
  • LN(X)-натуральный логарифм.
  • EXP(X)-экспонента Х (е х ).
  • EXP(X*LN(A))-возведение в степень (А х ).
  • Функции преобразования типов:
  • TRUNC(X)-отбрасывает дробную часть;
  • ROUND(X)-округление.
  • Некоторые правила арифметических операций:
  • Если в арифметическом действии встречаются числа типа real и integer, то результат будет иметь тип real.
  • Все составные части выражения записываются в одну строку.
  • Используются только круглые скобки.
  • Нельзя подряд ставить два арифметических знака.

    Описываются переменные вещественного типа следующим образом:

    Символьный тип(char)

    K типу char относится любой символ заключенный в апострофы. Для представления апострофа как символьную переменную, надо заключить его в апостроф:’’’’.

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

    К символьным данным применимы знаки сравнения:

    Например: ‘A’ – это особый вид констант, задаваемых через запятую и имеющих свой порядковый номер, начиная с 0.

    Статья в тему:  Способы установки держателя планшета в автомобиле

    Можно выполнить такие операторы присваивания:

    но нельзя выполнять смешанные присваивания:

    К переменным перечислимого типа применимы следующие функции:

    1. ORD – порядковый номер

    2. PRED – предшествующий элемент

    3. SUCC – последующий элемент.

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

    В языке Паскаль определено пять целых типов.

    Таблица. Целые типы Pascal

    ТипДиапазон допустимых значенийОтводимая память, в байтах
    shortint-128…1271
    integer-32 768…32 7672
    longint-2 147 483 648…2 147 483 6474
    byte0…2551
    word0…65 5352

    Переменные целого типа могут принимать только целые значения. Такие переменные в программе описываются следующим образом:

    Здесь a, b, c… – имена переменных, integer – тип переменных. Транслятор, встретив такое описание переменных a, b, c, запоминает, что эти переменные могут принимать только целые значения и формирует соответственно этому команды программы.

    Таблица. Операции над целыми типами, дающие в результате значение целого типа

  • Ссылка на основную публикацию
    Статьи c упоминанием слов:
    Adblock
    detector