123.ppt
- Количество слайдов: 26
Типы данных Язык программирования Turbo Pascal Преподаватель Колледжа МЭСИ: Юлина А. Н.
Содержание презентации: n Тип. Классификация типов n Стандартные типы ü Целочисленные типы данных ü Вещественные типы данных ü Символьные и логические типы данных n Строки n Порядковые типы
Тип. Классификация типов n Всю информацию, которую обрабатывает компьютер, можно объеденить одним понятием данные. На уровне аппаратных средств и машинных кодов данные выглядят, как последовательность двоичных чисел (битов). Благодаря разработанной системе типов данных в языках высокого уровня можно работать с данными, представленными в более абстрактной форме, не вникая в детали этого представления.
Тип. Классификация типов n Тип данных определяет множество значений, которые может принимать переменная величина, и операции, которые можно в этом множестве выполнять. n Каждая переменная, используемая в программе, относится к одному и только к одному определенному типу данных. n Типы данных в Паскале могут быть очень сложными, но каждый из них строится, в конце концов, из неструктурированных, простых типов.
Тип. Классификация типов n В Паскале можно создавать новые типы данных в форме структурированных типов или типов указателей. n Автор: Н. Вирт; «Алгоритмы + структуры данных = программы» /перевод с англ. Л. Ю. Иоффе под редакцией Д. Б. Подшивалова. – М. , «Мир» , 1985 г. n Структура и выбор алгоритма существенным образом зависит от структуры данных.
Структура типов данных Типы данных Простые типы Типы указателей Структурированные типы
Структура простых типов данных Простые типы данных Действительный Перечисляемые типы данных Логический (Boolean) Порядковые типы данных Зарезервированные порядковые типы данных Целый (Integer) Ограниченные типы данных Символьный (Char)
Классификация предопределенных типов данных Группа Подгруппа Простой Порядковый Название Идентификатор Короткий целый Short. Int Байтовый Byte Слово Word Целый Integer Длинный целый Символьный Long. Int Булевский Boolean Char
Классификация предопределенных типов данных Группа Подгруппа Простой Вещественн ый Название Идентификатор Вещественный Real С одинарной точностью Single С двойной точностью С повышенной точностью Сложный Double Extended Comp
Классификация предопределенных типов данных Группа Название Строковый Структурный Идентификатор String Массив Array Множество Set Файл File Запись Ссылочный Процедурный Pointer Процедура Функция Объектный Record Procedure Function Object
Порядковые типы языка Паскаль Иденти Допустимые значения фикатор Short. Int -128. . . 127 Формат 1 байт со знаком Integer -32768. . . 32767 2 байта со знаком Long. Int -2147483648. . . 2147483647 4 байта со знаком Byte 0. . . 255 1 байт без знака Word 0. . . 65535 2 байта без знака Boolean false, true Логический тип (1 байт) Char Символы из расширенного Символьный (1 набора символов кода байт) ASCII
Зарезервированные константы n Max. Int = 32767 n Max. Long. Int = 2147483647 В программе: Writeln(‘Max. Int=’, Max. Int); Writeln(‘Max. Long. Int=’, Max. Long. Int);
Простейший тип - целые числа n Эффективное расходование ОП n Повышение быстродействия n Введение операций деления нацело с остатком If M mod N =0 then writeln(‘число М кратно числу N’); If M mod 2 = 0 then writeln(‘Число ’, М, ‘ четное’);
Задачи с целыми числами n Задачи, данные в которых только целочисленные: количество акций, сотрудников, деталей, транспортных средств и т. д. n Целые числа используются для обозначения даты и времени n Для нумерации различных объектов: элементы массивов, записи в БД, машинные адреса.
Беззнаковый целый тип K-1 0 … 0 2 0 1 0 0 0 K разрядов Нижняя граница диапазона K-1 1 … 1 2 1 1 1 0 1 K разрядов Верхняя граница диапазона 2 к-1 k=8 максимальное число 28 -1=255 (тип byte) K=16 максимальное число 216 -1=65535 (тип word)
Целые числа со знаком n Самый левый бит отводится под знак числа: 0 – число положительное; n 1 – число отрицательное n Зн ак чи сл а 7 0 … 1 2 1 1 1 0 1 8 разрядов Нижняя граница диапазона положительных чисел 0 Верхняя граница диапазона положительных чисел 27 -1=128 -1=127
Представление в памяти ЭВМ n Целые числа хранятся в памяти компьютера в формате с фиксированной запятой n Положительные числа всегда представляются с помощью прямого кода n Отрицательные числа – с помощью дополнительного кода n Дополнительный код положительного числа всегда равен прямому коду этого числа
Алгоритм получения дополнительного кода (в двоичной системе счисления): 1. Модуль числа представить прямым кодом в k двоичных разрядах. 2. Значения всех битов инвертировать (изменить 1 на 0, а 0 на 1). Получим обратный код числа. 3. К полученному обратному коду прибавить единицу.
Пример • Получить 8 -ми разрядный дополнительный код числа -52. 1. Прямой код 52 0 26 0 13 1 6 0 3 1 1 1 -52 . 0 0 1 1 0 0 прямой код модуля в восьми разрядах
Продолжение примера 2. Инвертируем прямой код 1 1 0 0 1 1 и получаем обратный код 3. Прибавляем 1 к обратному коду (к младшему разряду): 11001011 1 1 0 0 + 1 1100 и получаем дополнительный код.
Зачем нужен дополнительный код? n Для упрощения выполнения арифметических операций – алгоритм вычитания сводится к поразрядному сложению. n Дополнительный код позволяет заменить вычитание, умножение, деление – сложением. Это упрощает конструкцию микропроцессора.
Диапазон изменения значений для знакового типа 1 0 0 0 0 K=8; дополнительный код -128; -2 k-1=-27=-128 • Диапазон [-2 k-1, 2 k-1 -1] не симметричен относительно нуля, что следует учитывать при программировании. • Число 128 – его прямой и дополнительные коды совпадают. • Дополнительный код (-0) совпадает с обычным нулем.
Компьютерная арифметика n Целочисленная арифметика в ограниченном числе разрядов несколько отличается от обычной. Левые цифры результата, выходящие за старший разряд, игнорируются. Т. о. , при сложении двух положительных чисел может получиться отрицательный результат, если в старшем (левом) разряде будет единица.
Пример n 100+51 в 8 -ми разрядах, знаковый тип данных. 100=011001002 51=00112 +011001002 00112 100101112 n Т. к. все отрицательный числа представлены в дополнительном коде, то, чтобы получить десятичное представление этого числа: n n n Вычтем единицу = 10010110 Инвертируем = 01101000 Переведем в десятичную с. сч. и получим 105. n Таким образом 100+51=-105.
Вещественные типы языка Паскаль Иденти фикатор Real Диапазон -1, 7*1038. . -2, 9*10 -39. . 1, 7*1038 Singl -3, 4*1038. . -1, 5*10 -45. . 3, 4*1038 Double -1, 7*10308. . -5, 0*10 -324. . 1, 7*10308 Extended -1, 1*104932. . -1, 9*10 -4951. . 1, 1*104932 Comp -9, 2*1018. . 9, 2*1018 (-263+1. . 263+1) Точность Формат 11 -12 знаков 6 байт 7 -8 знаков 4 байта 15 -16 знаков 8 байт 19 -20 знаков 10 байт 19 -20 знаков 8 байт
Домашнее задание 1. От чего зависят границы диапазона целых чисел, представленных в компьютере с фиксированной запятой? 2. Как будут представлены в 8 -разрядном знаковом типе числа -1, -10, -120? 3. Получить дополнительный код числа 117 для 8 -ми и 16 -ти разрядной ячейки. 4. Получить десятичное значение числа по его дополнительному коду: 10010111.
123.ppt