Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы программировании на Си.doc
Скачиваний:
4
Добавлен:
08.09.2019
Размер:
301.57 Кб
Скачать

Лабораторная работа №1 Данные. Типы данных. Приведение типов. Циклы Теоретическая часть Типы данных

Программы оперируют с различными данными, которые могут быть простыми и структурированными. Простые данные - это целые и вещественные числа, символы и указатели (адреса объектов в памяти). Целые числа не имеют, а вещественные имеют дробную часть. Структурированные данные - это массивы, записи и файлы.

В языке различают понятия «тип данных» и «модификатор типа». Тип данных - это, например, целый, а модификатор - со знаком или без знака. Целое со знаком будет иметь как положительные, так и отрицательные значения, а целое без знака - только положительные значения. В языках С и С++ можно выделить пять базовых типов, которые задаются целующими ключевыми словами: char - символьный; int - целый: float - вещественный; double - вещественный двойной точности; void - не имеющий значения. Дадим им краткую характеристику:

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

2. Переменная типа int имеет размер 2 байт. Знаковые значения этой переменной могут лежать в диапазоне от -32768 до 32767.

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

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

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

Объект некоторого базового типа может быть модифицирован. С этой целью используются специальные ключевые слова, называемые модификаторами. Пока рассмотрим только четыре из них: unsigned, signed, short, long. Модификаторы записываются перед спецификаторами типа, например: unsigned char. Если после модификатора опущен спецификатор, то компилятор предполагает, что этим спецификатором является int. Таким образом, следующие строки:

long а; long int а:

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

Таблица 2

Тип

Размер

Диапозон

Char

signed char

8

-128

unsigned char

8

0-255

Int

signed int

short int

signed short int

16

-32768-32767

unsigned int

unsigned short int

16

0-65535

long int

signed long int

32

-2’147’483’648-2’147’483’647

unsigned long int

32

0-4’294’967’295

Float

32

3.4e-38-3.4e+38

Double

64

1.7e-308-1.7e+308

long double

80

3.4e-4932-1.1e+4932

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

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

Тип void

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

Пример

void main(void)