Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория по языку СИ.doc
Скачиваний:
37
Добавлен:
03.03.2016
Размер:
1.93 Mб
Скачать

4. Программирование на Си++

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

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

4. 1. Базовые средства языка

Текст на любом естественном языке состоит из следующих элементов: символы, слова, словосочетания, предложения.

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

Операторы могут быть исполняемые и неисполняемые. Исполняемые операторы задают действия над данными. Неисполняемые операторы служат для описания данных.

Объединенная единым алгоритмом совокупность описаний и операторов образует программу. Для выполнения программы ее необходимо перевести на язык понятный процессору – в машинные коды. Этот процесс состоит из нескольких этапов.

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

      1. Алфавит языка

Алфавит Си включает:

  • прописные, строчные латинские буквы и знак подчеркивания;

  • арабские цифры от 0 до 9;

  • специальные знаки:

“ { } , |, [ ] ( ) + – / % * . \ ‘ : ? < = > ! & # ~ ; ^

  • символы пробела, табуляции и перехода на новую строку.

      1. Ключевые слова языка

Ключевые слова это зарезервированные слова, которые имеют специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены.

      1. Идентификаторы

Идентификатор – имя программного объекта. Имя состоит из латинских букв, цифр и символа подчеркивания. Прописные и строчные буквы различаются. Например, ABC, abc, Abc – разные имена. Первый символ в имени – буква или знак подчеркивания. Имя не должно совпадать с ключевыми словами языка.

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

      1. Комментарии

Комментарий – это текст, который компилятором игнорируется. Начинается он либо с символов // и заканчивается переходом на новую строку:

//Это комментарий

либо заключается в скобки: /* Это комментарий */

4.1.5. Типы данных Си

В любой программе выполняется обработка каких-либо данных. Данные различного типа хранятся и обрабатываются по разному.

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

Данные в языке Си описываются в начале функции. Обязательное описание типа позволяет компилятору проводить проверку допустимости различных конструкций программы.

Типы языка Си можно разделить на основные и составные.

Основные типы данных:

char – символьный,

int – целый,

float – вещественный,

double – вещественный с двойной точностью,

bool – логический,

void – без типа (бестиповый).

Спецификаторы типов2:

short – короткий;

long – длинный;

signed – знаковый;

unsigned – беззнаковый.

Символьный тип (char)

Под величину символьного типа отводится количество байт, достаточное для размещения одного символа. Как правило, это 1байт (табл. 1).

Таблица 1. Данные символьного типа

Тип

Диапазон

Размер

char

–128…127

1 байт

unsigned char

0…255

1 байт

signed char

–128…127

1 байт

Целый тип (int)

Размера типа int зависит от компьютера и компилятора (табл. 2). Для 16-разрядного процессора под величины этого типа отводится 2 байта, для 32-разрядного – 4 байта. Спецификатор short перед именем типа указывает компилятору, что под число следует отвести 2 байта не зависимо от разрядности процессора. Спецификатор long означает, что целая величина будет занимать 4 байта. По умолчанию все целые типы считаются знаковыми, т.е. спецификатор signed можно не указывать.

Таблица 2. Данные целочисленного типа

Тип

Диапазон

Размер

int

-32767…32767

2 байта (4 байта)

unsigned int

0…65535

---

signed int

-32767…32767

---

short int

-32767… 32767

2 байта

long int

-2147483647 2147483647

4 байта

unsigned short int

0 … 65535

2 байта

Тип

Диапазон

Размер

signed short int

-32767… 32767

2 байта

long long int

–(263–1) …(263–1)

8 байт

signed long int

-2147483647 2147483647

4 байта

unsigned long int

0… ...4294967295

4 байта

unsigned long long int

0 … 264–1

8 байт

Типы с плавающей точкой (float, double)

Внутреннее представление вещественного числа в памяти компьютера отличается от представления целого числа. Число с плавающей точкой представлено в экспоненциальной форме mE±p, где m – мантисса (целое или дробное число с десятичной точкой), p – порядок (целое число). Для того чтобы перейти от экспоненциальной формы к обычному представлению с фиксированной точкой, необходимо мантиссу умножить на десять в степени порядок. Например,

-6.42Е+2 = -6.42.102 = -642, 3.2E-6 = 3.2.10-6 =0.0000032

Таблица 3. Данные вещественного типа

Тип

Диапазон

Размер

float

3.4Е-38…3.4E+38

4 байта

double

1.7Е-308…1.7E+308

8 байт

Long double

3.4Е-4932…3.4E+4932

10 байт