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.  Выводы по проделанной лабораторной работе.


 

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

44212. Исследование возможностей аппаратной реализации IPS/IDS на основе ПЛИС 364.5 KB
  Информационные системы и технологии Информационные системы и технологии в компьютерных сетях Допущено к защите На данный момент почти все организации и предприятия используют корпоративные информационные системы. Становится актуальной проблема поддержания полноценной и безопасной работы системы в целом. А поскольку все системы связаны Internetтехнологиями особое внимание уделяется защите информации.
44213. Теоретические основы налогообложения субъектов малого бизнеса 82 KB
  Приступая к рассмотрению особенностей налогообложения определим необходимые и достаточные условия для того чтобы коммерческая организация имеющая статус юридического лица могла быть отнесена к субъектам малого бизнеса : 1 в её УК доля принадлежащая одному или нескольким юридическим лицам не являющимися субъектами малого бизнеса не превышает 25 ; 2 средняя численность работников за отчетный период не должна превышать предельных уровней установленных для малых предприятий. В Российской Федерации развитие налогообложения...
44214. Выявление взаимосвязи между терминальными ценностями и когнитивно-поведенческими установками 2.63 MB
  Взаимосвязь терминальных ценностей с когнитивно-поведенческими установками старших школьников Научный руководитель: Асеева Инна Николаевна Цель: выявление взаимосвязи между терминальными ценностями и когнитивно-поведенческими установками Объект: терминальные ценности личности Предмет: взаимосвязь терминальных ценностей с когнитивно-поведенческими установками старших школьников Гипотеза: существуют особенности в структуре взаимосвязи терминальных ценностей с когнитивно-поведенческими установками старших...
44215. Программное обеспечение вычислительной техники и автоматизированных систем 176.5 KB
  Особым образом описывается порядок подготовки дипломной работы к защите, комплектование работы, получение необходимых подписей, подготовка к рецензии. Предлагается примерный план-тезис устной защиты дипломной работы перед Государственной аттестационной комиссией
44216. Разработка мероприятий по повышению эффективности использования информационных технологий управления предприятием ЧТПУП «Балтийский Легион» 571.5 KB
  Краткая характеристика деятельности предприятия Анализ финансово-экономических показателей предприятия Следовательно повышение эффективности управленческой деятельности становится одним из направлений совершенствования деятельности предприятия в целом. Сравнительная легкость внедрения новых решений благодаря наличию специализированных подразделений предприятия вычислительных центров.
44217. АНАЛІЗ ЕФЕКТИВНОСТІ ІНФОРМАЦІЙНОЇ СИСТЕМИ У ГОТЕЛЬНОМУ КОМПЛЕКСІ «ЦЕНТРАЛЬ» 665 KB
  Інформація потрібна всім: керуючим структурам, коллективам підприємств, громадським організаціям, всім працюючим. Неможливо спиратися тільки на інтуїцію, на свій життєвий і практичний досвід, необхідно одержувати і освоювати всі розширюється інформацію, що допомагає вирішувати виникаючі питання.
44218. МОДИФИКАЦИЯ МЕТОДА ОПРЕДЕЛЕНИЯ МИЕЛОПЕРОКСИДАЗЫ ПОЛИМОРФНОЯДЕРНЫХ ГРАНУЛОЦИТОВ ПЕРИФЕРИЧЕСКОЙ КРОВИ ДЛЯ СПЕКТОРОФОТОМЕТРИЧЕСКОЙ ОЦЕНКИ РЕЗУЛЬТАТОВ 2.65 MB
  Цель работы модификация лабораторного метода для спектрофотометрического определения спонтанной активности миелопероксидазы полиморфноядерных гранулоцитов периферической крови человека и его сравнительная оценка с различными лабораторными методами определения активности миелопероксидазы нейтрофилов с точки зрения основных требований предъявляемых к лабораторным методам определения активности ферментов в клинических условиях. Определение активности миелопероксидазы с помощью модифицированного лабораторного метода позволяет оценить спонтанную...
44219. СЕМЕЙНОЕ ЧТЕНИЕ: ПРОБЛЕМЫ ПОДДЕРЖКИ И СТИМУЛИРОВАНИЯ В СОВРЕМЕННЫХ УСЛОВИЯХ 665.5 KB
  Особенно тревожная ситуация сложилась с детским и подростковым чтением проблемы чтения ныне встали в один ряд с важнейшими государственными задачами защиты и обеспечения безопасности российской национальной культуры. Проблемами детского чтения считаются недостаточность специальных знаний у родителей о чтении детей о воспитании и педагогике детей экономические и финансовые причины; и др. В современных условиях очень важно позиционировать значение семейного чтения для каждого человека живущего как в нашей стране так и за рубежом....
44220. Сюжетно-дидактические игры математического содержания в самостоятельной деятельности детей 6-го года жизни 10.48 MB
  Теоретические аспекты использования игровой деятельности детей дошкольного возраста для развития математических представлений Содержание математических представлений детей 6 го года жизни Характеристика самостоятельной деятельности детей шестого года жизни и условия применения в ней сюжетно-дидактических игр математического содержания.