Учебно-методический комплекс дисциплины для обучающегося «Языки программирования» для специальности 5В010900 Математика



бет22/142
Дата03.01.2022
өлшемі1.33 Mb.
#450516
түріУчебно-методический комплекс
1   ...   18   19   20   21   22   23   24   25   ...   142
УМКДО -ЯзыкиПрограммирования

Тип данных

Количество

Диапазон

байтов

битов

shortint

byte


integer

word


longint

1

1

2



2

4


8

8

16



16

32


-128..127

0..255


-32768..32767

0..65535


-2147483648..2147483647

-27..27-1

0..28-1

-215..215-1

0..216-1

-231..231-1


  1. Перечисляемые типы данных задаются в разделе type явным перечислением их элементов. Например:

  2. type week =(sun,mon,tue,wed,thu,fri,sat)

0 1 2 3 4 5 6

Напомним, что для этого типа данных:

inc(sat) = sun, dec(sun) = sat.


  1. Интервальные типы данных задаются только границами своего диапазона. Например:

  2. type month = 1..12;

budni = mon..fri;

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

type valid_for_identifiers = 'a'..'z','A'..'Z','_','0..9';

Этот тип состоит из объединения нескольких интервалов, причем в данном случае изменен порядок латинских букв: если в стандартном типе char 'A' < 'a', то здесь, наоборот, 'a' < 'A'. Для величин этого типа выполняются следующие равенства:

inc('z')='A'; dec('0')='_', pred('a')='9'; ord('b')= 2.



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

Напомним, что эти типы данных являются арифметическими, но не порядковыми.



Тип

Количество байтов

Диапазон (абсолютной величины)

single

real


double

extended


comp

4

6

8



10

8


1.5*10-45..3.4*1038

2.9*10-39..1.7*1038

5.0*10-324..1.7*10308

3.4*10-4932..1.1*104932

-263+1..263-1



Операции и выражения

Арифметические операции
Как мы уже упоминали, для каждого типа данных определены действия, применимые к его значениям. Например, если переменная относится к порядковому типу данных, то она может фигурировать в качестве аргумента стандартных функций ord(), pred() и succ() (см. п. "Совместимость типов данных" ниже). А к вещественным типам эти функции применить невозможно.

Итак, поговорим теперь об операциях - стандартных действиях, разрешенных для переменных того или иного базового типа данных. Основу будут составлять арифметические операции, но, конечно же, мы не забудем и о логическом типе данных (операции, определенные для значений символьного типа, будут подробно рассмотрены в лекции 5).



Замечание: Все перечисленные ниже операции (за исключением унарных '-' и not) требуют двух операндов.

  1. Логические операции (and, or, not, xor) применимы только к значениям типа boolean. Их результатом также служат величины типа boolean. Приведем таблицы значений для этих операций:

    not

    and

    true false or

    true false xor

    true false

    true

    false


    false true

    true false



    true false true

    false false false



    true true true

    true false false



    false true

    true false



  2. Операции сравнения (=, <>, >, <, <=, >=) применимы ко всем базовым типам. Их результатами также являются значения типа boolean.

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

a div b - деление а на b нацело (не нужно, наверное, напоминать, что деление на 0 запрещено, поэтому в таких случаях операция выдает ошибку). Результат будет принадлежать к типу данных, общему для тех типов, к которым принадлежат операнды. Например, (shortint div byte = integer). Пояснить это можно так: integer - это минимальный тип, подмножествами которого являются одновременно и byte, и shortint.

a mod b - взятие остатка при делении а на b нацело. Тип результата, как и в предыдущем случае, определяется типами операндов, а 0 является запрещенным значением для b. В отличие от математической операции mod, результатом которой всегда является неотрицательное число, знак результата "программистской" операции mod определяется знаком ее первого операнда. Таким образом, если в математике (-2 mod 5)=3, то у нас (-2 mod 5)= -2.

a shl k - сдвиг значения а на k битов влево (это эквивалентно умножению значения переменной а на 2k). Результат операции будет иметь тот же тип, что и первый ее операнд (а).

a shr k - сдвиг значения а на k битов вправо (это эквивалентно делению значения переменной а на 2k нацело). Результат операции будет иметь тот же тип, что и первый ее операнд (а).

and,or,not,xor - операции двоичной арифметики, работающие с битами двоичного представления целых чисел, по тем же правилам, что и соответствующие им логические операции.

  1. Операции общей арифметики (+, -, *, /) применимы ко всем арифметическим типам. Их результат принадлежит к типу данных, общему для обоих операндов (исключение составляет только операция дробного деления /, результат которой всегда относится к вещественному типу данных).


Другие операции

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

#, in, +, *, [] : см. лекцию 5

@, ^ : см. лекцию 10





Достарыңызбен бөлісу:
1   ...   18   19   20   21   22   23   24   25   ...   142




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет