Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект Лекций «программирование На Языке Высокого Уровня Си» По Информатике (Попов Д. И.).pdf
Скачиваний:
157
Добавлен:
07.10.2014
Размер:
1.31 Mб
Скачать

последовательность их вычисления определяется приоритетом операций. По приоритету операции разделяются на четыре уровня (табл.6):

 

Таблица 6.

 

Операции и их приоритеты

Операция

Приоритет

(), [], ->

Первый (наивысший)

!, \^, ++, --, -, (TYPE) * & SIZEOF

Второй

*, /, %

Третий

+, -

Четвертый

<<, >>

Пятый

<, >, <=, >=

Шестой (низший)

Операции с более высоким приоритетом выполняются в первую очередь, далее выполняются операции с более низким приоритетом. Если же подряд следует несколько операций с равным приоритетом, то последовательность вычислений определяется ассоциативностью, которая у всех операций в Си одинакова – слева направо, кроме операций, имеющих приоритет 2 − они выполняются справа налево. Приведем примеры выражений на языке Си:

(a || b) && !c;

sin(x*y / 3) / (x+cos(y % 2));

((x>2.03) || (x<1.1)) && (y>0).

Тема 5. Стандартные типы данных

Данные – это объекты, которые обрабатываются в программе. В языке Си есть два вида данных: константы и переменные.

Константа – данное, которое не может меняться в процессе работы программы. Тип и значение константы однозначно определяются её изображением в программе. Константы в программе записываются: в виде целых или вещественных чисел; в виде символьных констант; в виде строковых констант; в виде стандартных имен констант; в виде определённых в программе имён констант.

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

64

Впрограмме на языке Си для каждого данного должен быть определён его тип. Тип данного определяет возможные значения данного и допустимые операции, которые можно применять к этим значениям.

Вязыке Си различают понятия "тип данных" и "модификатор типа". Тип данных - это, например, целый, а модификатор - со знаком или без знака. Целое со знаком будет иметь как положительные, так и отрицательные значения, а целое без знака - только положительные значения. В языке Си можно выделить пять базовых типов, которые задаются следующими ключевыми словами:

char - символьный;

int - целый;

float - вещественный;

double - вещественный двойной точности;

void - не имеющий значения.

Дадим им краткую характеристику:

1.Переменная типа char имеет размер 1 байт, ее значениями являются различные символы из кодовой таблицы, например: 'ф', ':', 'j' (при записи в программе они заключаются в одинарные кавычки).

2.Размер переменной типа int в стандарте языка Си не определен. В большинстве систем программирования размер переменной типа int соответствует размеру целого машинного слова. Например, в компиляторах для 16-разрядных процессоров переменная типа int имеет размер 2 байта. В этом случае знаковые значения этой переменной могут лежать в диапазоне от -32768 до 32767.

3.Ключевое слово float позволяет определить переменные вещественного типа. Их значения имеют дробную часть, отделяемую точкой, например: -5.6, 31.28 и т.п. Вещественные числа могут быть записаны также в форме с плавающей точкой, например: -1.09e+4. Число перед символом "е" называется мантиссой, а после "е" - порядком. Переменная типа float занимает в памяти 32 бита. Она может принимать значения в диапазоне от 3.4е-38 до 3.4e+38.

65

4.Ключевое слово double позволяет определить вещественную переменную двойной точности. Она занимает в памяти в два раза больше места, чем переменная типа float (т.е. ее размер 64 бита). Переменная типа double может принимать значения в диапазоне от 1.7e-308 до 1.7e+308.

5.Ключевое слово void (не имеющий значения) используется для нейтрализации значения объекта, например, для объявления функции, не возвращающей никаких значений.

Объект некоторого базового типа может быть модифицирован. С этой целью используются специальные ключевые слова, называемые модификаторами. В стандарте ANSI языка Си имеются следующие модификаторы типа:

unsigned signed short long

Модификаторы записываются перед спецификаторами типа, например: unsigned char. Если после модификатора опущен спецификатор, то компилятор предполагает, что этим спецификатором является int. Таким образом, следующие строки:

long а; long int а;

являются идентичными и определяют объект а как длинный целый. Табл. 7 иллюстрирует возможные сочетания модификаторов (unsigned, signed, short, long) со спецификаторами (char, int, float и double), а также показывает размер и диапазон значений объекта (для 16-разрядных компиляторов).

 

 

 

 

Таблица 7.

 

 

 

 

Типы данных языка Си

Тип

Размер в

Диапазон значений

Знаковый

 

байтах

 

 

(может ли хранить

char

(битах)

 

 

отрицательные числа)

1 (8)

от -128

до 127

Да

unsigned char

1 (8)

От 0 до 255

Нет

signed char

1 (8)

от -128

до 127

Да

int

2 (16)

от -32768

до 32767

Да

unsigned int

2 (16)

от 0 до 65535

Нет

66

signed int

2 (16)

от -32768

до 32767

Да

short int

2 (16)

от -32768

до 32767

Да

unsigned short int

2 (16)

от 0 до 65535

Нет

signed short int

2 (16)

от -32768

до 32767

Да

long int

4 (32)

от -2147483648

до 2147483647

Да

unsigned long int

4 (32)

от 0 до 4294967295

Нет

signed long int

4 (32)

от -2147483648

до 2147483647

Да

float

4 (32)

от 3.4е-38

до 3.4е+38

Нет

double

8 (64)

от 1.7-308

до 1.7+308

Нет

long double

10 (80)

от 3.4Е-4932

до 3.4Е+4932

Нет

Константы вещественного типа записываются в двух формах: в виде вещественных дробных чисел без десятичного порядка; в виде вещественных чисел с десятичным порядком. Вещественные дробные константы без десятичного порядка представляются синтаксической диаграммой (рис.25).

+

.

 

Цифра1

Цифра2

 

 

Рис. 25. СД представления вещественного числа без десятичного порядка

Где «Цифра1» – цифра (0,1,…, 9) целой части числа; «Цифра2» – цифра дробной части числа.

Пример 12. Вещественные константы без десятичного порядка на языке Паскаль: –2.45, +33.668, 0.04, 0.0453.

Вещественное число с десятичным порядком представляется диаграммой (рис.26):

+

.

 

 

Цифра1

Цифра2

E

 

 

 

+

 

 

 

Цифра3

Рис. 26. СД представления вещественного числа с десятичным порядком

67