4382

Программирование арифметических выражений на С++

Лабораторная работа

Информатика, кибернетика и программирование

Программирование арифметических выражений на С++ Цель: усвоить, что такое линейные алгоритмы научиться создавать блок-схемы ознакомиться с математическими функциями. Теоретический материал В С++ можно делать различные математические расчёты, поэто...

Русский

2012-11-18

176.5 KB

17 чел.

Программирование арифметических выражений на С++

Цель: усвоить, что такое линейные алгоритмы; научиться создавать блок-схемы; ознакомиться с математическими функциями.

Теоретический материал

В С++ можно делать различные математические расчёты, поэтому разработчиками были созданы математические функции, которые находятся в заголовочном файле math.h. В таблице 3.1 приведены некоторые часто используемые математические функции.

Таблица 3.1: Некоторые математические функции

Функция в

Описание

Пример использования

программировании

математике

sqrt( x )

Корень из х

double a = 900;

double b = 9;

double res = 0;

res = sqrt(a);

// res = 30.0

res = sqrt(b);

// res = 3.0

exp(x)

Экспоненциальная функция

double a = 1;

double b = 2;

double res = 0;

res = exp(a);

// res = 2.718282

res = exp(b);

// res = 7.389056

pow(x,y)

x в степени y

double x=2;

float y=7;

double res = 0;

res = pow(x,y);

// res = 128.0

x = 9;

y = 0.5;

res = pow(x,y);

// res = 3.0

log(x)

логарифм натуральный х (по основанию е)

double x = 2.718282;

double y = 7.389056;

double res = 0;

res = log(x);

// res = 1.0

res = log(y);

// res = 2.0

log10(x)

логарифм десятичный х (по основанию е)

double x = 1.0;

double y = 10.0;

double z = 100.0;

double res = 0;

res = log10(x);

// res = 0.0

res = log10(y);

// res = 1.0

res = log10(z);

// res = 2.0

fabs(x)

абсолютное значение х (для чисел с плавающей точкой с запятой)

double x = 17.3;

double y = -13.6;

double z = 0.0;

double res = 0;

res = fabs(x);

// res = 17.3

res = fabs(y);

// res = 13.6

res = fabs(z);

// res = 0.0

abs(x)

абсолютное значение х (для целочисленных значений)

double x1 = 0.3;

double y1 = -13.6;

double z1 = 0.0;

double res1 = 0;

res = fabs(x1);

// res = 0

res = fabs(y1);

// res = 13

res = fabs(z1);

// res = 0

int x2 = 7;

int y2 = -43;

int z2 = 0;

int res2 = 0;

res = fabs(x2);

// res = 7

res = fabs(y2);

// res = -43

res = fabs(z2);

// res = 0

ceil(x)

округление х до наименьшего целого, не меньшего чем х

double x = 9.2;

double y = -9.8;

double res = 0;

res = ceil(x);

// res = 10.0

res = ceil(y);

// res = -9.0

floor(x)

округление х до наибольшего целого, не большего чем х

double x = 9.2;

double y = -9.8;

double res = 0;

res = floor(x);

// res = 9.0

res = floor(y);

// res = -10.0

fmod(x,y)

остаток х/у, как число с плавающей точкой

double x = 13.657;

double y = 2.333;

double res = 0;

res = fmod(x,y);

// res = 1.992

sin(x)

синус х, где х в радианах

double x = 0.0;

res = sin(x);

// res = 0.0

cos(x)

косинус х, где х в радианах

double x = 0.0;

res = cos(x);

// res = 1.0

tan(x)

тангенс х, где х в радианах

double x = 0.0;

res = tan(x);

// res = 0.0

asin(x)

арксинус х, где х в радианах

double x = 0.0;

res = asin(x);

// res = 0.0

acos(x)

арккосинус х, где х в радианах

double x = 0.0;

res = acos(x);

// res = 1.5708

Для использования математических функций необходимо подключить заголовочный файл math.h, в котором находятся все выше перечисленные функции. Заголовочный файл подключается в начале программы с помощью директивы

#include “имя_заголовочного_файла.h

Обычно функция вызывается путём записи имени функции, после которой записывается левая круглая скобка, затем аргумент функции (или список аргументов, разделённых запятыми), а завершает запись правая круглая скобка. Например, если нам необходимо вычислить корень из числа 25, то можно было бы написать:

cout<<sqrt(25);

После выполнения этого оператора вызывается библиотечная функция sqrt, которая вычисляет корень квадратный из числа 25. Само число 25 будет являться аргументом функции sqrt, а sqrt — имя функции. После выполнения оператора вывода на экране должно отобразиться число 5.

Замечание: все функции в математической библиотеке возвращают данные типа double.

Кроме того, аргументами функции могут быть константы, переменные и выражения. Например, мы могли бы вычислить корень квадратный из выражения 5-9+(34-15)*2+2. При подсчёте выражения получится число 36. Записать это выражение в функцию можно следующим образом:

cout<<sqrt(5-9+(34-15)*2+2);

Результатом работы оператора cout — вывод числа 6 на экран.

Ход работы

  1.  Запускаем программы С++.
  2.  Создаём новый проект, даём ему имя.
  3.  Сохраняем проект.
  4.  Добавляем Source File и даём ему имя.
  5.  Сохраняем файл.
  6.  Пишем «скелет программы»

1

#include “iostream.h”

2

int main()

3

{

4

.

.

.

return 0;

}

  1.  Компилируем программу, собираем проект и проверяем на наличие ошибок.
  2.  Разберём следующее алгоритмическое выражение:
  3.  
  4.  В выражении используется три переменных (x, y, z). Результат записывается в переменную a. Поэтому для начала необходимо объявить наши переменные и определить их типы: x вещественное, y вещественное и z целое. Переменная a будет вещественным числом.
  5.  В теле функции main объявим и инициализируем переменные, которые будем использовать.

4

// объявление переменных

5

double x = 0.15;

6

double y = 61.8;

7

int z = -2;

8

double a = 0;

  1.  Для простоты понимания разделим наше алгоритмическое выражение на несколько простых выражений (рис.3.1)

Рис.3.1: Упрощение задачи путём дробления её на более меньшие

Итак, появились новые переменные A, B, C. Теперь выражение будет иметь вид:

. Объявим новые вспомогательные переменные, которые нам понадобятся для расчётов.

9

10

// объявление вспомогательных переменных

11

double A = 0;

12

double B = 0;

13

double C = 0;

  1.  Воспользовавшись таблицей 2.1, напишем код расчёта выражения A, B, C:

14

15

// расчёт выражений A, В, С

16

A = 3+exp(y-1);

17

B = sin(1+pow((y-x),3));

18

C = 1+pow(x,2)*fabs(y-tan(z));

  1.  Теперь получим результат и выведем его на экран:

19

20

// расчёт и вывод результата

21

a=A/C+B;

22

cout<<”a = ”<<a<<”\n”;

  1.  Скомпилируйте код программы, соберите проект и запустите на выполнение.
  2.  Теперь запрограммируйте то же самое выражение, но в одну строку. Результат вывести на экран. Результаты решения выражения первым и вторым способами должны совпадать.
  3.  В таблице 3.2 представлены варианты заданий по списку в журнале. Создайте новый проект, сделайте расчёты для своего варианта. Пользователь должен иметь возможность вводить переменные с клавиатуры. В программе обязательно должны присутствовать комментарии и условие вашего задания по списку в журнале.

Таблица 3.2: Задания к выполнению лабораторной работы

№ варианта по списку

Выражение

Переменные

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Содержание отчёта

  1.  Тема и номер лабораторной работы.
  2.  Цель работы.
  3.  Ход работы.
  4.  Код программы, который обязательно должен содержать комментарии и условие задачи.
  5.  Исходный код программы со всем проектом в целом в электронном виде.
  6.  Выводы по проделанной лабораторной работе.


 

А также другие работы, которые могут Вас заинтересовать

76428. Условия устойчивости линейных систем автоматического управления 93.58 KB
  Изменение регулируемой величины при произвольном внешнем воздействии представляет собой решение уравнения 3.22 первое слагаемое вынужденная составляющая имеющая тот же характер что и правая часть уравнения 3. Она определяется как частное решение неоднородного дифференциального уравнения 3.21 с правой частью: Второе слагаемое свободная переходная составляющая которая определяется общим решением однородного дифференциального уравнения 3.
76429. Критерий устойчивости Гурвица 61.79 KB
  Поэтому большее распространение получил алгебраический критерий устойчивости сформулированный в 1895 году математиком А. Критерий устойчивости сводится к тому что при должны быть больше нуля все определителей Гурвица получаемых из квадратной матрицы коэффициентов. Условия нахождения системы на границе устойчивости можно получить приравнивая нулю последний определитель: при положительности всех остальных определителей.
76430. Критерий устойчивости Михайлова 37.19 KB
  Критерий устойчивости Михайлова. 21: чтобы замкнутая система была устойчивой необходимо и достаточно чтобы годограф характеристического многочлена замкнутой системы годограф Михайлова начинался на положительной части действительной оси и проходил последовательно в положительном направлении исключая точку начала координат n квадрантов комплексной плоскости где n порядок характеристического уравнения. Графическое изображение годографов Михайлова для устойчивых и неустойчивых систем Практический пример Пусть характеристическое уравнение...
76431. КРИТЕРИЙ УСТОЙЧИВОСТИ НАЙКВИСТА 155.49 KB
  Предварительно должна быть определена устойчивость исследуемой системы в разомкнутом состоянии. Для неустойчивой разомкнутой системы нужно выяснить какое число корней ее характеристического полинома имеет положительные вещественные части. В одноконтурной системе составленной из последовательно соединенных звеньев корни характеристических полиномов этих звеньев являются одновременно корнями характеристического полинома разомкнутой системы. Если какоелибо звено в прямой цепи системы охвачено обратной связью то нужно определить корни...
76432. Структурные схемы систем автоматического управления 160.04 KB
  Структурная схема Структурная схема САУ схема САУ это изображение системы регулирования в виде совокупности динамических звеньев с указанием связей между ними. Структурная схема САУ может быть составлена на основе известных уравнений системы и наоборот уравнения системы могут быть получены из структурной схемы. Наименование Обозначение на структурной схеме Звено с одним входом Звено с двумя входами Узел разветвление Наименование Обозначение на структурной схеме Cумматор Элемент сравненияаналог сумматора Простейшие сочетания...
76433. Статические и астатические системы управления 21.21 KB
  В зависимости от принципа и закона функционирования ЗУ задающего программу изменения выходной величины различают основные виды САУ: системы стабилизации программные следящие и самонастраивающиеся системы среди которых можно выделить экстремальные оптимальные и адаптивные системы. обеспечивается неизменное значение управляемой величины при всех видах возмущений...
76434. Критерий управляемости САУ 24.47 KB
  Очевидно что эта система является неуправляемой так как управляющее воздействие влияет не на все переменные состояния переменная состояния не поддается управлению. Пусть описание САУ представлено в терминах пространства состояния САУ будет управляемой тогда и только тогда если матрица управляемости имеет ранг . порядок вектора состояния .
76435. Ответственность за несвоевременную уплату алиментов. Индексация алиментов 14.47 KB
  Индексация алиментов Индексация алиментов предусмотрена с целью защиты алиментных платежей от инфляции и предотвращения необходимости многократного обращения с иском об изменении размера алиментов выплачиваемых в твердой денежной сумме. Индексация возможна только для алиментов взыскиваемых в твердой денежной сумме. Индексация алиментов взыскиваемых по решению суда в твердой денежной сумме производится администрацией организации по месту удержания алиментов пропорционально увеличению установленного законом минимального размера оплаты труда.
76436. Выявление и учет детей, оставшихся без попечения родителей. Банк детей, оставшихся без попечения родителей 16.73 KB
  Банк детей оставшихся без попечения родителей Существуют различные обстоятельства в результате которых дети остаются без родительского попечения. Сведения о детях оставшихся без попечения родителей учитываются в специальном государственном банке данных в соответствии с Федеральным законом...