Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11 / тп / lections / Glava_2_-_DANNYE.doc
Скачиваний:
30
Добавлен:
19.05.2015
Размер:
204.29 Кб
Скачать

Преимущества от использования типов данных:

Надёжность.Типы данных защищают от трёх видов ошибок:

  1. Некорректное присваивание. Пусть переменная объявлена как имеющая числовой тип. Тогда попытка присвоить ей символьное или какое-либо другое значение в случае статической типизации приведёт к ошибкекомпиляциии не даст такой программе запуститься. В случае динамической типизации интерпретатор программы перед выполнением потенциально опасного действия сравнит типы данных переменной и значения и также выдаст ошибку. Всё это позволяет избежать неправильной работы и «падения» программы.

  2. Некорректная операция. Позволяет избежать попыток применения выраженийвида «Hello world» + 1. Поскольку, как уже говорилось, все переменные в памяти хранятся как наборы битов, то при отсутствии типов подобная операция была выполнима. С использованием типов такие ошибки отсекаются опять же на этапе компиляции.

  3. Некорректная передача параметров. Если функция«синус» ожидает, что ей будет передан числовой аргумент, то передача ей в качестве параметра строки «Hello world» может иметь непредсказуемые последствия. При помощи контроля типов такие ошибки также отсекаются на этапе компиляции.

Стандартизация. Благодаря соглашениям о типах, поддерживаемых большинством систем программирования, сложилась ситуация, когда программисты могут быстро менять свои рабочие инструменты, а программы не требуют больших переделок при переносе исходных текстов в другую среду.

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

2.4. Классификация типов данных Классификация типов данных приведена на рис. 2.1.

Рис. 2.1. Классификация типов данных

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

Числовые типыхранятчисла. ВVBнад переменными численных типов можно выполнять арифметические операции:+(сложение),(вычитание),*(умножение),/(деление),\(деление нацело),^(возведение в степень),mod(остаток от деления). Каждая операция имеет свой приоритет. Наивысший приоритет у операции возведения в степень, более низкий — у операций: остаток от деления, умножение, деление и деление нацело. Самый низкий приоритет у операций сложение и вычитание. Чтобы изменить приоритет операций в выражении необходимо использовать круглые скобки.

Целочисленныетипы могут быть со знаком, то есть могут принимать как положительные, так и отрицательные значения; и без знака, то есть могут принимать только неотрицательные значения.

Диапазоны значений для всех целых типов перечислены в табл. 1.1.

Таблица 1.1. - Целочисленные типы

Тип

Диапазон значений

Физический формат

Byte

 0-255

 8 бит (1 байт), без знака

Integer

-32 768-32 767 

16 бит (2 байта), со знаком

Long

 -2 147 483 648-2 147 483 647 

32 бит (4 байта), со знаком

Вещественныечисла могут быть сзапятой(то есть хранятся знак и цифры целой и дробной частей) и сплавающей запятой(то есть число приводится к виду m*be, где m —мантисса, b — основаниепоказательной функции, e — показатель степени (порядок), причём внормальной форме0<=m<b, а внормализованной форме1<=m<b.

В языке VBимеется два типа данных для хранения вещественных чисел с плавающейзапятой, которые представлены в таблице 1.2:

Таблица 1.2. – Вещественные типы данных

Тип

Диапазон

Мантисса

Байты

Single

1,5×10-45..3,4×1038

7-8

4

Double

5,0×10-324..1,7×10308

15-16

8

Типичные операции над действительными числами — сложение, вычитание, умножение, деление, вычисление тригонометрических функций, возведение в степень, извлечение квадратного корня, логарифмирование и другие.

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

Символьный тип (или данное типа строка) включает множество символов или литер, доступных в конкретной ЭВМ. Как следует из этого определения, множество символов фиксировано и в разных ЭВМ эти множества могут различаться. Типовыми операциями над символьными данными является операция «читать» и «писать».

Каждый символ имеет код. Для кодирования символов достаточно одного байта. При этом можно представить 256 символов (с десятичными кодами от 0 до 255). Набор символов персональных ЭВМ, совместимых с IBM PC, чаще всего является расширением кода ASCII (American Standard Code for Information Interchange — стандартный американский код для обмена информацией). В настоящее время используются и двухбайтовые представления символов.

Особенностью символьного представления в ЭВМ является то, что часто двоичные коды представления одного и того же символа на разных устройствах ЭВМ различны. Это необходимо учитывать, если придется разрабатывать программы обмена на машинном языке для разных устройств ЭВМ или переносить программу с одной платформы на другую.

Зависимость символа коду определяется кодировкой. В частности имеются кодировки CP-866, Win-1251, Koi-8 и т.д. В VB используется кодировка Win-1251.

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

В VBдля определения кода символа служит функцияAsc(символ). Например,

x=Asc(“A”) –xстанет равной 65 – коду символа ‘A‘ вASCII-кодировке.

Для определения символа по коду используется функция Chr(число). Например,

с=Chr(65) – с станет равной “A” – символу с кодом 65.

Для получения следующего символа можно использовать следующую запись:

c=Chr(Asc(“A”)+1) – в результате будет получен символ “B”.

Логический типимеет два значения:истинаиложь, притроичной логикеможет иметь и третье значение — «не определено» (или «неизвестно»). К значениям логического типа могут применятьсялогические операции.

В разных языках программирования эти два логических значения могут записываться по-разному. Например, в Паскале или C/C++/C# этоtrueиfalse, вVisualBasic—TrueиFalse. В некоторых языках логический тип являетсяподтипомчислового типа, при этом ложь=0, истина=1.

Используются в операторах ветвленияициклах.

Логическое значение является результатом выполнения операций сравнения (,(кодируется как <=),,(>=),(= вVBи Паскале и = = в С/C++/C#),(<> вVBи Паскале и != в С/C++/C#)) над целыми и вещественными числами, символьными и другими данными, над которыми эти операции имеют смысл.

Например:

5 > 3 – истинно;

2*2 = 5 – ложно;

«ответ» > «задача» – истина (сравнение осуществляется в алфавитном порядке).

Типовыми операциями над этими данными логического типа является конъюнкция (и, логическое умножение), дизъюнкция (или, логическое сложение), отрицание (не). Конъюнкция и дизъюнкция являются бинарными операциями, а отрицание – унарной. Часто в языках программирования используются и более сложные логические операции: исключающее или, импликация, эквивалентность.

Логические операции на языке VisualBasicобозначаются следующим образом: конъюнкция (логическое умножение) –And, дизъюнкция (логическое сложение) –Orи отрицаниеNot.

Таблица 2.1 — Таблица истинности для операций коньюнкция и дизъюнкция

А

В

A And B

A Or В

False

False

False

False

False

True

False

True

True

False

False

True

True

True

True

True

Таблица 2.2 — Таблица истинности для операции отрицание

А

Not А

false

true

True

false

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

(5 > 3) And (2*2 = 5) – ложно;

(5 > 3) Or(2*2 = 5) – истинно.

Not(5 < 3) – истинно.

Для запоминания логического значения в памяти ЭВМ достаточно одного двоичного разряда. Но поскольку в настоящее время минимальным адресуемым элементом памяти является байт, то логическое значение хранят в байте или даже двух байтах, при этом код его представления в ЭВМ является избыточным.

В языке VBлогический тип занимает два байта и называетсяBoolean.

Множествосовпадает с обычнымматематическимпонятиеммножества. Допустимы стандартные операции с множествами и проверка на принадлежность элемента множеству.

Массивявляется индексированным набором элементов одного типа.Одномерный массивпредставляет собой модельвектора,двумерный массив—матрицы.

Строковый типхранитстрокусимволов. Аналогом сложения в строковой алгебре являетсяконкатенация(прибавление одной строки в конец другой строки). В языках, близких к бинарному представлению данных, чаще рассматривается какмассивсимволов (язык C), в языках более высокой абстракции зачастую выделяется в качестве простого (языкиVisualBasicи Паскаль). Конкатенация на языкеVBвыполняется следующим образом:

s&s2

или

s+s2 (первый способ предпочтительнее).

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

Файловый типхранит только однотипные значения, доступ к которым осуществляется произвольно (файлс произвольным доступом). Представляет собой аналог массива, хранящийся во внешней памяти.

Класс— набор данных (аналогично записи) и операций, выполняемых над этими данными. Используется в объектно-ориентированном программировании

Указатель— объект компьютерного мира — хранитадресв памятикомпьютера, указывающий на какую-либо информацию, как правило —указательнапеременную. Типичными операциями над такими данными являются операции присвоения адреса памяти или присвоение значения другого указателя. Для обращения к переменной, на которую указывает указатель, необходимо выполнить операцию разадресации (разыменования). Их можно использовать для доступа к области с динамическим размещением памяти, обычно называемой кучей, или динамической памятью Указатели имеют важное значение при создании и обработке связных структур данных – списков.

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

Соседние файлы в папке lections