Базовые типы данных языков программирования высокого уровня. Лекция 3

Содержание

Слайд 2

Данные - любой набор знаков, рассматриваемый безотносительно к его содержательному смыслу

Данные - любой набор знаков, рассматриваемый безотносительно к его содержательному смыслу

ЭВМ

в настоящее время:
считывает и выполняет определенные алгоритмы
хранит значительные объемы информации, к которой нужно быстро обращаться
Эта информация - абстракция фрагмента реального мира, состоит из определенного множества данных, относящихся к какой-либо проблеме
Данные изображают некоторую информацию, которую можно получить, если известен смысл, приписываемый данным
В программировании часто приходится иметь дело именно с данными
Например, разработка системы хранения и поиска некоторых текстов
Слайд 3

Данные - любой набор знаков, рассматриваемый безотносительно к его содержательному смыслу

Данные - любой набор знаков, рассматриваемый безотносительно к его содержательному смыслу

Вычислительные

машины выполняют только обработку данных,
которая заинтересованным лицам, приписывающим этим данным некоторый смысл, представляется обработкой информации

Программист может не знать содержания текстов!

Пример

Слайд 4

Понятие структуры данных Совокупности данных, организованные некоторым образом, называют структурами данных

Понятие структуры данных

Совокупности данных, организованные некоторым образом,
называют структурами данных
Структура определяется

отношениями между ее элементами

УРОВНИ ПРЕДСТАВЛЕНИЯ СТРУКТУР ДАННЫХ:
абстрактный (математический) уровень
логический уровень
физический уровень

Слайд 5

Понятие структуры данных УРОВНИ ПРЕДСТАВЛЕНИЯ СТРУКТУР ДАННЫХ: Физический уровень – отображение

Понятие структуры данных

УРОВНИ ПРЕДСТАВЛЕНИЯ СТРУКТУР ДАННЫХ:
Физический уровень –
отображение на

память ЭВМ информационного объекта в соответствии с логическим описанием
На этом уровне определяются
область и объём памяти, необходимый для хранения экземпляра структуры данных,
форматы и интерпретация внутреннего представления
Физическая структура данных - способ физического представления данных в памяти машины и называется еще структурой хранения, внутренней структурой или структурой памяти
Слайд 6

Классификация структур данных Классификация типов данных по характер упорядоченности

Классификация структур данных

Классификация типов данных
по характер упорядоченности

Слайд 7

Классификация структур данных Классификация базовых и дополнительных структур данных

Классификация структур данных

Классификация базовых и дополнительных структур данных

Слайд 8

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

Классификация структур данных

Классификация структур данных в зависимости от размещения физических структур

и доступа к ним
Слайд 9

Концепция типа данных отображает особенности представления в компьютере данных различной природы

Концепция типа данных

отображает особенности представления в компьютере данных различной природы
Информация по

каждому типу однозначно определяет:
структуру хранения данных указанного типа, то есть выделение памяти, представление данных в ней и метод доступа к данным;
множество допустимых значений, которые может иметь тот или иной объект описываемого типа;
набор допустимых операций, которые применимы к объекту описываемого типа
Слайд 10

Концепция типа данных отображает особенности представления в компьютере данных различной природы

Концепция типа данных

отображает особенности представления в компьютере данных различной природы
Абстрактный тип

данных (АТД) –
это формализованное описание (модель), определяющее организацию и набор возможных операций с описываемыми данными
Слайд 11

Компьютерные данные - дискретные сообщения, понятные компьютеру Для процессора компьютера любые

Компьютерные данные - дискретные сообщения, понятные компьютеру

Для процессора компьютера любые данные

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

Данные в программах Непосредственные значения - это неизменные объекты программы, которые

Данные в программах

Непосредственные значения - это неизменные объекты программы, которые представляют

сами себя: числа (25, 1.34E-20), символы (‘A’, ‘!’), строки (‘Введите элементы матрицы’)
Константы – это имена, закрепляемые за некоторыми значениями (const pi=3.1415926)
Переменные - это объекты, которые могут принимать значение, сохранять его без изменения, и изменять его при выполнении определенных действий (var k:integer, x:real, a:array[1..3,1..5]);
Значения выражений и функций – это записанные определённым способом правила вычисления значений: k*x+ sqrt (x)
Слайд 13

Концепция типа данных отображает особенности представления в компьютере данных различной природы

Концепция типа данных

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

используют предопределенные скалярные типы:
целый (integer)
вещественный (real)
символьный (char)
логический (boolean)
Слайд 14

Концепция типа данных Тип integer Целочисленные точные значения Примеры: 73, -98,

Концепция типа данных

Тип integer
Целочисленные точные значения
Примеры: 73, -98, 5, 19674
Машинное представление:

формат с фиксированной точкой
Диапазон значений определяется длиной поля
Операции: +, -, *, div, mod,=, <, и т.д.
Слайд 15

Концепция типа данных Тип real Нецелые приближенные значения Примеры: 0.195, -91.84,

Концепция типа данных

Тип real
Нецелые приближенные значения
Примеры: 0.195, -91.84, 5.0
Машинное представление: формат

с плавающей точкой
Диапазон и точность значений определяется длиной поля
Операции: +, -, *, /, =, <, и т.д.
Слайд 16

Концепция типа данных Тип char Одиночные символы текстов Примеры: ‘a’, ‘!’,

Концепция типа данных

Тип char
Одиночные символы текстов
Примеры: ‘a’, ‘!’, ‘5’
Машинное представление: формат

ASCII
Множество значений определяется кодовой таблицей и возможностями клавиатуры
Операции: +, =, <, и т.д.
Слайд 17

Концепция типа данных Тип boolean Два логических значения false и true.

Концепция типа данных

Тип boolean
Два логических значения false и true. Причем, falseМашинное

представление ─ нулевое и единичное значение бита: false кодируется 0, true ─ 1
Операции: ¬, ∨, ∧, =, < и т.д.
Типы данных, встроенные в язык программирования высокого уровня, являются базой для конструирования производных структур
Поэтому для понимания организации производных структур
на логическом и физическом уровнях важно иметь четкое представление об организации базовых типов данных
Слайд 18

Основы организации данных на физическом уровне Оперативная память - носитель информации,

Основы организации данных на физическом уровне

Оперативная память - носитель информации, обрабатываемой

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

Основы организации данных на физическом уровне Доступ к хранимой информации осуществляется

Основы организации данных на физическом уровне
Доступ к хранимой информации осуществляется побайтно
Оперативная

память - конечная последовательность байт
Физический адрес ячейки памяти (или просто адрес) - номер байта в этой последовательности
Физический адрес используется для получения доступа к конкретной ячейке
Байт - минимально адресуемая ячейка памяти
Байт, слово, двойное слово - типы ячеек памяти
Слайд 20

Типы ячеек памяти Байт - восемь последовательно расположенных битов, пронумерованных от

Типы ячеек памяти
Байт - восемь последовательно расположенных битов, пронумерованных от 7

до 0, при этом бит 0 является самым младшим значащим битом

Количество бит составляющих ячейку памяти называется ее разрядностью

Слайд 21

Типы ячеек памяти Слово - последовательность из двух байт, имеющих последовательные

Типы ячеек памяти
Слово - последовательность из двух байт, имеющих последовательные адреса
Размер

слова – 16 бит; биты в слове нумеруются от 15 до 0
Байт, содержащий нулевой бит, называется младшим байтом, а байт, содержащий 15-й бит, – старшим байтом
Адресом слова считается адрес его младшего байта
Адрес старшего байта может быть использован для доступа к старшей половине слова
Слайд 22

Типы ячеек памяти Двойное слово - последовательность из четырех байт (32

Типы ячеек памяти
Двойное слово - последовательность из четырех байт (32 бита),

расположенных по последовательным адресам
Нумерация бит производится от 31 до 0
Слово, содержащее нулевой бит, называется младшим словом, а слово, содержащее 31-й бит, старшим словом
Младшее слово хранится по меньшему адресу
Адресом двойного слова считается адрес его младшего слова
Адрес старшего слова может быть использован для доступа
к старшей половине двойного слова
Слайд 23

Логическая интерпретация типов данных С точки зрения логической интерпретации выделяют следующие

Логическая интерпретация типов данных
С точки зрения логической интерпретации выделяют следующие типы

данных на физическом уровне:
целые числа без знака
целые числа со знаком
вещественные числа различной точности
указатель
цепочка байт
символ
строка
Слайд 24

Логическая интерпретация типов данных Целые числа без знака - двоичное значение

Логическая интерпретация типов данных
Целые числа без знака - двоичное значение без

знака, размером 8, 16 или 32 бита
Основой представления является запись целого без знакового числа в двоичной системе счисления, где каждый бит соответствует двоичной цифре
Числовой диапазон для этого типа следующий:
Слайд 25

Логическая интерпретация типов данных Целые числа со знаком - двоичное значение

Логическая интерпретация типов данных
Целые числа со знаком - двоичное значение со

знаком, размером 8, 16 или 32 бита
Знак в этом двоичном числе содержится в 7, 15 или 31-м бите соответственно
Ноль в этих битах в операндах соответствует положительному числу, а единица – отрицательному
Целые числа со знаком представляются в дополнительном коде
Слайд 26

Логическая интерпретация типов данных Дополнительный код числа - фиксированное количество разрядов

Логическая интерпретация типов данных
Дополнительный код числа -
фиксированное количество разрядов (n),

образуется путем сложения соответствующего числа с числом 2n с последующим взятием остатка от деления на 2n
В этом случае результат операции называется дополнением исходного числа до 2n
Слайд 27

Логическая интерпретация типов данных Дополнительный код числа Рассмотрим пример представления целых

Логическая интерпретация типов данных
Дополнительный код числа
Рассмотрим пример представления целых чисел

со знаком в дополнительном коде
Пусть разрядность чисел составляет 8 бит. Число до которого будет строится дополнение есть 28 =256. Положительное число 3 в дополнительном коде есть
(256+3) mod 256 = 3 = 000000112.
Отрицательное число –3 в дополнительном коде есть
(256–3) mod 256 = 253 = 111111012.
Здесь и далее символ mod есть операция взятия остатка
от деления
Слайд 28

Логическая интерпретация типов данных Правило представлений чисел в дополнительном коде если

Логическая интерпретация типов данных
Правило представлений чисел в дополнительном коде
если число положительное,

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

Логическая интерпретация типов данных Правило представлений чисел в дополнительном коде Модуль

Логическая интерпретация типов данных
Правило представлений чисел в дополнительном коде
Модуль числа –3

в двоичном виде из 8 цифр есть 000000112.
После инвертирования получим 111111002.
После прибавления единицы :  111111012, что соответствует представлению числа –3 в дополнительном коде
(см. предыдущий пример)
Слайд 30

Логическая интерпретация типов данных Целые числа со знаком Числовые диапазоны для представления целых чисел со знаком:

Логическая интерпретация типов данных
Целые числа со знаком
Числовые диапазоны для представления

целых чисел со знаком:
Слайд 31

Логическая интерпретация типов данных Вещественные числа – на физическом уровне представляются

Логическая интерпретация типов данных
Вещественные числа –
на физическом уровне представляются в

формате с плавающей точкой
кодирование чисел в виде трех составляющих: знака, мантиссы и порядка
В соответствии со стандартом IEEE 754 (Standard Floating Point Representations) существуют три формата: 32-битный, 64-битный и 80-битнй форматы представления чисел с плавающей точкой
Слайд 32

Логическая интерпретация типов данных Вещественные числа – 32-битный формат называется форматом

Логическая интерпретация типов данных
Вещественные числа –
32-битный формат называется форматом с

одинарной точностью
Вещественные числа в этом формате занимают 4 байта, из которых старший бит кодирует знак числа, следующие за ним 8 бит – порядок числа и, наконец оставшиеся 23 бита – мантиссу
Слайд 33

Логическая интерпретация типов данных Вещественные числа – 32-битный формат называется форматом

Логическая интерпретация типов данных
Вещественные числа –
32-битный формат называется форматом с

одинарной точностью
Формула для вычисления значения числа для этого представления

Символ Inf - бесконечность
Символ NaN – нечисловое значение

Диапазон от 1.5·10-45 до 3.4·10+38

Слайд 34

Логическая интерпретация типов данных Вещественные числа – 64-битный формат называется форматом

Логическая интерпретация типов данных
Вещественные числа –
64-битный формат называется форматом с

двойной точностью
Вещественные числа в этом формате занимаю 8 байт, из которых старший бит кодирует знак числа, следующие за ним 11 бит – порядок числа и, наконец оставшиеся 52 бита – мантиссу
Слайд 35

Логическая интерпретация типов данных Вещественные числа – 64-битный формат называется форматом

Логическая интерпретация типов данных
Вещественные числа –
64-битный формат называется форматом с

двойной точностью
Формула для вычисления значения числа для этого представления

Символ Inf - бесконечность
Символ NaN – нечисловое значение

Диапазон от 5.0·10-324 до 1.7·10+308

Слайд 36

Логическая интерпретация типов данных Вещественные числа – 80-битный формат называется расширенным

Логическая интерпретация типов данных
Вещественные числа –
80-битный формат называется расширенным форматом

с двойной точностью
Вещественные числа в этом формате занимаю 10 байт, из которых старший бит кодирует знак числа, следующие за ним 15 бит – порядок числа и, наконец оставшиеся 63 бита – мантиссу
Слайд 37

Логическая интерпретация типов данных Вещественные числа – 80-битный формат называется расширенным

Логическая интерпретация типов данных
Вещественные числа –
80-битный формат называется расширенным форматом

с двойной точностью
Формула для вычисления значения числа для этого представления

Символ Inf - бесконечность
Символ NaN – нечисловое значение

Диапазон от 3.4·10-4932 до 1.1·10+4932

Слайд 38

Логическая интерпретация типов данных Указатель – целочисленное значение, содержащее адрес в

Логическая интерпретация типов данных
Указатель –
целочисленное значение, содержащее адрес в оперативной

памяти
Цепочка –
некоторый непрерывный набор байтов, или слов максимальной длиной до 64 Кбайт
Символ –
байт, в который записывается код символа – целое от 0 до 255. В ЭВМ используется система кодировки ASCII (American Standard Code for Information Interchange)
Слайд 39

Классификация базовых типов и структур данных Несмотря на многолетнее использование типов

Классификация базовых типов и структур данных

Несмотря на многолетнее использование типов данных

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

КАТЕГОРИИ ТИПОВ ДАННЫХ:
встроенные типы данных
уточняемый тип данных
перечисляемые типы данных
конструируемые типы (составные)
указательные типы
определяемый пользователем тип данных

Слайд 40

Классификация базовых типов и структур данных встроенные типы данных - типы,

Классификация базовых типов и структур данных
встроенные типы данных - типы, предопределенные

в языке программирования, операции над значениями которых напрямую поддерживаются командами компьютеров
В современных компьютерах к таким "машинным" типам относятся:
целые числа разного размера (от одного до восьми байт)
булевские значения (поддерживаемые обычно за счет наличия признаков условной передачи управления)
числа с плавающей точкой одинарной и двойной точности (обычно четыре и восемь байт соответственно)
Слайд 41

Классификация базовых типов и структур данных встроенные типы данных Тип CHARACTER

Классификация базовых типов и структур данных

встроенные типы данных
Тип CHARACTER (или CHAR)

в разных языках – это:
набор печатных символов из алфавита, зафиксированного в описании языка (для большинства языков англоязычного происхождения этот алфавит соответствует кодовому набору ASCII) ;
для значений типа CHAR определены только операции сравнения в соответствии с принятым алфавитом.
Например, при использовании ASCII выполняются соотношения
'0' < '1' < ...< '9' < 'A' < 'B' < ...< 'Z' < 'a' < 'b' < ...< 'z';
если '0' < x < '9', то значение х – цифра;
если 'A' < x < 'Z', то значение x – прописная буква;
если 'a' < x < 'z', то значение x – строчная буква и т.д.
Арифметические операции над символьными значениями не допускаются

Языки линии Паскаль

Слайд 42

Классификация базовых типов и структур данных встроенные типы данных Тип CHARACTER

Классификация базовых типов и структур данных

встроенные типы данных
Тип CHARACTER (или CHAR)

в разных языках – это:
2) произвольная комбинация нулей и единиц, размещаемых в одном байте
константами типа CHAR по-прежнему могут быть печатные символы из принятого в языке алфавита, но возможно использование и числовых констант, задающих желаемое содержимое байта
В этом случае, как правило, над значениями типа CHAR возможно выполнение не только операций сравнения, но и операций целочисленной арифметики

Языки линии Си

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

Слайд 43

Классификация базовых типов и структур данных встроенные типы данных Тип BOOLEAN

Классификация базовых типов и структур данных

встроенные типы данных
Тип BOOLEAN (или BOOL)
Содержит

два значения – TRUE (истина) и FALSE (ложь)
Для всех типов данных, для которых определены операции сравнения, определены также и правила, по которым эти операции сравнения вырабатывают булевские значения
Над булевскими значениями возможны операции :
конъюнкции (&& или AND)
дизъюнкции (|| или OR)
отрицания (~ или NOT)
Слайд 44

Классификация базовых типов и структур данных встроенные типы данных Тип BOOLEAN

Классификация базовых типов и структур данных

встроенные типы данных
Тип BOOLEAN (или BOOL)
Над

булевскими значениями возможны операции :
конъюнкции (&& или AND)
дизъюнкции (|| или OR)
отрицания (~ или NOT)

Таблицы истинности

Слайд 45

Классификация базовых типов и структур данных встроенные типы данных Тип BOOLEAN

Классификация базовых типов и структур данных

встроенные типы данных
Тип BOOLEAN (или BOOL)
В

языках линии Си прямая поддержка булевского типа данных отсутствует, но имеется логическая интерпретация значений целых типов
Значением операции сравнения может быть "0" (FALSE) или "1" (TRUE)
Значение целого типа "0" интерпретируется как FALSE, а значения, отличные от нуля, как TRUE
В остальном все работает как в случае наличия явной поддержки булевского типа
Слайд 46

Классификация базовых типов и структур данных встроенные типы данных Тип целых

Классификация базовых типов и структур данных

встроенные типы данных
Тип целых чисел
С

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

Диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать 1, 2 или 4 байта

Слайд 47

Классификация базовых типов и структур данных встроенные типы данных Тип чисел

Классификация базовых типов и структур данных

встроенные типы данных
Тип чисел с плавающей

точкой
Базовое название REAL или FLOAT
Значение вещественных типов определяет число лишь с некоторой конечной точностью, зависящей от внутреннего формата вещественного числа
Слайд 48

Классификация базовых типов и структур данных встроенные типы данных Операции над

Классификация базовых типов и структур данных

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

типов
Четыре основных операции:
создание,
уничтожение,
выбор,
обновление

Арифметические операции:
сложение,
вычитание,
умножение,
деление

Операции сравнения: >, <, ≥, ≤, =

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

Слайд 49

Структура типов данных в языке Паскаль

Структура типов данных в языке Паскаль