Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Стандартные математические функции

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

Аргументы тригонометрических функций задаются в радианах. Напомним, что 2 p (рад) равно 360о (град).

 

Математическая функция ID функции Математическая функция ID функции
sqrt(x) arcsin(x) asin(x)
|x| fabs(x) arctg(x) atan(x)
ex exp(x) arctg(x/y) atan2(x,y)
xy pow(x, y) sh*(x)=1/2 (ex-e-x) sinh(x)
ln(x) log(x) ch(x)=1/2 (ex+e-x) cosh(x)
lg10(x) log10(x) tgh(x) tanh(x)
sin(x) sin(x) Остаток от деления x на y fmod(x,y)
cos(x) cos(x) Округление к большему ceil(x)
tg(x) tan(x) Округление к меньшему floor(x)

 

1.2. Основы работы в среде C++Builder.
Создание консольного приложения

 

Запустите любым способом C++Builder, если он еще не запущен. Выберите пункт меню File>New. В окне диалога New Items на вкладке New выберите «иконку» Console Wizard – мастер консольного приложения. В появившемся окне диалога установите «радиокнопку» C++ и «флажок» Console Application. Остальные флажки сбросьте, если они установлены. Нажмите кнопку OK. Мастер создал минимальное (пустое) консольное приложение. C++Builder готов к работе. Каждое из окон, которые Вы видите на экране, имеют определенное назначение. В верхней части экрана находится главное окно. Оно содержит меню, панель управления, панель с палитрой компонентов и предназначено для управления разработкой программ. Ниже слева находится инспектор объектов (Object Inspector), который используется, если программа пишется в стиле объектно-ориентированного программирования. Пока это окно не будет использоваться, поэтому закройте его щелчком мыши на кнопке. Оставшееся окно – редактор кода. Оно состоит из двух стыкованных окон. Первое – обозреватель классов находится слева. Как и инспектор объектов, оно не используется. Закройте его. Второе окно – редактор исходного кода программы. Для удобства работы его следует расширить щелчком мыши на кнопке.

 

В результате интегрированная среда разработки программ С++Builder приобретает вид изображенный на рис. 1.1.

Исходный код программы на языке C++ вводится как дополнение к минимальной программе, созданной мастером консольного приложения. Как сделать дополнение поясняет пример первой программы. Введите эту программу в редактор. После ввода вполне возможно неправильное воспроизведение русских букв. Для правильного воспроизведения следует установить шрифт редактора: меню Tools>Editors Options…>Display Editor Font: Courier New.

Примечание: Отображение русского шрифта в консоли (функция RUS)

Добавляем этот текст перед функцией main():

char bufRus[256];//объявляем глобальную переменную

char* RUS(const char*text) //функция поддержки русского языка

{

CharToOem(text,bufRus);

return bufRus;

}

И если мы раньше писали так: cout<<"Привет всем!";

То теперь: cout<<RUS("Привет всем!");

Использовать несколько раз функцию RUS в одном cout не рекомендуется, т.е. следует делать так:

N = 5;

cout<<RUS("В массиве А - ");

cout<<N;

cout<<RUS(" элементов");

 

//---------------------------------------------------------------------------

#pragma hdrstop //эта директива имеет спец. назначение

//ее не следует удалять

//---------------------------------------------------------------------------

//здесь подключаются библиотеки, например

//

#include <conio.h> //библиотека подключения функции getch()

#include <iostream.h> //библиотека для cin и cout

#include <malloc.h> //библиотека для динамического выделения памяти

#include <fstream.h> //библиотека для ввода/вывода в файл

#include <windows.h> //библиотека используется в функции RUS

#include <math.h> //библиотека математических функций

#include <ctype.h> // библиотека проверки принадлежности символов

#include <stdlib.h> // библиотека некоторых стандартных функций

#include <string.h> // библиотека функций работы со строками

//

char bufRus[256]; //глобальная переменная bufRus используется

// в функции RUS

//---------------------------------------------------------------------------

char* RUS(const char*text) //функция поддержки русского языка

{

CharToOem(text,bufRus);

return bufRus;

}

//---------------------------------------------------------------------------

 

#pragma argsused //эта директива имеет спец. назначение

//ее не следует удалять

int main(int argc, char* argv[])

{

cout<<RUS("***Напишите здесь название программы*** ");

//****************************************************

//Здесь введите свою программу, например:

cout<<"Hello World from Console! ";

cout<<RUS("Привет Всем из Консоли! ");

//****************************************************

cout<<RUS(" Нажмите любую клавишу для завершения программы... ");

getch(); //консольное окно ожидает нажатия клавиши

return 0;

}

//---------------------------------------------------------------------------

 

Чтобы запустить введенную программу следует нажать кнопку с зеленым треугольником на панели управления. С++Builder предложит задать имя программы, если оно еще не задано. Первым вводится имя модуля программы (Unit). Лучше ввести уникальное имя, например, Lab_U. Во втором окне диалога введите имя проекта, например, Lab_Pr. После запуска программы на экране появляется окно консоли (рис.1.2).

 

C++Builder – интегрированная среда и позволяет выполнять все операции по созданию программы, в том числе проверять программу в работе и производить поиск ошибок программирования. Последний процесс называется отладкой программы и требует знания соответствующей системы управления.

 

 

Рисунок 1.2— Окно консоли выполненной программы

Данная программа является базовой для написания собственных программ с использованием русского языка. Она содержит подключение наиболее широко используемых библиотек и поэтому, частично, снимает эффект неопытности программиста.

 

Отладка программы

 

C++ Builder имеет мощный отладчик программ, помогающий исправлять ошибки программирования. Однако для простых консольных приложений достаточно иметь минимальные сведения о нем.

Установка точек останова (Add breakpoint).

 

Выполните щелчок мышью на вертикальной полоске серого цвета идущей по левому краю окна редактора кода. На ней появится кружок красного цвета (рис. 1.3). Это и есть точка останова. Она находится в начале выделенной красным цветом строки программы.

 

Рисунок 1.3— Установка точки останова

 

Поэтому программа, после запуска, прекратит выполнение кода точно в начале строки и будет ожидать действий по отладке. Такими действиями могут быть:

 

- Пошаговое выполнение программы. Для этого следует нажать кнопку Step Over на панели управления или клавишу клавиатуры F8. Программа будет выполняться построчно. Функции пользователя будут выполняться целиком. Для построчного выполнения внутреннего кода функций пользователя следует нажать кнопку Trace Into на панели управления или клавишу клавиатуры F7. Тогда пошаговое выполнение будет включать и строки функций;

 

- Продолжение выполнения программы до конца. Для этого следует нажать кнопку запуска программы (зеленый треугольник) или клавишу F9 (до строки с курсором F4);

 

- Ввод дополнительных точек останова. После ввода нажимается кнопка запуска для достижения следующего останова или конца программы;

 

Во время прерывания программы в точке останова можно просматривать содержимое переменных и изменять их значение. Просмотр удобно выполнять, останавливая курсор мыши над соответствующей переменной в тексте программы. Изменить переменную можно в окне диалога, запускаемом через меню Run>Evaluate/Modify (Ctrl+F7).

 

Эксперименты с меню Run и Project могут подсказать еще ряд приемов по отладке программы. Следует постепенно изучать эти приемы, тогда все будет легко и просто.

 

Минимальные правила редактирования текста программы.

 

Правила совпадают с правилами для любого текстового редактора, например, Word. Особенно эффективно использование операций с текстовыми блоками: Сut – вырезать выделенный блок (Ctrl+X), Copy – копировать выделенный блок (Ctrl+C), Paste – вставить выделенный блок (Ctrl+V). При этом поддерживаются комбинации клавиш Ctrl+Ins – копировать, Shift+Ins – вставить.

 

Прерывание выполнения программы.

 

Иногда программа в каком-либо месте выполнения ведет себя непредсказуемо, например, требует введения дополнительных данных, не заканчивается, где надо или вовсе не заканчивается. Тогда ее можно прервать нажатием комбинации клавиш Ctrl+Break или переключиться в окно исходного кода и нажать Ctrl+F2.

Задержка консольного окна после выполнения приложения

Есть несколько решений проблемы.

Первое: Подключить #include <conio.h> и в конце кода программы добавить функцию getch();

Второе: Дописать в конце программы

system("pause");

И то и другое решение будут ожидать нажатие любой клавиши на клавиатуре, после чего программа завершит выполнение.

 

Пример выполнения задания

 

Cоставить программу вычисления арифметического выражения для заданных значений x, y, z:

.

 

1. Текст программы с использованием стандартных функций ввода-вывода, может иметь следующий вид:

#include <stdio.h>

#include <conio.h>

#include <math.h>

int main()

{

double x, y, z, a, b,c, rez;

puts(" x, y, z = ");

scanf("%lf %lf %lf", &x, &y, &z); // Формат для типа double ℓf

a = pow(tan(x+y),2);

b = exp(y-z);

c = sqrt(cos(x*x)+sin(z*z));

rez = a-b*c;

printf(" x = %7.3lf y = %7.3lf z = %7.3lf Rezult = %lf ", x, y, z, rez);

puts("Press any key... ");

getch();

return 0;

}

2. Текст программы с использованием потокового ввода-вывода, может иметь следующий вид:

#include <iostream.h>

#include <conio.h>

#include <math.h>

int main()

{

double x, y, z, a, b,c, rez;

cout << " x,y,z = " << endl;

cin >> x >> y >> z;

a = pow(tan(x+y),2);

b = exp(y-z);

c = sqrt(cos(x*x)+sin(z*z));

rez = a-b*c;

cout << " x = " << x << " y = " << y << " z = " << z

<< " Rezult = " << rez << endl;

cout << "Press any key... " << endl;

getch();

return 0;

}

 

Введя исходные данные x = 3,4; y = 7,4×10-2; z = 1,943×102 (у и z – в форме с плавающей точкой), результат выполнения программы будет иметь следующий вид:

 

Индивидуальные задания

Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.

1. . При x = 14.26, y = –1.22, z = 3.5´10-2 ® t = 0.564846.  
2. . При x = –4.5, y = 0.75´10-4, z = 0.845´102 ® u = –55.6848.
3. . При x = 3.74´10-2, y = –0.825, z = 0.16´102 ® v = 1.0553.  
4. . При x = 0.4´104, y = –0.875, z = –0.475´10-3 ® w = 1.9873.
5. При x = –15.246, y = 4.642´10-2, z = 20.001´102 ® a = –182.036.
6. При x = 16.55´10-3, y = –2.75, z = 0.15 ® b = –40.630694.
7. При x = 0.1722, y = 6.33, z = 3.25´10-4 ® g = –205.305571.
8. При x = –2.235´10-2, y = 2.23, z = 15.221 ® j = 39.374.
9. . При x = 1.825´102, y = 18.225, z = –3.298´10-2 ® y = 1.2131.
10. При x = 3.981´10-2, y = –1.625 ´ ´103, z = 0.512 ® a = 1.26185.
11. При x = 6.251, y = 0.827, z = 25.001 ® b = 0.7121.  
12. При x = 3.251, y = 0.325, z = 0.466´10-4 ® c = 4.251433.  
13. . При x = 17.421, y = 10.365´10-3, z = 0.828´105 ® f = 0.33056.
14. . При x = 12.3´10-1, y = 15.4, z = 0.252´103 ® g = 82.825623.  
15. . При x = 2.444, y = 0.869´10-2, z = –0.13´103 ® h = –0.49871.
16. При x = –2.235´10-2, y = 2.23, z = 15.221 ® w = 39.374.

Контрольные вопросы

 

1. Какие типы величин используются в языке C++? Как описать переменную в программе?

2. Оператор присваивания в языке C++.

3. Использование стандартных математических функций.

4. Преобразуйте математическое выражение в арифметическое выражение на C++:

a)

b)

c)

5. Структура программы на C++.

6. О чем говорит строка “return 0” в функции main().

7. Что отобразится на экране в результате выполнения следующего оператора:

сout << “Программирование на C++.”;

8. Что делает следующий оператор:

cin >> n;

9. Каково назначение директивы: #include <iostream>

10. Что неправильно (если что-то неправильно) в каждой из следующих директив:

a) #include < iostream>

b) #include <iostream>

c) #include <iostream >


* Синус гиперболический, а в следующей строке – косинус гиперболический.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...