Практическая часть.



Пример 1. Напишите программу вычисления площади круга и его длины окружности по заданному радиусу, вводимого пользователем с клавиатуры, а также вывода на консоль максимальных значений чисел типа int, float и double.

Для решения примера следует воспользоваться математической библиотекой компилятора, т. е. включить в программу заголовочный файл <math.h>., а также заголовочные файлы <limits.h>, <float.h>.

Программный код решения примера:

#include <stdio.h>#include <conio.h>// Для числа пи ()#define _USE_MATH_DEFINES#include <math.h>#include <limits.h>#include <float.h>int main (void){double R, Sr, Lr;printf("\n Enter a real greater than zero: ");scanf_s("%lf", &R);Sr = M_PI*R*R;Lr = 2*M_PI*R;printf("\n Area of a circle of radius R = %g is %g", R, Sr);printf("\n The length of a circle of radius R = %g is %g",R,Lr);puts("");printf("\n Maximum integer: %d\n ", INT_MAX);printf(" Maximum real number of float: %g\n ", FLT_MAX);printf("Maximum real number type double: %g\n ", DBL_MAX); printf("\n Press any key: "); _getch(); return 0;}

В программу включена константа _USE_MATH_DEFINES для работы с числом M_PI (). Остальные константы можно найти в справочной документации компилятора. Например, через меню Help →Index системы MS Visual Studio 2008.

Функция scanf_s() определена в компиляторе языка С системы MS Visual Studio 2008. С этой функцией компилятор не выдает предупреждений.

Результат выполнения программы показан на рис. 2.1.

 

Рис. 2.1. Пример использования предопределенных констант

 

В начале функции int main(void) сделано объявление переменных, которые будут использоваться в программе. Каждый тип переменных объявлен через запятую.

Функции printf() выводят либо только сообщения, либо еще заданные переменные соответствующих типов.

Функция gets() позволяет считывать символы с наличием разделителей, в частности, с пробелами. В Microsoft Visual Studio 2010 рекомендуется использовать gets_s(), чтобы не было предупреждений.

Следует обратить внимание на формат записи функций scanf(). Если сканируются числа, или одиночные символы, то присваивание этих символов переменным, которые были объвлены через соответствующие типы данных, осуществляется с помощью взятия адреса этих переменных, т.е. с помощью символа &, например, scanf_s(«%c»,&ch, 1). При сканировании массива символов, т.е. при сканировании строки, символ & не используется. Имя массива само по себе является указателем. Обращение к адресу осуществляется с помощью указателей (будут рассмотрены позднее). Для сканирования чисел типа double в функции scanf_s() используется спецификатор l.

2.2.1. Математические функции в языке программирования СИ++

Таблица 2.7.

 

Математическая функция Название функции Функция на языке программирования СИ++ Пояснение
арккосинус #include <math.h> double acos(double x); float acosf(float x);   аргумент для acos должен находиться в отрезке [-1,1]. Acos и acosf возвращают значения в радианах на промежутке от 0 до pi.
Arccosh(x) обратный гиперболический косинус #include <math.h> double acosh(double x); float acoshf(float x); x должен быть больше либо равен 1.  
арксинус #include <math.h> double asin(double x); float asinf(float x);   аргумент для asin должен находиться в отрезке [-1,1]. Asin и asinf возвращают значения в радианах в промежутке от –pi/2 до pi/2.
Arcsinh(x) обратный гиперболический синус #include <math.h> double asinh(double x); float asinhf(float x);   ни atanh, ни atanhf не являются ANSI C – функциями.  
арктангенс #include <math.h> double atan(double x); float atanf(float x);   atan и atanf возвращают значения в радианах на промежутке от –pi/2 до pi/2.

Продолжение таблицы 2.7. – Математические функции в языке программирования СИ++

 

обратный гиперболический тангенс #include <math.h> double atanh(double x); float atanhf(float x);   ни atanh, ни atanhf не являются ANSI C - функциями.  
кубический корень #include <math.h> double cbrt(double x); float cbrtf(float x);   Является стандартной функцией ANSI C
гиперболический косинус #include <math.h> double cosh(double x); float coshf(float x);   Углы определены в радианах.  
экспонента числа #include <math.h> double exp(double x); float expf(float x);   Является стандартной функцией ANSI C
модуль числа (абсолютная величина) #include <math.h> double fabs(double x); float fabsf(float x);   Является стандартной функцией ANSI C
Min и max наименьшее и наибольшее ближайшие целые   #include <math.h> double floor(double x); float floorf(float x); double ceil(double x); float ceilf(float x);   Является стандартной функцией ANSI C

 

Продолжение таблицы 2.7. – Математические функции в языке программирования СИ++

 

mod остаток от деления в виде числа с плавающей точкой #include <math.h> double fmod(double x, double y); float fmodf(float x, float y);   Является стандартной функцией ANSI C
натуральный логарифм #include <math.h> double log(double x); float logf(float x);   Является стандартной функцией ANSI C
логарифм по основанию 10 #include <math.h> double log10(double x); float log10f(float x);   log10 возвращает значение логарифма по основанию 10 от х. Он определяется как ln(х)/ln(10).  
возведение основания х в степень у #include <math.h> double pow(double x, double y); float powf(float x, float y);   Является стандартной функцией ANSI C
rint, rintf, округление до ближайшего целого #include <math.h> double rint(double x); float rintf(float x); Является стандартной функцией ANSI C
  остаток от деления х/у double remainder(double x, double y); float remainderf(float x, float y); это будет число между –y/2 и y/2.

 

Продолжение таблицы 2.7. – Математические функции в языке программирования СИ++

 

квадратный корень из числа #include <math.h> double sqrt(double x); float sqrtf(float x);   вычисляет арифметический (неотрицательный) квадратный корень из аргумента
синус #include <math.h> double sin(double x); float sinf(float x);   Углы определены в радианах.  
косинус #include <math.h> double cos(double x); float cosf(float x); Углы определены в радианах.  
гиперболический синус #include <math.h> double sinh(double x); float sinhf(float x);   Углы определены в радианах.  
тангенс #include <math.h> double tan(double x); float tanf(float x);   Углы определены в радианах.
гиперболический тангенс #include <math.h> double tanh(double x); float tanhf(float x);   Углы определены в радианах. tanh(x) определяется как sinh(x)/cos(x)

 

Пример 2. Создать программу на языке программирования Си++ и блок-схему к программе для вычисления функции В, которая зависит от трех переменных x, y, z. Ввод значений переменных сделать с клавиатуры, если , где

 

Рис. 2.2. Окно программы Примера 2

 

Программный код решения примера:

/*

* Вторая программа на языке СИ

* Автор Загребельный С.Л.

*/

#include <stdio.h>

#include <conio.h>

 

#define _USE_MATH_DEFINES

#include <math.h>

 

#include <limits.h>

#include <float.h>

 

int main (void)

{

double x,y,z,b;

printf("\n Enter x = ");

scanf_s("%lf", &x);

printf("\n Enter y = ");

scanf_s("%lf", &y);

z=pow((x+y),3);

printf("\n z = %1.2f", z);

b=pow(x,2)+3*x*y+sqrt(z);

printf("\n b = %lf ",b);

printf("\n press any key ");

_getch();

return 0;

}

В программу включена библиотека математических функций math.h, в которой sqrt() – функция извлечения квадратного корня, pow(а, b) –функция возводит в степень b число по основанию а. Все эти функции возвращают результат типа double и вычисляют от числа (выражения) также типа double.

 

Рис. 2.3. Окно вывода результата Примера 2


Дата добавления: 2015-12-20; просмотров: 25; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!