SlideShare a Scribd company logo
Классификация типов данных

       Структуры данных

                                        Логический
Основные типы     Простые типы          Литерный (символьный)
   данных            данных             Целый
                                        Перечисляемый
                                        Интервальный
                                        Вещественный
                Структурированные       Массивы
                типы данных             Структуры, записи
                                        Объединение
                                        Множество
                                        Последовательность
                  Ссылочный тип
                     данных


                Абстрактные типы
                     данных
                                                                1
Структуры данных




                   2
Простые типы данных

Структуры данных




                                         3
Простые типы данных

        Структуры данных

       Логический тип данных


     Значениями логического типа BOOLEAN может быть одна из
предварительно объявленных констант false (ложь) или true (истина).
     Данные логического типа занимают один байт памяти. При этом значению
false соответствует нулевое значение байта, а значению true соответствует
любое ненулевое значение байта. Например: false всегда в машинном
представлении: 00000000; true может выглядеть таким образом: 00000001 или
00010001 или 10000000.
     Однако следует иметь в виду, что при выполнении операции
присваивания переменной логического типа значения true, в соответствующее
поле памяти всегда записывается код 00000001.
     Над логическими типами возможны операции булевой алгебры - НЕ (not),
ИЛИ (or), И (and), исключающее ИЛИ (xor) - последняя реализована для
логического типа не во всех языках. В этих операциях операнды логического
типа рассматриваются как единое целое - вне зависимости от битового состава
их внутреннего представления.
                                                                              4
Простые типы данных

           Структуры данных

       Логический тип данных

  Dboolean= {false,true}
  and, or, xor: Dboolean X Dboolean     Dboolean
  not: Dboolean    Dboolean
  Может являться результатом выполнения булевской функции:
  odd(x), x – integer; x – нечетное – true; x – четное – false
  eof(f)
   Интересно, что в языке C данные логического типа отсутствуют, их
функции выполняют данные числовых типов, чаще всего - типа int. В
логических выражениях операнд любого числового типа, имеющий нулевое
значение, рассматривается как "ложь", а ненулевое - как "истина".
Результатами логического типа являются целые числа 0 (ложь) или 1
(истина).                                                            5
Простые типы данных

        Структуры данных

        Литерный (символьный) тип данных

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


                                                                             6
Простые типы данных

        Структуры данных

        Литерный (символьный) тип данных

    ASCII, однако, не является единственно возможным множеством. Другим
достаточно широко используемым множеством является код EBCDIC
(Extended Binary Coded Decimal Interchange Code - расширенный двоично-
кодированный десятичный код обмена), применяемый в системах IBM
средней и большой мощности. В EBCDIC код символа также занимает один
байт, но с иной кодировкой, чем в ASCII.
    И ASCII, и EBCDIC включают в себя буквенные символы только
латинского алфавита. Символы национальных алфавитов занимают
"свободные места" в таблицах кодов и, таким образом, одна таблица может
поддерживать только один национальный алфавит. Этот недостаток
преодолен во множестве UNICODE, которое находит все большее
распространение прежде всего в UNIX-ориентированных системах. В
UNICODE каждый символ кодируется двумя байтами, что обеспечивает более
64 тыс. возможных кодовых комбинаций и дает возможность иметь единую
таблицу кодов, включающую в себя все национальные алфавиты.
                                                                          7
Простые типы данных

         Структуры данных

         Литерный (символьный) тип данных

   Специфические операции над символьными типами - только операции
сравнения. При сравнении коды символов рассматриваются как целые числа
без знака. Кодовые таблицы строятся так, что результаты сравнения
подчиняются лексикографическим правилам: символы, занимающие в
алфавите места с меньшими номерами, имеют меньшие коды, чем символы,
занимающие места с большими номерами.
   Функции преобразования: ord : Dchar -> Dinteger; chr: Dinteger - >Dchar
   Справедливы соотношения: ord(chr(i)) = i (?); chr(ord(c)) = c
   В силу перечисляемости типа:
   pred (c) = chr (ord(c) – 1);
   succ (c) = chr (ord(c) + 1).


                                                                             8
Простые типы данных

       Структуры данных

      Целый тип данных

   Представление в памяти.
Для представления чисел со знаком в ряде компьютеров был
использован метод, называемый методом знака и значения. Обычно для
знака отводится первый (или самый левый) бит двоичного числа затем
следует запись самого числа.
   Отметим, что по соглашению 0 используется для представления знака
плюс и 1 - для минуса. Такое представление удобно для программистов
т.к. легко воспринимается, но не является экономичным.


               Число Знаковый бит Величина

               +10    0             0001010
               -15    1             0001111
                                                                       9
Простые типы данных

         Структуры данных

        Целый тип данных
   При разработке программ на этапе выбора типа данных важно знать
диапазон целых величин, которые могут храниться в n разрядах памяти.
При n-битовом хранении числа в дополнительном коде первый бит
выражает      знак    целого   числа.  Поэтому    положительные       числа
представляются в диапазоне от 0 до 1*2^0 + 1*2^1 +...+ 1*2^(n-2) или от 0 до
2^(n-1) - 1. Все другие конфигурации битов выражают отрицательные числа
в диапазоне от -2^(n-1) до -1. Таким образом, можно сказать, что число N
может храниться в n разрядах памяти, если его значение находится в
диапазоне:
   -2^(n-1) <= N <= 2^(n-1) - 1.




                                                                           10
Простые типы данных

         Структуры данных

         Целый тип данных
   Иными словами, диапазон возможных значений целых типов зависит от
их внутреннего представления, которое может занимать 1, 2 или 4 байта. В
таблице приводится перечень целых типов (Pascal), размер памяти для их
внутреннего представления в битах, диапазон возможных значений.

      Тип       Диапазон значений        Машинное представление
      shortint -128..127                 8 бит, со знаком
      integer   -32768..32767            16 бит, со знаком
      longint   -2147483648..2147483647 32 бита, со знаком
      byte      0..255                   8 бит, без знака
      word      0..65535                 16 бит, без знака
      comp      -2^63+1..2^63-1          64 бита, со знаком
                                                                           11
Простые типы данных

         Структуры данных

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

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

          Структуры данных

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

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




                                                                         13
Простые типы данных

           Структуры данных

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

  Число бит для хранения мантиссы и порядка зависит от типа
вещественного числа. Суммарное количество байтов, диапазоны
допустимых значений чисел вещественных типов, а также количество
значащих цифр после запятой в представлении чисел приведены в
таблице.
 Тип        Диапазон значений           Значащие цифры Размер в байтах
 real       2.9*10^(-39)..1.7*10^38     11-12            6
 single     1.4*10^(-45)..3.4*10^38     7-8              4
 double     4.9*10^(-324)..1.8*10^308   15-16            8
 extended 3.1*10^(-4944)..1.2*10^4932 19-20              10


                                                                         14
Простые типы данных

              Структуры данных

             Вещественный тип данных
Стандартный формат IEEE (Institute of Electrical and Electronics Engineers,Inc.)
                     7 бит
       1бит
       знак       экспонента        Мантисса 3 байта                  float




      1бит         11 бит
      знак       экспонента     Мантисса 52 бита                  double




                                                                                   15
Простые типы данных

      Структуры данных

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

   Операции для данных вещественного типа, строго не эквивалентны
операциям над вещественными числами

  (x + y) + z = x + (y + z)
  Запись

  If x = y then Z = 1 else z = 2
  Строго будет

  If abs (x – y) < epsilon then z = 1 else z = 2



                                                                   16
Простые типы данных

        Структуры данных

      Перечисляемый тип данных

  Перечислимый тип представляет собой упорядоченный тип данных,
определяемый программистом, т.е. программист перечисляет все значения,
которые может принимать переменная этого типа. Значения являются
неповторяющимися в пределах программы идентификаторами, количество
которых не может быть больше 256, например,
  type color=(red,blue,green);
  work_day=(mo,tu,we,th,fr);
  winter_day=(december,january,february);




                                                                     17
Простые типы данных

        Структуры данных

      Перечисляемый тип данных

   Для переменной перечислимого типа выделяется один байт, в который
записывается порядковый номер присваиваемого значения. Порядковый
номер определяется из описанного типа, причем нумерация начинается с 0.
Имена из списка перечислимого типа являются константами, например,
   var B,С:color;
   begin B:=bluе; (* B=1 *)
   C:=green; (* С=2 *)
   Write(ord(B):4,ord(C):4); end.
   После выполнения данного фрагмента программы на экран будут
выданы цифры 1 и 2. Содержимое памяти для переменных B И C при этом
следующее:
   В - 00000001; С - 00000010.


                                                                      18
Простые типы данных

     Структуры данных

    Перечисляемый тип данных



   Операции.
   На физическом уровне над переменными перечислимого типа
определены операции создания, уничтожения, выбора, обновления.
При этом выполняется определение порядкового номера
идентификатора по его значению и, наоборот, по номеру
идентификатора его значение.
   На логическом уровне переменные перечислимого типа могут
быть использованы только в выражениях булевского типа и в
операциях сравнения; при этом сравниваются порядковые номера
значений.


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

       Структуры данных

                                        Логический
Основные типы     Простые типы          Литерный (символьный)
   данных            данных             Целый
                                        Перечисляемый
                                        Интервальный
                                        Вещественный
                Структурированные       Массивы
                типы данных             Структуры, записи
                                        Объединение
                                        Множество
                                        Последовательность
                  Ссылочный тип
                     данных


                Абстрактные типы
                     данных
                                                                20
Простые типы данных

Структуры данных




                                         21

More Related Content

Viewers also liked

Shints &amp; Factory Profile April 2012
Shints &amp; Factory Profile April 2012Shints &amp; Factory Profile April 2012
Shints &amp; Factory Profile April 2012
victoriashin
 
24514675 2-internal-combustion-engine
24514675 2-internal-combustion-engine24514675 2-internal-combustion-engine
24514675 2-internal-combustion-enginePrakhar Srivastava
 
Begrüßung text
Begrüßung textBegrüßung text
Begrüßung textninadumina
 
Motion cs 3
Motion cs 3Motion cs 3
Motion cs 3
kairry
 
東京ソーシャルデザイン研究所3ドラフト
東京ソーシャルデザイン研究所3ドラフト東京ソーシャルデザイン研究所3ドラフト
東京ソーシャルデザイン研究所3ドラフトTakayuki Toda
 
東京ソーシャルデザイン研究所Ver4ドラフト
東京ソーシャルデザイン研究所Ver4ドラフト東京ソーシャルデザイン研究所Ver4ドラフト
東京ソーシャルデザイン研究所Ver4ドラフトTakayuki Toda
 
Populism History presentation
Populism History presentationPopulism History presentation
Populism History presentation
henryfeenie89
 
Yvies exhibition
Yvies exhibitionYvies exhibition
Yvies exhibitionBev Towns
 
大规模高维数据查询
大规模高维数据查询大规模高维数据查询
大规模高维数据查询peter_shen
 
content page analysis
content page analysiscontent page analysis
content page analysisabiivo
 
As tecnol..
As tecnol..As tecnol..
As tecnol..
SimoneMarcele
 
Lectura i escriptura p5reunió
Lectura i escriptura p5reunióLectura i escriptura p5reunió
Lectura i escriptura p5reunióeinf
 
Presentación1
Presentación1Presentación1
Presentación1dbh41iraia
 
Presentacion tac tectonic
Presentacion tac tectonicPresentacion tac tectonic
Presentacion tac tectonicjbasualdo
 

Viewers also liked (20)

Shints &amp; Factory Profile April 2012
Shints &amp; Factory Profile April 2012Shints &amp; Factory Profile April 2012
Shints &amp; Factory Profile April 2012
 
24514675 2-internal-combustion-engine
24514675 2-internal-combustion-engine24514675 2-internal-combustion-engine
24514675 2-internal-combustion-engine
 
Fisica Apolo4A
Fisica Apolo4AFisica Apolo4A
Fisica Apolo4A
 
Begrüßung text
Begrüßung textBegrüßung text
Begrüßung text
 
Motion cs 3
Motion cs 3Motion cs 3
Motion cs 3
 
東京ソーシャルデザイン研究所3ドラフト
東京ソーシャルデザイン研究所3ドラフト東京ソーシャルデザイン研究所3ドラフト
東京ソーシャルデザイン研究所3ドラフト
 
東京ソーシャルデザイン研究所Ver4ドラフト
東京ソーシャルデザイン研究所Ver4ドラフト東京ソーシャルデザイン研究所Ver4ドラフト
東京ソーシャルデザイン研究所Ver4ドラフト
 
Charges manifestaçoes
Charges manifestaçoesCharges manifestaçoes
Charges manifestaçoes
 
Populism History presentation
Populism History presentationPopulism History presentation
Populism History presentation
 
Yvies exhibition
Yvies exhibitionYvies exhibition
Yvies exhibition
 
Cidade limpa
Cidade limpaCidade limpa
Cidade limpa
 
大规模高维数据查询
大规模高维数据查询大规模高维数据查询
大规模高维数据查询
 
content page analysis
content page analysiscontent page analysis
content page analysis
 
As tecnol..
As tecnol..As tecnol..
As tecnol..
 
Zanahorias (2)
Zanahorias (2)Zanahorias (2)
Zanahorias (2)
 
Nehjul israar
Nehjul israarNehjul israar
Nehjul israar
 
Lectura i escriptura p5reunió
Lectura i escriptura p5reunióLectura i escriptura p5reunió
Lectura i escriptura p5reunió
 
Presentación1
Presentación1Presentación1
Presentación1
 
5.1
5.15.1
5.1
 
Presentacion tac tectonic
Presentacion tac tectonicPresentacion tac tectonic
Presentacion tac tectonic
 

Similar to презентация2

Типы данных
Типы данныхТипы данных
Типы данныхOlgaDask
 
лб № 1 кодирование
лб № 1 кодированиелб № 1 кодирование
лб № 1 кодирование
MKoryakina
 
кодирование инф.
кодирование инф.кодирование инф.
кодирование инф.Rushitech
 
Кодирование информации
Кодирование информацииКодирование информации
Кодирование информацииryabuha
 
Кодирование информации
Кодирование информацииКодирование информации
Кодирование информацииryabuha
 
форматы представления чисел
форматы представления чиселформаты представления чисел
форматы представления чиселzarechneva
 
Разработка статического анализатора кода для обнаружения ошибок переноса прог...
Разработка статического анализатора кода для обнаружения ошибок переноса прог...Разработка статического анализатора кода для обнаружения ошибок переноса прог...
Разработка статического анализатора кода для обнаружения ошибок переноса прог...
Tatyanazaxarova
 
Sem 27 02 09 4
Sem 27 02 09 4Sem 27 02 09 4
Sem 27 02 09 4Olga92
 
Представление информации в двоичной системе счисления.
  Представление информации в двоичной системе счисления.  Представление информации в двоичной системе счисления.
Представление информации в двоичной системе счисления.
lerok92
 
реляционные базы данных
реляционные базы данныхреляционные базы данных
реляционные базы данных
ishuk
 
представление текстовой информации
представление текстовой информациипредставление текстовой информации
представление текстовой информации
Елена Ключева
 
Chislovye tipy dannykh_i_ikh_ispolzovanie_v_vba
Chislovye tipy dannykh_i_ikh_ispolzovanie_v_vbaChislovye tipy dannykh_i_ikh_ispolzovanie_v_vba
Chislovye tipy dannykh_i_ikh_ispolzovanie_v_vba
greg1496
 
Кодирование текстовой информации 10 класс
Кодирование текстовой информации 10 классКодирование текстовой информации 10 класс
Кодирование текстовой информации 10 класс
Наталья Зиненко
 
Переменные
ПеременныеПеременные
Переменныеkvlar
 
Step cpp0201
Step cpp0201Step cpp0201
Step cpp0201
Evgenij Laktionov
 
Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)
Olga Maksimenkova
 
20 ловушек переноса Си++ - кода на 64-битную платформу
20 ловушек переноса Си++ - кода на 64-битную платформу20 ловушек переноса Си++ - кода на 64-битную платформу
20 ловушек переноса Си++ - кода на 64-битную платформу
Tatyanazaxarova
 
Технологии и специализированные инструменты разработки ПО серийных изделий в ...
Технологии и специализированные инструменты разработки ПО серийных изделий в ...Технологии и специализированные инструменты разработки ПО серийных изделий в ...
Технологии и специализированные инструменты разработки ПО серийных изделий в ...
Alexander Efremov
 

Similar to презентация2 (20)

Типы данных
Типы данныхТипы данных
Типы данных
 
лб № 1 кодирование
лб № 1 кодированиелб № 1 кодирование
лб № 1 кодирование
 
кодирование инф.
кодирование инф.кодирование инф.
кодирование инф.
 
Кодирование информации
Кодирование информацииКодирование информации
Кодирование информации
 
Кодирование информации
Кодирование информацииКодирование информации
Кодирование информации
 
форматы представления чисел
форматы представления чиселформаты представления чисел
форматы представления чисел
 
Разработка статического анализатора кода для обнаружения ошибок переноса прог...
Разработка статического анализатора кода для обнаружения ошибок переноса прог...Разработка статического анализатора кода для обнаружения ошибок переноса прог...
Разработка статического анализатора кода для обнаружения ошибок переноса прог...
 
Sem 27 02 09 4
Sem 27 02 09 4Sem 27 02 09 4
Sem 27 02 09 4
 
Представление информации в двоичной системе счисления.
  Представление информации в двоичной системе счисления.  Представление информации в двоичной системе счисления.
Представление информации в двоичной системе счисления.
 
реляционные базы данных
реляционные базы данныхреляционные базы данных
реляционные базы данных
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
представление текстовой информации
представление текстовой информациипредставление текстовой информации
представление текстовой информации
 
Chislovye tipy dannykh_i_ikh_ispolzovanie_v_vba
Chislovye tipy dannykh_i_ikh_ispolzovanie_v_vbaChislovye tipy dannykh_i_ikh_ispolzovanie_v_vba
Chislovye tipy dannykh_i_ikh_ispolzovanie_v_vba
 
Кодирование текстовой информации 10 класс
Кодирование текстовой информации 10 классКодирование текстовой информации 10 класс
Кодирование текстовой информации 10 класс
 
Переменные
ПеременныеПеременные
Переменные
 
Step cpp0201
Step cpp0201Step cpp0201
Step cpp0201
 
Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)
 
20 ловушек переноса Си++ - кода на 64-битную платформу
20 ловушек переноса Си++ - кода на 64-битную платформу20 ловушек переноса Си++ - кода на 64-битную платформу
20 ловушек переноса Си++ - кода на 64-битную платформу
 
Технологии и специализированные инструменты разработки ПО серийных изделий в ...
Технологии и специализированные инструменты разработки ПО серийных изделий в ...Технологии и специализированные инструменты разработки ПО серийных изделий в ...
Технологии и специализированные инструменты разработки ПО серийных изделий в ...
 

презентация2

  • 1. Классификация типов данных Структуры данных Логический Основные типы Простые типы Литерный (символьный) данных данных Целый Перечисляемый Интервальный Вещественный Структурированные Массивы типы данных Структуры, записи Объединение Множество Последовательность Ссылочный тип данных Абстрактные типы данных 1
  • 4. Простые типы данных Структуры данных Логический тип данных Значениями логического типа BOOLEAN может быть одна из предварительно объявленных констант false (ложь) или true (истина). Данные логического типа занимают один байт памяти. При этом значению false соответствует нулевое значение байта, а значению true соответствует любое ненулевое значение байта. Например: false всегда в машинном представлении: 00000000; true может выглядеть таким образом: 00000001 или 00010001 или 10000000. Однако следует иметь в виду, что при выполнении операции присваивания переменной логического типа значения true, в соответствующее поле памяти всегда записывается код 00000001. Над логическими типами возможны операции булевой алгебры - НЕ (not), ИЛИ (or), И (and), исключающее ИЛИ (xor) - последняя реализована для логического типа не во всех языках. В этих операциях операнды логического типа рассматриваются как единое целое - вне зависимости от битового состава их внутреннего представления. 4
  • 5. Простые типы данных Структуры данных Логический тип данных Dboolean= {false,true} and, or, xor: Dboolean X Dboolean Dboolean not: Dboolean Dboolean Может являться результатом выполнения булевской функции: odd(x), x – integer; x – нечетное – true; x – четное – false eof(f) Интересно, что в языке C данные логического типа отсутствуют, их функции выполняют данные числовых типов, чаще всего - типа int. В логических выражениях операнд любого числового типа, имеющий нулевое значение, рассматривается как "ложь", а ненулевое - как "истина". Результатами логического типа являются целые числа 0 (ложь) или 1 (истина). 5
  • 6. Простые типы данных Структуры данных Литерный (символьный) тип данных Значением символьного типа char являются символы из некоторого предопределенного множества. В большинстве современных персональных ЭВМ этим множеством является ASCII (American Standard Code for Information Intechange - американский стандартный код для обмена информацией). Это множество состоит из 256 разных символов, упорядоченных определенным образом и содержит символы заглавных и строчных букв, цифр и других символов, включая специальные управляющие символы. Допускается некоторые отклонения от стандарта ASCII, в частности, при наличии соответствующей системной поддержки это множество может содержать буквы русского алфавита. Порядковые номера (кодировку) можно узнать в соответствующих разделах технических описаний. Значение символьного типа char занимает в памяти 1 байт. Код от 0 до 255 в этом байте задает один из 256 возможных символов ASCII таблицы. 6
  • 7. Простые типы данных Структуры данных Литерный (символьный) тип данных ASCII, однако, не является единственно возможным множеством. Другим достаточно широко используемым множеством является код EBCDIC (Extended Binary Coded Decimal Interchange Code - расширенный двоично- кодированный десятичный код обмена), применяемый в системах IBM средней и большой мощности. В EBCDIC код символа также занимает один байт, но с иной кодировкой, чем в ASCII. И ASCII, и EBCDIC включают в себя буквенные символы только латинского алфавита. Символы национальных алфавитов занимают "свободные места" в таблицах кодов и, таким образом, одна таблица может поддерживать только один национальный алфавит. Этот недостаток преодолен во множестве UNICODE, которое находит все большее распространение прежде всего в UNIX-ориентированных системах. В UNICODE каждый символ кодируется двумя байтами, что обеспечивает более 64 тыс. возможных кодовых комбинаций и дает возможность иметь единую таблицу кодов, включающую в себя все национальные алфавиты. 7
  • 8. Простые типы данных Структуры данных Литерный (символьный) тип данных Специфические операции над символьными типами - только операции сравнения. При сравнении коды символов рассматриваются как целые числа без знака. Кодовые таблицы строятся так, что результаты сравнения подчиняются лексикографическим правилам: символы, занимающие в алфавите места с меньшими номерами, имеют меньшие коды, чем символы, занимающие места с большими номерами. Функции преобразования: ord : Dchar -> Dinteger; chr: Dinteger - >Dchar Справедливы соотношения: ord(chr(i)) = i (?); chr(ord(c)) = c В силу перечисляемости типа: pred (c) = chr (ord(c) – 1); succ (c) = chr (ord(c) + 1). 8
  • 9. Простые типы данных Структуры данных Целый тип данных Представление в памяти. Для представления чисел со знаком в ряде компьютеров был использован метод, называемый методом знака и значения. Обычно для знака отводится первый (или самый левый) бит двоичного числа затем следует запись самого числа. Отметим, что по соглашению 0 используется для представления знака плюс и 1 - для минуса. Такое представление удобно для программистов т.к. легко воспринимается, но не является экономичным. Число Знаковый бит Величина +10 0 0001010 -15 1 0001111 9
  • 10. Простые типы данных Структуры данных Целый тип данных При разработке программ на этапе выбора типа данных важно знать диапазон целых величин, которые могут храниться в n разрядах памяти. При n-битовом хранении числа в дополнительном коде первый бит выражает знак целого числа. Поэтому положительные числа представляются в диапазоне от 0 до 1*2^0 + 1*2^1 +...+ 1*2^(n-2) или от 0 до 2^(n-1) - 1. Все другие конфигурации битов выражают отрицательные числа в диапазоне от -2^(n-1) до -1. Таким образом, можно сказать, что число N может храниться в n разрядах памяти, если его значение находится в диапазоне: -2^(n-1) <= N <= 2^(n-1) - 1. 10
  • 11. Простые типы данных Структуры данных Целый тип данных Иными словами, диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать 1, 2 или 4 байта. В таблице приводится перечень целых типов (Pascal), размер памяти для их внутреннего представления в битах, диапазон возможных значений. Тип Диапазон значений Машинное представление shortint -128..127 8 бит, со знаком integer -32768..32767 16 бит, со знаком longint -2147483648..2147483647 32 бита, со знаком byte 0..255 8 бит, без знака word 0..65535 16 бит, без знака comp -2^63+1..2^63-1 64 бита, со знаком 11
  • 12. Простые типы данных Структуры данных Вещественный тип данных В отличии от порядковых типов (все целые, символьный, логический), значения которых всегда сопоставляются с рядом целых чисел и, следовательно, представляются в памяти машины абсолютно точно, значение вещественных типов определяет число лишь с некоторой конечной точностью, зависящей от внутреннего формата вещественного числа. В некоторых областях вычислений требуются очень большие или весьма малые действительные числа. Для получения большей точности применяют запись чисел с плавающей точкой. Запись числа в формате с плавающей точкой является весьма эффективным средством представления очень больших и весьма малых вещественных чисел при условии, что они содержат ограниченное число значащих цифр, и, следовательно, не все вещественные числа могут быть представлены в памяти. Обычно число используемых при вычислениях значащих цифр таково, что для большинства задач ошибки округления пренебрежимо малы. 12
  • 13. Простые типы данных Структуры данных Вещественный тип данных Формат для представления чисел с плавающей точкой содержит одно или два поля фиксированной длины для знаков. Количество позиций для значащих цифр различно в разных ЭВМ, но существует, тем не менее, общий формат. В соответствии с этой записью формат вещественного числа содержит в общем случае поля мантиссы, порядка и знаков мантиссы и порядка. Однако, чаще вместо порядка используется характеристика, получающаяся прибавлением к порядку такого смещения, чтобы характеристика была всегда положительный. 13
  • 14. Простые типы данных Структуры данных Вещественный тип данных Число бит для хранения мантиссы и порядка зависит от типа вещественного числа. Суммарное количество байтов, диапазоны допустимых значений чисел вещественных типов, а также количество значащих цифр после запятой в представлении чисел приведены в таблице. Тип Диапазон значений Значащие цифры Размер в байтах real 2.9*10^(-39)..1.7*10^38 11-12 6 single 1.4*10^(-45)..3.4*10^38 7-8 4 double 4.9*10^(-324)..1.8*10^308 15-16 8 extended 3.1*10^(-4944)..1.2*10^4932 19-20 10 14
  • 15. Простые типы данных Структуры данных Вещественный тип данных Стандартный формат IEEE (Institute of Electrical and Electronics Engineers,Inc.) 7 бит 1бит знак экспонента Мантисса 3 байта float 1бит 11 бит знак экспонента Мантисса 52 бита double 15
  • 16. Простые типы данных Структуры данных Вещественный тип данных Операции для данных вещественного типа, строго не эквивалентны операциям над вещественными числами (x + y) + z = x + (y + z) Запись If x = y then Z = 1 else z = 2 Строго будет If abs (x – y) < epsilon then z = 1 else z = 2 16
  • 17. Простые типы данных Структуры данных Перечисляемый тип данных Перечислимый тип представляет собой упорядоченный тип данных, определяемый программистом, т.е. программист перечисляет все значения, которые может принимать переменная этого типа. Значения являются неповторяющимися в пределах программы идентификаторами, количество которых не может быть больше 256, например, type color=(red,blue,green); work_day=(mo,tu,we,th,fr); winter_day=(december,january,february); 17
  • 18. Простые типы данных Структуры данных Перечисляемый тип данных Для переменной перечислимого типа выделяется один байт, в который записывается порядковый номер присваиваемого значения. Порядковый номер определяется из описанного типа, причем нумерация начинается с 0. Имена из списка перечислимого типа являются константами, например, var B,С:color; begin B:=bluе; (* B=1 *) C:=green; (* С=2 *) Write(ord(B):4,ord(C):4); end. После выполнения данного фрагмента программы на экран будут выданы цифры 1 и 2. Содержимое памяти для переменных B И C при этом следующее: В - 00000001; С - 00000010. 18
  • 19. Простые типы данных Структуры данных Перечисляемый тип данных Операции. На физическом уровне над переменными перечислимого типа определены операции создания, уничтожения, выбора, обновления. При этом выполняется определение порядкового номера идентификатора по его значению и, наоборот, по номеру идентификатора его значение. На логическом уровне переменные перечислимого типа могут быть использованы только в выражениях булевского типа и в операциях сравнения; при этом сравниваются порядковые номера значений. 19
  • 20. Классификация типов данных Структуры данных Логический Основные типы Простые типы Литерный (символьный) данных данных Целый Перечисляемый Интервальный Вещественный Структурированные Массивы типы данных Структуры, записи Объединение Множество Последовательность Ссылочный тип данных Абстрактные типы данных 20