- •Лекция 1. Знакомимся с языком С++
- •1.1. Первая программа на С++
- •1.2. Неформальное введение в С++
- •1.3. Средства разработки программ в ОС Linux
- •1.3.1. Использование компилятора командной строки для создания консольных приложений
- •1.3.2. Создание консольных приложений в среде Anjuta
- •Лекция 2. Общие сведения о языке С++
- •2.1. Алфавит языка
- •2.2. Данные в языке С++
- •2.2.1. Типы данных
- •2.2.2. Символьный тип
- •2.2.3. Целочисленный тип
- •2.2.4. Вещественный тип
- •2.2.5. Логический тип
- •2.2.6. Тип void
- •2.3. Переменные в языке С++
- •2.4. Константы в языке С++
- •2.5. Операции и выражения
- •2.5.1. Операции присваивания
- •2.5.2. Арифметические операции
- •2.5.3. Логические операции
- •2.5.4. Операции отношения
- •2.5.5. Условная операция
- •2.5.6. Операция преобразования типа
- •2.5.7. Операция определения размера
- •2.6. Стандартные функции
- •2.7. Структура программы
- •2.8. Ввод и вывод данных
- •2.8.2. Объектно-ориентированные средства ввода-вывода.
- •Лекция 3. Операторы управления
- •3.1. Условный оператор
- •3.2. Оператор варианта
- •3.3. Операторы цикла
- •3.3.1. Оператор цикла с предусловием
- •3.3.2. Оператор цикла с постусловием
- •3.3.3. Оператор цикла с параметром
- •3.3.4. Операторы передачи управления
- •3.4. Решение задач с использованием циклов
- •Лекция №4. Использование функций при программировании на С/С++
- •4.1. Общие сведения о функциях
- •4.3. Рекурсивные функции в С/С++
- •4.5. Перегрузка и шаблоны функций
- •Лекция 5. Обработка массивов в языке Си++
- •5.1. Ввод элементов массива
- •5.3.1 Алгоритм вычисления суммы элементов массива
- •5.3.2 Алгоритм вычисления произведения элементов массива
- •5.3.3. Поиск максимального элемента и его номера
- •5.3.4. Алгоритм удаления элемента из массива
- •5.3.5. Упорядочение элементов массива
- •5.3.6. Запись положительных элементов массива A в массив B
- •5.3.7. Вставка
- •5.4.2. Операции * и & при работе с указателями
- •5.4.4. Арифметические операции над адресами
- •5.4.5. Использование адресов и указателей при работе с массивами. Динамические массивы.
- •5.5. Примеры программ
- •Лекция 6. ОБРАБОТКА МАТРИЦ В С++
- •6.1. Блок-схемы основных алгоритмов обработки матриц
- •6.2.ДИНАМИЧЕСКИЕ МАТРИЦЫ
- •Лекция 7. Решение задач линейной алгебры с использованием динамических матриц и функций
- •7.1. Решение систем линейных алгебраических уравнений методом Гаусса
- •7.2.Вычисление обратной матрицы методом Гаусса
- •7.3. Вычисление определителя методом Гаусса
- •Лекция 8.Организация ввода-вывода в C++
- •8.1. Форматированный ввод-вывод в C++
- •8.1.1. Использование флагов форматного ввода-вывода
- •8.1.2. Использование флагов форматного ввода-вывода
- •8.2. Операции с файлами в С++
- •8.2.1. Операции с текстовыми файлами
- •Работа с текстовыми файлами с помощью файловых указателей
- •Работа с текстовыми файлами с помощью файловых потоков
- •Запись информации в текстовый файл
- •Чтение информации из текстового файла
- •8.2.2. Обработка двоичных файлов
- •Лекция 9. Строки и структуры в С++
- •9.1. Строки с С++
- •Динамические структуры
- •10.1. Общие сведения о классах
- •10.2. Открытые и закрытые члены класса
- •10.3. Использование конструкторов
- •Также как и другие типы, классы могут объединяться в массивы.
default: Операторы; break;
}
Оператор break необходим для того, чтобы осуществить выход из оператора switch. Если оператор break не указан, то будут выполняться следующие операторы из списка, не смотря на то, что значение, которым они помечены, не совпадает со значением выражения. Его использование рассмотрим на примере решения следующей задачи.
ЗАДАЧА 3.6. По заданному номеру месяца m вывести на печать его название.
#include <iostream> using namespace std; int main()
{
unsigned int m; cout<<"m="; cin>>m; switch (m)
{
//В зависимости от значения m выводится название месяца case 1: cout<<"Январь \n"; break;
case 2: cout<<"Февраль \n"; break; case 3: cout<<"Март \n"; break; case 4: cout<<"Апрель \n"; break; case 5: cout<<"Май \n"; break; case 6: cout<<"Июнь \n"; break; case 7: cout<<"Июль \n"; break; case 8: cout<<"Август \n"; break; case 9: cout<<"Сентябрь \n"; break; case 10:cout<<"Октябрь \n"; break; case 11:cout<<"Ноябрь \n"; break; case 12:cout<<"Декабрь\n"; break;
//Если значение переменной m выходит за пределы области допустимых // значений, то выдается сообщение об ошибке
default: cout<<"Ошибка! \n"; break;
}
return 0;
}
3.3. Операторы цикла
Циклический процесс (цикл) повторение одних и тех же действий. Тело цикла
последовательность действий, выполняемых в цикле. Переменные, изменяющиеся внутри цикла и влияющие на его окончание, называются параметрами цикла.
При написании циклических алгоритмов следует помнить следующее. Для того, чтобы цикл закончился, тела цикла должно обязательно влиять на условие входа в цикл.
В С++ для удобства пользователя предусмотрены три оператора, реализующих циклический процесс: while, do& while и for.
3.3.1. Оператор цикла с предусловием
На рис. 3.5 изображена блок-схема алгоритма цикла с предусловием. Оператор, реализующий
этот алгоритм в С++, имеет вид
while (выражение) оператор;
или
while условие
{
оператор 1; оператор 2;
...
оператор n;
}
ВЫРАЖЕНИЕ
-
+
ТЕЛО ЦИКЛА
Рисунок 3.6: Блок-схема цикла с предусловием
Необходимо вывести на экран таблицу значений функции y = esin(x)cos(x) на отрезке [0;π] с шагом 0.1.
Сиспользование цикла с предусловием программа будет такой:
#include <stdio.h>
#include <math.h> #define PI 3.14159 int main()
{
float x, y; x=0;
//Цикл с предусловием while (x<=PI)
//Пока параметр цикла не превышает конечное значение, выполнять тело // цикла
{
y=exp(sin(x))*cos(x); printf("x=%f \t y=%f \n",x,y); x+=0.1; } //Конец цикла
}
3.3.2. Оператор цикла с постусловием
Цикл с постусловием представлен на рис. 3.7
+
ТЕЛО ЦИКЛА
ВЫРАЖЕНИЕ
-
Рисунок 3.7: Цикл с постусловием
Оператор, реализующий этот алгоритм в С++, имеет вид do оператор while (выражение);
или do
{
оператор_1; оператор_2;
...
оператор_n;
}
while (выражение);
Программа, которая выводит таблицу значений функции y = esin(x)cos(x) на отрезке [0;π] с
шагом 0.1, имеет вид:
#include <stdio.h> #include <math.h> #define PI 3.14159 int main()
{
float x, y; //Описание переменных x=0;
do //Цикл с постусловием {//Выполнять тело цикла y=exp(sin(x))*cos(x); printf("x=%f \t y=%f \n",x,y); x+=0.1; }
while(x<=PI); return 0;}
3.3.3. Оператор цикла с параметром
В С++ существует оператор цикла с параметром следующей структуры
for (начальные_присваивания; выражение; приращение) оператор;
или
for (начальные_присваивания; выражение; приращение)
{
оператор1; оператор2;
...
}
Алгоритм работы цикла for следующий (см. рис. 3.8)
1.Выполняются начальные_присваивания.
2.Вычисляется значение выражения, если оно не равно 0 (true), то выполняется переход к п. 3. В противном случае выполнение цикла завершается.
3.Выполняется оператор.
4.Управление передается оператору приращение, после чего осуществляется переход к п. 2, то есть опять вычисляется значение выражения и т.д.
1
Начальные
присваивания
|
|
|
|
|
|
|
|
|
2Выражение |
|
|
|
|
||
|
|
|
|
|
|||
|
+ |
|
|
|
|
||
|
3 |
|
|
- |
|||
|
Оператор |
||||||
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Приращение |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рисунок 3.8: Алгоритм оператора for
Блок-схему оператора for принято изображать та как показано на рис. 3.9.
Решение задачи вывода таблицы значений функции y = esin(x)cos(x) на отрезке [0;π] с шагом 0.1
с помощью оператора for представлено ниже.
#include <stdio.h> #include <math.h> #define PI 3.14159 int main()
{
float x, y;
//Параметру цикла присваивается начальное значение, если оно не
//превышает конечное значение,то выполняются операторы тела
//цикла,и значение параметра изменяется,в противном случае цикл
//заканчивается