- •4. 1. Базовые средства языка
 - •Алфавит языка
 - •4.1.5. Типы данных Си
 - •Логический тип
 - •4.1.8. Операции и выражения
 - •Операции присваивания
 - •Арифметические операции
 - •Логические операции
 - •4.1.10. Структура программы
 - •4.1.11. Ввод и вывод данных
 - •Функции ввода- вывода
 - •Объектно-ориентированные средства ввода-вывода.
 - •4.2. Операторы управления
 - •4.2.1. Понятие алгоритма
 - •4.2.2. Изображение алгоритма в виде блок-схемы
 - •2.3. Составной оператор
 - •2.4. Операторы ветвления
 - •If (выражение) оператор;
 - •4.2.5. Примеры программ
 - •4.2.6. Оператор варианта
 - •4.2.7. Алгоритмы циклической структуры
 - •Оператор цикла с предусловием
 - •Оператор цикла с постусловием
 - •Оператор цикла с параметром
 - •Операторы передачи управления
 - •4.2.8. Решение задач с использованием циклов
 - •4.3. Обработка массивов
 - •4.3.1. Описание массивов
 - •4.3.2. Основные операции над массивами
 - •4.3.3. Ввод-вывод элементов массива
 - •4.3.4. Вычисление суммы элементов массива
 - •4.3.5. Вычисление произведения элементов массива
 - •4.3.6. Поиск максимального элемента и его номера
 - •4.3.7. Сортировка элементов в массиве
 - •4.3.8. Удаление элемента из массива
 - •4.3.9. Решение задач с использованием массивов
 - •4.4. Обработка матриц
 - •4.4.1. Ввод-вывод матрицы
 - •4.4.2. Примеры алгоритмов обработки матрицами
 - •4.5.1. Передача параметров в функцию
 - •4.5.2. Возврат результата с помощью оператора return
 - •4.6. Указатели и динамические массивы
 - •5. Примеры организации вычислительного процесса
 - •5.1 Организация разветвляющегося вычислительного процесса
 - •5.2. Организация циклов с известным числом повторений»
 - •Блок-схема
 - •Текст программы
 - •Блок-схема
 - •Текст программы
 - •5.4.Обработки одномерного массива с перестановкой элементов
 - •5.5. Обработка матрицы.
 - •Литература
 
4. Программирование на Си++
Язык Си был создан в 1972 году во время работы над операционной системой UNIX. Си – язык, облегчающий труд программиста. Программы на Си отличаются компактностью и быстротой выполнения.
Си используют для создания ОС, средств программирования, языков программирования, программного обеспечения, программ физического, технического и экономического назначения, компьютерных игр, мультфильмов и т.п. Си – язык структурного программирования. Он позволяет создавать программы, имеющие простую структуру, хорошо читаемые и легко модифицируемые.
4. 1. Базовые средства языка
Текст на любом естественном языке состоит из следующих элементов: символы, слова, словосочетания, предложения.
В алгоритмическом языке алфавит языка, или его символы – это основные знаки, с помощью которых пишутся все тексты на языке. Лексема, или элементарная конструкция – минимальная единица языка, имеющая самостоятельный смысл. Выражение задает правило вычисления некоторого значения. Оператор задает законченное описание некоторого действия. Для описания сложного действия требуется последовательность операторов.
Операторы могут быть исполняемые и неисполняемые. Исполняемые операторы задают действия над данными. Неисполняемые операторы служат для описания данных.
Объединенная единым алгоритмом совокупность описаний и операторов образует программу. Для выполнения программы ее необходимо перевести на язык понятный процессору – в машинные коды. Этот процесс состоит из нескольких этапов.
Программа передается процессору, который выполняет директивы1, содержащиеся в тексте. Получившийся полный текст программы поступает на вход компилятора, который выделяет лексемы, а затем на основе грамматики языка распознает выражения и операторы. При этом компилятор выявляет синтаксические ошибки и в случае их отсутствия строит объектный модуль. Компоновщик, или редактор связей, формирует исполняемый модуль, в том числе содержащий функции библиотек. Если программа состоит из нескольких исходных файлов, они компилируются по отдельности и объединяются на этапе компоновки.
Алфавит языка
Алфавит Си включает:
прописные, строчные латинские буквы и знак подчеркивания;
арабские цифры от 0 до 9;
специальные знаки:
“ { } , |, [ ] ( ) + – / % * . \ ‘ : ? < = > ! & # ~ ; ^
символы пробела, табуляции и перехода на новую строку.
Ключевые слова языка
Ключевые слова это зарезервированные слова, которые имеют специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены.
Идентификаторы
Идентификатор – имя программного объекта. Имя состоит из латинских букв, цифр и символа подчеркивания. Прописные и строчные буквы различаются. Например, ABC, abc, Abc – разные имена. Первый символ в имени – буква или знак подчеркивания. Имя не должно совпадать с ключевыми словами языка.
Идентификатор создается на этапе объявления переменной, функции, константы и т.п. и используется в последующих операторах программы.
Комментарии
Комментарий – это текст, который компилятором игнорируется. Начинается он либо с символов // и заканчивается переходом на новую строку:
//Это комментарий
либо заключается в скобки: /* Это комментарий */
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 байт  | 
