Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы программирования.docx
Скачиваний:
7
Добавлен:
20.09.2019
Размер:
2.14 Mб
Скачать
  1. Простые типы данных, операции над ними. Сильная и слабая типизация.

Простые типы данных - не содержат внутри себя никаких других типов.

  1. Предопределенные – типы, имеющиеся (строенные) на большинстве выч. машин. Все, кроме вещественного, упорядочены.

Integer – некоторое подмножество целых чисел. Если для представления в машине используется n разрядов и дополнительный код, то диапазон чисел: . Основные стандартные операции : +, -, /, *.

Имеет место проблема деления.

character - множество печатаемых символов. Не существует такого стандартного множества символов, которое было бы принято на всех выч. машинах.

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

  • Тип Character содержит 26 заглавных латинских букв, 26 строчных, 10 десятичных цифр, а также некоторые другие графические символы (например, знаки препинания).

  • Подмножества букв и цифр упорядочены и между собой не пересекаются (но соприкасаются).

  • Тип содержит непечатаемые символы пробела и конца строки, которые можно использовать как разделители.

Boolean - логический. Два значения обозначаются идентификаторами TRUE и FALSE. Операции OR, AND, NOT, XOR для каких-либо p и q (логические выражения) определяются следующим образом:

p AND q = если p, тогда q, иначе FALSE;

p OR q = если p, тогда FALSE, иначе q;

NOT(p) = если p, тогда TRUE, иначе FALSE;

P XOR q (возвращает значение true  когда один из ее операндов true, а другой – false).

P

q

p&&q

p||q

!p

p^q

TRUE

TRUE

TRUE

TRUE

FALSE

FALSE

TRUE

FALSE

FALSE

TRUE

FALSE

TRUE

FALSE

TRUE

FALSE

TRUE

FALSE

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

Результат некоторого сравнения можно присвоить какой-либо переменной или же использовать в качестве логического операнда в булевском выражении.

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

  1. Перечисляемый – новый, простейший тип, определяющийся простым перечислением входящих в него различных значений.

задается следующим образом: enum color {red, blue, green}.

Первое имя в enum имеет значение 0, следующая – 1, и т. д. (если для значений констант не было явных спецификаций). Если е все значения специфицированы, то они продолжают прогрессию, начиная от последнего специфицированного значения: enum winter_mounths {dec=1, jan, feb}.

Мощность множества = количеству констант в нем.

Стандартные операции, присваивающие своим аргументам следующее (inc(++)) или предыдущее значение (dec(--)), а также операции сравнения <,>, ==, !=.

Можно сделать enum Boolean {FALSE, TRUE}.

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

Задается следующим образом type index = 1..10 или type s = spring..summer.

Базовый тип должен быть упорядочен.

Если применить диапазонный тип к индексам массива, то можно гарантировать, сто не выйдем за границы массива.

Сильная типизация:

  • Каждый объект обладает уникальным типом;

  • Каждый тип определяет множество значений и множество операций над ним;

  • В каждой операции присваивания типы, стоящие в левой и правой части, должны быть эквивалентны; *

  • Каждая применяемая операция над объектом данного типа должна входить в множество допустимых операций.

Для С: int I; I =2.0.

Для языка с сильной типизацией: i=(int) 2.0.