- •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 байт |