- •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. ЛИТЕРАТУРА
•блок-схему программы;
•исходный код программы;
•таблицу тестовых данных и ожидаемых результатов;
•результаты работы программы;
•выводы.
6.4. Рекомендации по выполнению работы
6.4.1. Разработка алгоритма
Выполнение данной лабораторной работы рекомендуется начать с составления алгоритма программы.
Рассмотрим процесс составления алгоритма программы на следующем примере. Пусть дана функция y=f(a,b):
a + b, при a < 0
y = a , при a ≥ 0
b
В соответствии с постановкой задачи значения аргументов
a и b вводятся пользователем с клавиатуры. Поэтому, в первую очередь, необходимо предусмотреть в алгоритме ввод значений аргументов (рисунок 15).
В зависимости от значения аргумента a, функция y может быть рассчитана на основе различных выражений. Поэтому на следующем шаге алгоритма мы произведем
40
проверку значения аргумента a. Если значение аргумента a меньше нуля, то функция y должна рассчитываться по
формуле y = a + b . В противном случае, функция y
будет рассчитываться по формуле y = a . b
На каждой из ветвей алгоритма возможна ситуация, при которой функция y не может быть рассчитана.
Извлечение квадратного корня не может быть выполнено из отрицательного числа. Поэтому на ветви (1) (рисунок 15) требуется проверка того, что подкоренное значение является неотрицательным. Если проверка возвращает истинное значение, то программа рассчитывает значение y и выводит результат на экран (ветвь 1.1). В противном случае, на экран выводится сообщение об ошибке (ветвь 1.2).
На ветви (2) возможно возникновение ошибки в том случае, если значение аргумента b равно нулю (деление на ноль).
6.4.2. Подготовка тестовых данных
Тестовые данные для проверки работы программы необходимо подготовить таким образом, чтобы в совокупности они обеспечивали прохождение по всем ветвям алгоритма программы.
Таблица 14. Таблица тестовых данных
a |
b |
Ветвь |
y |
алгоритма |
|||
-4 |
8 |
1.1 |
2 |
-4 |
2 |
1.2 |
— |
10 |
2 |
2.1 |
5 |
3 |
0 |
2.2 |
— |
На основе блок-схемы алгоритма (рисунок 15) составим таблицу тестовых данных для нашей программы (таблица 14).
6.4.3. Реализация операций ввода-вывода
Для осуществления операций ввода-вывода в языке С++ используются специальные объекты cin и cout.
41
Объект cin обеспечивает ввод данных со стандартного устройства ввода (таковым по умолчанию является клавиатура). Чтобы ввести значение определенной переменной с клавиатуры, используйте следующую инструкцию:
cin >> имя_переменной;
Например:
double a; cin >> a;
Объект cout обеспечивает вывод данных в стандартное устройство вывода (таким устройством по умолчанию является экран компьютера). Чтобы вывести значение определенной переменной или заданную константу на экран, используйте следующую инструкцию:
cout << выводимое значение;
Например:
double y = 10+20;
cout << “Результат:\n”;
cout << “Y = ” << y << “\n”;
Объекты cin и cout реализованы в стандартной библиотеке С++ и объявлены в заголовочном файле iostream в специальном пространстве имен std. Для использования этих объектов необходимо подключить к программе файл iostream, используя директиву препроцессора #include:
#include <iostream>
Чтобы программа видела данные объекты, укажите, что вы будете использовать пространство имен std при помощи следующей инструкции:
using namespace std;
6.4.4. Выполнение математических расчетов
Некоторые расчеты не могут быть выполнены при помощи стандартных операций языка С++. Для
42
вычисления результатов тригонометрических функций, возведения чисел в степень, извлечения квадратного корня, а также выполнения других математических операций требуется использовать специальные функции.
Математические функции реализованы в стандартной библиотеке С++ и определены в заголовочном файле math.h. Для использования данных функций необходимо подключить к программе файл math.h, используя директиву препроцессора #include:
#include <math.h>
Основные математические функции представлены в таблице 15:
Таблица 15. Математические функции
Функция |
Описание |
Предназначение |
||
pow |
double pow(double x, |
Возведение |
числа |
x в |
|
double y); |
степень y |
|
|
log |
double log(double x); |
Натуральный |
логарифм |
|
|
|
числа x |
|
|
log10 |
double log10(double x); |
Десятичный |
логарифм |
|
|
|
числа x |
|
|
sqrt |
double sqrt(double x); |
Квадратный |
корень |
|
|
|
числа x |
|
|
sin |
double sin(double x);5 |
Синус числа x |
|
|
cos |
double cos(double x); |
Косинус числа x |
|
|
tan |
double tan(double x); |
Тангенс числа x |
|
|
sinh |
double sinh(double x); |
Гиперболический |
синус |
|
|
|
числа x |
|
|
cosh |
double cosh(double x); |
Гиперболический |
|
|
|
|
косинус числа x |
|
|
tanh |
double tanh(double x); |
Гиперболический |
|
|
|
|
тангенс числа x |
|
|
asin |
double asin(double x); |
Арксинус числа x |
|
5 Углы в тригонометрических функциях указываются в радианах.
43