- •1. ОБЩИЕ СВЕДЕНИЯ ОБ АЛГОРИТМАХ
- •1.1. Свойства алгоритма
- •1.2. Способы записи алгоритма
- •1.3. Блок-схемы
- •2. БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ КОНСТРУКЦИИ
- •2.1. Следование
- •2.2. Ветвление
- •2.3. Цикл
- •2.4. Примеры алгоритмов
- •Алгоритм №1
- •Алгоритм №2
- •Алгоритм №3
- •3. ВВЕДЕНИЕ В C++
- •3.1. Основные лексемы языка
- •3.1.1. Идентификаторы
- •3.1.2. Ключевые слова
- •3.1.3. Знаки операций
- •3.1.4. Константы
- •3.1.5. Комментарии
- •3.2. Типы данных
- •3.3. Выражения и операции
- •3.3.1. Арифметические операции
- •3.3.2. Операции сравнения
- •3.3.3. Логические операции
- •3.3.4. Побитовые логические операции
- •3.3.5. Операции сдвига
- •3.3.6. Приоритет операций
- •4. СТРУКТУРА ПРОГРАММЫ НА ЯЗЫКЕ C++
- •4.1. Функции
- •4.1.1. Функция main
- •4.2. Объявление переменных
- •4.3. Директивы препроцессора
- •5. ОПЕРАТОРЫ ЯЗЫКА C++
- •5.1. Оператор присваивания
- •5.2. Операторы передачи управления
- •5.2.1. Вызов функции
- •5.2.2. Возврат значения функции
- •5.2.3. Оператор безусловного перехода
- •5.3. Составной оператор
- •5.4. Условные операторы
- •5.4.1. Оператор if
- •5.4.2. Оператор switch
- •5.5. Операторы цикла
- •5.5.1. Цикл while с предусловием
- •5.5.2. Цикл do-while с постусловием
- •5.5.3. Арифметический цикл for
- •6. ЛАБОРАТОРНАЯ РАБОТА №1. Ветвящиеся вычислительные процессы
- •6.1. Цель работы
- •6.2. Постановка задачи
- •6.2.1. Варианты заданий
- •Вариант №1
- •Вариант №2
- •Вариант №3
- •Вариант №4
- •Вариант №5
- •Вариант №6
- •Вариант №7
- •Вариант №8
- •Вариант №9
- •Вариант №10
- •Вариант №11
- •Вариант №12
- •Вариант №13
- •Вариант №14
- •Вариант №15
- •6.3. Требования к оформлению отчета
- •6.4. Рекомендации по выполнению работы
- •6.4.1. Разработка алгоритма
- •6.4.2. Подготовка тестовых данных
- •6.4.3. Реализация операций ввода-вывода
- •6.4.4. Выполнение математических расчетов
- •7. ЛАБОРАТОРНАЯ РАБОТА №2. Циклические вычислительные процессы
- •7.1. Цель работы
- •7.2. Постановка задачи
- •7.2.1 Варианты заданий
- •7.3. Требования к оформлению отчета
- •8. КОНТРОЛЬНЫЕ ВОПРОСЫ
- •9. ЛИТЕРАТУРА
•блочные - заключаются между символами /* и */, могут состоять из нескольких строк.
Внутри комментария можно использовать любые допустимые на компьютере символы, включая те символы, которые не входят в алфавит языка С++. В частности, комментарий может содержать символы кириллицы.
// это строчный комментарий /* Это
блочный комментарий */
3.2. Типы данных
Различные данные хранятся и обрабатываются в программе по-разному. В языке С++ данные дифференцируются по их типу. Тип данных определяет:
•внутреннее представление данных в памяти компьютера;
•множество значений, которые могут принимать величины этого типа;
•операции и функции, которые можно применять к данным этого типа.
Вязыке С++ имеется 7 стандартных типов данных (таблица 3). Дополнительно, наряду с типами данных, могут использоваться спецификаторы типов, уточняющие внутреннее представление и диапазон значений для типов данных (long – длинный, short – короткий, signed – знаковый, unsigned – беззнаковый)
3.3. Выражения и операции
Выражение – языковая конструкция, предназначенная для выполнения действий над данными.
Выражение состоит из операндов и операций. Операция – это некоторое действие, выполняемое над одним (унарная операция) или двумя (бинарная операция) операндами. Операндом в выражении может являться переменная, константа или другое выражение.
18
Каждое выражение возвращает единственное значение, относящееся к определенному типу данных. Тип возвращаемого значения зависит от типа данных операндов и от используемых операций.
Таблица 3. Типы данных языка С++
Тип |
|
Полное |
Размер |
Диапазон |
|
Описание |
обозначение |
||||
данных |
(байт) |
значений |
|||
|
типа данных |
||||
|
|
|
|
||
int |
целочис- |
int |
41 |
–2 147 483 648 .. |
|
|
ленный |
|
|
+2 147 483 647 |
|
|
|
signed short int |
2 |
–32768 .. +32767 |
|
|
|
short |
|
|
|
|
|
signed long int |
4 |
–2 147 483 648 .. |
|
|
|
long |
|
+2 147 483 647 |
|
|
|
unsigned short int |
2 |
0 ..+65535 |
|
|
|
unsigned short |
|
|
|
|
|
unsigned long int |
4 |
0..+4 294 967 295 |
|
|
|
unsigned long |
|
|
|
|
|
long long int |
8 |
-263 .. +263-1 |
|
|
|
|
|
|
|
char |
символьный |
char |
1 |
–128 .. 127 или |
|
|
|
|
|
0 .. 255 2 |
|
|
|
signed char |
1 |
–128 .. 127 |
|
|
|
unsigned char |
1 |
0 .. 255 |
|
wchar_t |
расширенный |
w_chart |
2 |
0 ..+65535 |
|
|
символьный |
|
|
|
|
bool |
булевский |
bool |
1 |
true / false |
|
|
(логический) |
|
|
|
|
float |
вещественный |
float |
4 |
3.4E +/- 38 |
|
double |
вещественный |
double |
8 |
1.7E +/- 308 |
|
|
с двойной |
long double |
|
|
|
|
точностью |
|
|
|
|
void |
«пустой»3 |
void |
— |
— |
1 Размер типа int не определяется стандартом языка С, а зависит от транслятора и компилятора. В типовой 32-битной архитектуре под тип данных int обычно отводится 4 байта, что соответствует диапазону значений –2 147 483 648 .. +2 147 483 647.
2 Зависит от настроек транслятора и выбранной среды разработки
19
3.3.1. Арифметические операции
Арифметические операции выполняются над переменными, константами и выражениями целочисленных и вещественных типов (Таблица 4).
Тип данных значения, полученного в результате выполнения арифметической операции, соответствует типу данных операндов. Если все операнды относятся к целому типу, то и результат будет также целочисленным. Например, выражение 5/2 вернет значение 2, так как оба операнда целочисленные. Если один из операндов является вещественным, то и тип результата выражения также будет вещественным: 5.0/2=2.5
Таблица 4. Арифметические операции
Опе- |
Описание |
Пример |
рация |
|
выражения |
– |
Унарный |
–a |
|
минус |
–(10*a+b) |
+ |
Унарный |
+a |
|
плюс |
|
* |
Умножение |
a*10 |
|
|
10*20 |
|
|
(3+a)*(4+b) |
/ |
Деление |
10/3 |
|
|
10.0/3 |
% |
Получение |
10%3 |
|
остатка от |
|
|
деления |
|
+ |
Сложение |
a+b |
– |
Вычитание |
A–a |
Таблица 5. Операции сравнения
Опе- |
Описание |
Пример |
рация |
|
выражения |
< |
Меньше |
2<5 |
|
|
A<(10*b) |
<= |
Меньше |
5<=5 |
|
или равно |
a<=b |
> |
Больше |
a>b |
>= |
Больше |
a>=b |
|
или равно |
|
== |
Равно |
a==b |
|
|
a==b+c+d |
!= |
Не равно |
a!=b+c+d |
3.3.2. Операции сравнения
Операции сравнения (Таблица 5) используются при построении логических выражений. Данные операции выполняются над значениями целочисленных,
3 Тип данных void используется при объявлении функций, не возвращающих значения
20
вещественных и символьных типов данных и возвращают булевские значения: «истина» (true) или «ложь» (false).
3.3.3. Логические операции
Таблица 6. Логические операции |
|
|
Таблица 7. Результат |
||||||
Опе- |
Описание |
Пример |
|
|
|
логических операций |
|||
рация |
|
выражения |
|
A |
B |
|
!A |
A&&B |
A| |
&& |
Логическое |
A && B |
|
|
|
|
|
|
|B |
|
«И» |
x<=2 && |
|
false |
false |
|
true |
false |
false |
|
|
y>3 |
|
false |
true |
|
true |
false |
true |
| | |
Логическое |
x<=2 | | y>3 |
|
|
|
|
false |
false |
true |
|
true |
false |
|
||||||
|
«ИЛИ» |
|
|
|
|
|
false |
true |
true |
|
|
|
true |
true |
|
||||
! |
Логическое |
!A && B |
|
|
|
|
|
|
|
|
«НЕ» |
!(x<=2) |
|
|
|
|
|
|
|
Логические операции (Таблица 6) выполняются над булевскими операндами и возвращают булевские значения. В таблице 7 показаны результаты выполнения логических операций для различных значений операндов.
3.3.4. Побитовые логические операции
На практике довольно часто для хранения группы логических значений используется одна целочисленная переменная. При этом каждое логическое значение хранится в отдельном бите. Такой способ представления логических данных позволяет сэкономить занимаемую память: 1 байт данных может содержать 8 логических значений, столько же места занимает 1 значение типа данных bool. Для проверки и установки значений отдельных битов данных используются побитовые (или поразрядные) логические операции (Таблица 8).
Побитовые логические операции применяются к целым числам и выполняются над соответствующими битами операндов. Результатом таких операций также являются целые числа. В таблице 9 показаны значения бита результирующего числа для различных значений битов чисел-операндов.
21