- •Лекция 1 Создание консольного приложения
- •2. Консоль. Построение консольного проекта
- •3. Запуск приложения
- •4. Сохранение и редактирование проекта
- •Лекция 2
- •4. Функции форматированного ввода и вывода
- •4.1. Функция форматированного ввода с клавиатуры
- •4.2. Функция форматированного вывода на экран
- •5. Математические функции
- •Лекция 3 Линейные вычислительные процессы
- •1. Алгоритм. Управляющие структуры
- •2. Линейные вычислительные алгоритмы
- •2.1. Условный оператор if()
- •2.2. Условное выражение
- •2.3. Оператор выбора switch()
- •Лекция 5 Программирование разветвляющихся вычислительных процессов
- •Лекция 6 Циклические вычислительные процессы.
- •1. Типы циклов
- •3. Операторы безусловного перехода
- •Лекция 7 Вычисление последовательностей
- •4. Примеры вычисления последовательностей
- •5. Структура алгоритмов вычисления рекуррентных последовательностей
- •Лекция 8 Одномерные массивы
- •1. Массивы
- •1.1. Примеры программ обработки одномерных массивов
- •1.2. Сортировка выбором
- •1.3. Сортировка простыми вставками
- •Лекция 10 Двухмерные массивы
- •1. Двухмерные массивы
- •Лекция 11 Алгоритмы матричной алгебры
- •1. Алгоритмы матричной алгебры
- •Лекция 12 Динамические массивы
- •1. Память компьютера. Адресное пространство
- •2. Динамическая память
- •3. Адреса и указатели
- •4. Указатели и массивы. Динамические массивы
- •5. Проблемы, связанные с указателями
- •6. Поразрядные операции
- •1.2. Способы объявления и обращения к элементам двухмерных массивов
- •Лекция 14 Символы и строки
- •1. Символьный тип данных
- •2. Строки
- •Лекция 15 Структуры
- •1. Понятие структуры
- •2. Определение нового имени типа
- •3. Массивы структур. Указатели на структуры
- •3.1. Определение статического массива структур
- •3.1. Определение динамического массива из n структур
- •Лекция 16 Файлы
- •1. Потоковый ввод-вывод данных
- •3. Понятие файла. Функции работы с файлами
- •Лекция 17 Файлы
- •Лекция 18 Функции пользователя
- •I. Приёмы построения алгоритмов
- •2. Понятие функции
- •2.1. Определение функции
- •2.2. Область видимости переменных
- •2.3. Параметры функции
- •2.4. Описание функции
- •2.5. Организация вызова функции
- •2.5. Передача параметров в функцию
- •3. Рекурсия
- •Лекция 20 Нахождение приближенного значения корня нелинейного уравнения
- •На отрезке [a;b] с заданной точностью eps
- •1.1. Метод дихотомии (половинного деления)
- •1.2. Метод хорд
- •1.3. Метод касательных (Ньютона)
- •Лекция 22 Объектно-ориентированное программирование
- •Полиморфизм – это свойство класса, позволяющее определить одно и то же по имени, но разное по смыслу действие. Основные этапы ооп:
- •Уточнённое имя принадлежит классу (т.Е. Компонентной) функции
- •Лекция 23 Объектно-ориентированное программирование
- •1. Конструкторы и деструкторы
- •1.2. Определение компонентных функций
- •Лекция 25 Объектно-ориентированное программирование
- •1. Свойства классов
- •1.1. Наследование классов
- •1.2. Полиморфизм
- •Библиографический список
5. Математические функции
При вычислениях очень часто используются математические функции. Для того чтобы была возможность использовать эти функции в программе, необходимо подключить головной файл math.h. Математические функции, используемые в С++, и их аналоги в математике приведены в табл.3.
Таблица 3 |
|||
Название функции |
Аргумент функции |
Функция в С++ |
Функция в математике |
Модуль |
Целое число |
abs(x) |
|x| |
Модуль |
Вещественное число |
fabs(x) |
|x| |
Арктангенс |
Вещественное число – угол в радианах |
atan(x) |
arctgx |
Арксинус |
Вещественное число – угол в радианах |
asin(x) |
arcsinx |
Арккосинус |
Вещественное число – угол в радианах |
acos(x) |
arccosx |
Синус |
Вещественное число – угол в радианах |
sin(x) |
sinx |
Косинус |
Вещественное число – угол в радианах |
cos(x) |
cosx |
Тангенс |
Вещественное число – угол в радианах |
tan(x) |
tgx |
Экспонента |
Вещественное число |
exp(x) |
ex |
Логарифм натуральный |
Вещественное число >0 |
log(x) |
lnx |
Логарифм десятичный |
Вещественное число >0 |
log10(x) |
lgx |
Корень квадратный |
Вещественное число |
sqrt(x) |
|
Возведение числа х в степень у |
х и у – вещественные числа |
pow(x,y) |
xy |
Остаток от деления х на у |
х и у – вещественные числа |
fmod(x,y) |
–––––– |
Лекция 3 Линейные вычислительные процессы
Цели:
-
познакомиться с понятием алгоритма и управляющими структурами;
-
дать понятие линейного вычислительного процесса;
-
освоить методику написания линейных вычислительных алгоритмов, перевода таких алгоритмов на язык программирования С++ и разработки соответствующего проекта в среде Visual C++ 6.0.
1. Алгоритм. Управляющие структуры
Решение задач с помощью компьютера включает в себя следующие основные этапы, которые осуществляются без помощи компьютера:
-
постановка задачи, её анализ;
-
разбиение задачи на логически завершенные подзадачи (декомпозиция) и описание основного алгоритма;
-
описание решения каждой подзадачи в виде последовательности некоторых шагов и построение полного набора инструкций, выполнение которых обеспечит достижение цели, определённой на первом этапе;
-
перевод алгоритма на язык программирования (этот процесс называется кодированием);
-
отладка программы (поиск ошибок) и проверка правильности работы программы при помощи тестовых примеров.
На одном из этапов разрабатывается алгоритм будущей программы. Алгоритмом назовём последовательность действий, ведущих от начального состояния исходных данных к некоторому результату либо к пояснению, по какой причине задача не может быть решена.
Основные свойства алгоритма:
понятность – исполнитель алгоритма должен знать, как его выполнять;
дискретность – алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определённых) шагов, этапов;
определённость – каждый шаг алгоритма должен быть чётким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче;
результативность – алгоритм должен приводить к решению задачи за конечное число шагов;
массовость – алгоритм решения задачи разрабатывается в общем виде, т.е. он должен быть применим для некоторого класса задач, различающихся лишь исходными данными. При этом исходные данные должны выбираться из некоторой области, которая называется областью применимости алгоритма.
На практике будем пользоваться формами представления алгоритмов:
-
псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);
-
программная (тексты на языках программирования).
Для написания алгоритма решения конкретной задачи будет достаточно знаний об организации работы трёх управляющих структур:
-
следование – выполнение указанного набора действий в естественном порядке без пропусков и повторений;
-
развилка – выполнение одного из двух действий в зависимости от выполнения (истинности) или невыполнения (принятия ложного значения) некоторого логического выражения;
-
цикл – выполнение некоторое количество раз одного и того же набора действий, который может либо зависеть от некоторой величины (параметра), либо не зависеть от какой-либо величины.
Алгоритмические структуры развилка и цикл допускают так называемую вложенность других структур. Таким образом, алгоритм решения поставленной задачи будет представлять собой либо линейную последовательность алгоритмических структур, либо последовательность, представляющую собой сочетание линейных и вложенных друг в друга алгоритмических структур.