Число пи в с как ввести
Если возникла вечная «проблема с числом пи в C++», а делать вот так
#define M_PI 3.14159265358979323846
в проекте не хочется, то есть и другое решение.
В стандарте константы M_PI нет, это расширение gcc.
В Visual Studio, тем не менее, константа тоже имеется, но только при подключении math.h , а не cmath и указании директивы
#define _USE_MATH_DEFINES
Функции, которых нет в стандартной математической библиотеке, например, котангенс, тоже всегда можно написать или сделать макроопределением, как в показанном ниже примере (табулирование функции котангенса в заданных пределах, зависящих от значения пи).
Проверено в консоли Visual Studio 2019.
#include #include #define _USE_MATH_DEFINES #include #define cotan(x) (pow(1./tan(x),2)) using namespace std; int main() < double a = M_PI/4, b = M_PI/2; const int m = 15; double dx = (b - a) / m; cout.precision(6); for (double x = a; x cin.get(); return 0; >
Как вариант, если мы хотим именно C++-библиотеку cmath , а не сишную math.h , в Studio строку 4 листинга мы могли бы заменить на
#include #include
Можно сделать и вот так, с помощью директивы условной компиляции:
#include #ifdef M_PI double const pi = M_PI; #else double const pi = 4*std::atan(1); #endif
В последних сборках по рецепту 1 можно вместе с директивой # define инклудить и cmath , а не только math.h
21.11.2019, 13:16 [21701 просмотр]
Число пи на клавиатуре и в Word
Существует несколько способов ввода числа Пи, как с клавиатуры компьютера, так и с помощью простого копирования. Опишем, как проще всего написать число Пи.
Способ — 1.
Вот символ числа Пи — π . Просто скопируйте его и вставьте в свой документ.
Способ — 2, для PC.
Нажмите клавишу Alt и не отпуская ее введите код символа числа π — «960» или «227«, отпустите «Alt«. Клавиша Alt находится в нижней части, как правило, слева и справа от клавиши «Пробел«. Цифровой код нужно вводить с помощью цифровой клавиатуры находящейся спава.
Способ — 3, для MAC
Нажмите клавишу «Option» и не отпуская клавишу «P«, появится символ числа Пи.
Способ — 4, получение числа Пи в Ворде или в другом текстовом редакторе
В Word-е, в окне выбора шрифта, выберите шрифт Symbol и нажмите букву «P«.
Способ — 5, таблица символов.
В операционной системе Windows необходимо открыть программу «Таблица символов«. Для этого воспользуйтесь меню «Пуск» — «Все программы» — «Служебные«. В таблице символов выбираем нужный нам шрифт и ищем символ числа Pi в огромном многообразии различных символов.
Кстати, не со всеми шрифтами символ числа Пи будет корректно отображаться. Лучше всего для этого подходит шрифт «Times New Roman«.
Math. PI Поле
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет отношение длины окружности к ее диаметру, определяемое константой π.
public: double PI = 3.1415926535897931;
public const double PI = 3.1415926535897931;
val mutable PI : double
Public Const PI As Double = 3.1415926535897931
Значение поля
Value = 3.1415926535897931
Примеры
В следующем примере используется PI для вычисления внутренних углов заданной трапеции.
/// /// The following class represents simple functionality of the trapezoid. /// using namespace System; public ref class MathTrapezoidSample < private: double m_longBase; double m_shortBase; double m_leftLeg; double m_rightLeg; public: MathTrapezoidSample( double longbase, double shortbase, double leftLeg, double rightLeg ) < m_longBase = Math::Abs( longbase ); m_shortBase = Math::Abs( shortbase ); m_leftLeg = Math::Abs( leftLeg ); m_rightLeg = Math::Abs( rightLeg ); >private: double GetRightSmallBase() < return (Math::Pow( m_rightLeg, 2.0 ) - Math::Pow( m_leftLeg, 2.0 ) + Math::Pow( m_longBase, 2.0 ) + Math::Pow( m_shortBase, 2.0 ) - 2 * m_shortBase * m_longBase) / (2 * (m_longBase - m_shortBase)); >public: double GetHeight() < double x = GetRightSmallBase(); return Math::Sqrt( Math::Pow( m_rightLeg, 2.0 ) - Math::Pow( x, 2.0 ) ); >double GetSquare() < return GetHeight() * m_longBase / 2.0; >double GetLeftBaseRadianAngle() < double sinX = GetHeight() / m_leftLeg; return Math::Round( Math::Asin( sinX ), 2 ); >double GetRightBaseRadianAngle() < double x = GetRightSmallBase(); double cosX = (Math::Pow( m_rightLeg, 2.0 ) + Math::Pow( x, 2.0 ) - Math::Pow( GetHeight(), 2.0 )) / (2 * x * m_rightLeg); return Math::Round( Math::Acos( cosX ), 2 ); >double GetLeftBaseDegreeAngle() < double x = GetLeftBaseRadianAngle() * 180 / Math::PI; return Math::Round( x, 2 ); >double GetRightBaseDegreeAngle() < double x = GetRightBaseRadianAngle() * 180 / Math::PI; return Math::Round( x, 2 ); >>; int main() < MathTrapezoidSample^ trpz = gcnew MathTrapezoidSample( 20.0,10.0,8.0,6.0 ); Console::WriteLine( "The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0" ); double h = trpz->GetHeight(); Console::WriteLine( "Trapezoid height is: ", h.ToString() ); double dxR = trpz->GetLeftBaseRadianAngle(); Console::WriteLine( "Trapezoid left base angle is: Radians", dxR.ToString() ); double dyR = trpz->GetRightBaseRadianAngle(); Console::WriteLine( "Trapezoid right base angle is: Radians", dyR.ToString() ); double dxD = trpz->GetLeftBaseDegreeAngle(); Console::WriteLine( "Trapezoid left base angle is: Degrees", dxD.ToString() ); double dyD = trpz->GetRightBaseDegreeAngle(); Console::WriteLine( "Trapezoid left base angle is: Degrees", dyD.ToString() ); >
/// /// The following class represents simple functionality of the trapezoid. /// using System; namespace MathClassCS < class MathTrapezoidSample < private double m_longBase; private double m_shortBase; private double m_leftLeg; private double m_rightLeg; public MathTrapezoidSample(double longbase, double shortbase, double leftLeg, double rightLeg) < m_longBase = Math.Abs(longbase); m_shortBase = Math.Abs(shortbase); m_leftLeg = Math.Abs(leftLeg); m_rightLeg = Math.Abs(rightLeg); >private double GetRightSmallBase() < return (Math.Pow(m_rightLeg,2.0) - Math.Pow(m_leftLeg,2.0) + Math.Pow(m_longBase,2.0) + Math.Pow(m_shortBase,2.0) - 2* m_shortBase * m_longBase)/ (2*(m_longBase - m_shortBase)); >public double GetHeight() < double x = GetRightSmallBase(); return Math.Sqrt(Math.Pow(m_rightLeg,2.0) - Math.Pow(x,2.0)); >public double GetSquare() < return GetHeight() * m_longBase / 2.0; >public double GetLeftBaseRadianAngle() < double sinX = GetHeight()/m_leftLeg; return Math.Round(Math.Asin(sinX),2); >public double GetRightBaseRadianAngle() < double x = GetRightSmallBase(); double cosX = (Math.Pow(m_rightLeg,2.0) + Math.Pow(x,2.0) - Math.Pow(GetHeight(),2.0))/(2*x*m_rightLeg); return Math.Round(Math.Acos(cosX),2); >public double GetLeftBaseDegreeAngle() < double x = GetLeftBaseRadianAngle() * 180/ Math.PI; return Math.Round(x,2); >public double GetRightBaseDegreeAngle() < double x = GetRightBaseRadianAngle() * 180/ Math.PI; return Math.Round(x,2); >static void Main(string[] args) < MathTrapezoidSample trpz = new MathTrapezoidSample(20.0, 10.0, 8.0, 6.0); Console.WriteLine("The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0"); double h = trpz.GetHeight(); Console.WriteLine("Trapezoid height is: " + h.ToString()); double dxR = trpz.GetLeftBaseRadianAngle(); Console.WriteLine("Trapezoid left base angle is: " + dxR.ToString() + " Radians"); double dyR = trpz.GetRightBaseRadianAngle(); Console.WriteLine("Trapezoid right base angle is: " + dyR.ToString() + " Radians"); double dxD = trpz.GetLeftBaseDegreeAngle(); Console.WriteLine("Trapezoid left base angle is: " + dxD.ToString() + " Degrees"); double dyD = trpz.GetRightBaseDegreeAngle(); Console.WriteLine("Trapezoid left base angle is: " + dyD.ToString() + " Degrees"); >> >
open System /// The following class represents simple functionality of the trapezoid. type MathTrapezoidSample(longbase, shortbase, leftLeg, rightLeg) = member _.GetRightSmallBase() = (Math.Pow(rightLeg, 2.) - Math.Pow(leftLeg, 2.) + Math.Pow(longbase, 2.) + Math.Pow(shortbase, 2.) - 2. * shortbase * longbase) / (2. * (longbase - shortbase)) member this.GetHeight() = let x = this.GetRightSmallBase() Math.Sqrt(Math.Pow(rightLeg, 2.) - Math.Pow(x, 2.)) member this.GetSquare() = this.GetHeight() * longbase / 2. member this.GetLeftBaseRadianAngle() = let sinX = this.GetHeight() / leftLeg Math.Round(Math.Asin sinX,2) member this.GetRightBaseRadianAngle() = let x = this.GetRightSmallBase() let cosX = (Math.Pow(rightLeg, 2.) + Math.Pow(x, 2.) - Math.Pow(this.GetHeight(), 2.))/(2. * x * rightLeg) Math.Round(Math.Acos cosX, 2) member this.GetLeftBaseDegreeAngle() = let x = this.GetLeftBaseRadianAngle() * 180. / Math.PI Math.Round(x, 2) member this.GetRightBaseDegreeAngle() = let x = this.GetRightBaseRadianAngle() * 180. / Math.PI Math.Round(x, 2) let trpz = MathTrapezoidSample(20., 10., 8., 6.) printfn "The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0" let h = trpz.GetHeight() printfn $"Trapezoid height is: " let dxR = trpz.GetLeftBaseRadianAngle() printfn $"Trapezoid left base angle is: Radians" let dyR = trpz.GetRightBaseRadianAngle() printfn $"Trapezoid right base angle is: Radians" let dxD = trpz.GetLeftBaseDegreeAngle() printfn $"Trapezoid left base angle is: Degrees" let dyD = trpz.GetRightBaseDegreeAngle() printfn $"Trapezoid left base angle is: Degrees"
'The following class represents simple functionality of the trapezoid. Class MathTrapezoidSample Private m_longBase As Double Private m_shortBase As Double Private m_leftLeg As Double Private m_rightLeg As Double Public Sub New(ByVal longbase As Double, ByVal shortbase As Double, ByVal leftLeg As Double, ByVal rightLeg As Double) m_longBase = Math.Abs(longbase) m_shortBase = Math.Abs(shortbase) m_leftLeg = Math.Abs(leftLeg) m_rightLeg = Math.Abs(rightLeg) End Sub Private Function GetRightSmallBase() As Double GetRightSmallBase = (Math.Pow(m_rightLeg, 2) - Math.Pow(m_leftLeg, 2) + Math.Pow(m_longBase, 2) + Math.Pow(m_shortBase, 2) - 2 * m_shortBase * m_longBase) / (2 * (m_longBase - m_shortBase)) End Function Public Function GetHeight() As Double Dim x As Double = GetRightSmallBase() GetHeight = Math.Sqrt(Math.Pow(m_rightLeg, 2) - Math.Pow(x, 2)) End Function Public Function GetSquare() As Double GetSquare = GetHeight() * m_longBase / 2 End Function Public Function GetLeftBaseRadianAngle() As Double Dim sinX As Double = GetHeight() / m_leftLeg GetLeftBaseRadianAngle = Math.Round(Math.Asin(sinX), 2) End Function Public Function GetRightBaseRadianAngle() As Double Dim x As Double = GetRightSmallBase() Dim cosX As Double = (Math.Pow(m_rightLeg, 2) + Math.Pow(x, 2) - Math.Pow(GetHeight(), 2)) / (2 * x * m_rightLeg) GetRightBaseRadianAngle = Math.Round(Math.Acos(cosX), 2) End Function Public Function GetLeftBaseDegreeAngle() As Double Dim x As Double = GetLeftBaseRadianAngle() * 180 / Math.PI GetLeftBaseDegreeAngle = Math.Round(x, 2) End Function Public Function GetRightBaseDegreeAngle() As Double Dim x As Double = GetRightBaseRadianAngle() * 180 / Math.PI GetRightBaseDegreeAngle = Math.Round(x, 2) End Function Public Shared Sub Main() Dim trpz As MathTrapezoidSample = New MathTrapezoidSample(20, 10, 8, 6) Console.WriteLine("The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0") Dim h As Double = trpz.GetHeight() Console.WriteLine("Trapezoid height is: " + h.ToString()) Dim dxR As Double = trpz.GetLeftBaseRadianAngle() Console.WriteLine("Trapezoid left base angle is: " + dxR.ToString() + " Radians") Dim dyR As Double = trpz.GetRightBaseRadianAngle() Console.WriteLine("Trapezoid right base angle is: " + dyR.ToString() + " Radians") Dim dxD As Double = trpz.GetLeftBaseDegreeAngle() Console.WriteLine("Trapezoid left base angle is: " + dxD.ToString() + " Degrees") Dim dyD As Double = trpz.GetRightBaseDegreeAngle() Console.WriteLine("Trapezoid left base angle is: " + dyD.ToString() + " Degrees") End Sub End Class
Комментарии
Значение этого поля — 3,1415926535897931.
Число пи в с как ввести
Альфу ?
PI:
1. http://www.google.com.ua/search?q=PI странно не так ли ?
2.
const double PI = 3.14159265;
ну вариации объявления различны: другой тип, макросы и т.п.
p.s. а еще страннее если ввести в гугле «PI C++»
Форумчанин
Регистрация: 03.01.2010
Сообщений: 229
ногу приподнять и обозначить, что вот сдесь пи
Студент 1 курса
Форумчанин Подтвердите свой е-майл
Регистрация: 27.06.2008
Сообщений: 959
Сообщение от liljon
ногу приподнять и обозначить, что вот сдесь пи
const double PI = 3.1415926535897932384626433832795
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer