FAQ VCL
Математика

:: Меню ::
:: На главную ::
:: FAQ ::
:: Заметки ::
:: Практика ::
:: Win API ::
:: Проекты ::
:: Скачать ::
:: Секреты ::
:: Ссылки ::

:: Сервис ::
:: Написать ::

:: MVP ::

:: RSS ::

Яндекс.Метрика

Как найти сумму n членов ряда натуральных чисел?

// Способ первый
function Summ(AFrom, ATo: Integer): Integer;
// AFrom - первый член ряда натуральных чисел
// ATo   - последний член ряда натуральных чисел
// n     - количество членов ряда натуральных чисел
var
  i: Integer;
begin
  Result := 0;
  for i := AFrom to ATo do
    Inc(Result, i);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(IntToStr(Summ(3, 5))); // 12
end;

// Способ второй
function Summ(AFrom, ATo: Integer): Integer;
// (AFrom + ATo) * n
// -----------------
//        2
// AFrom - первый член ряда натуральных чисел
// ATo   - последний член ряда натуральных чисел
// n     - количество членов ряда натуральных чисел
var
  n: Integer;
begin
  n := ATo - AFrom + 1;
  Result := (AFrom + ATo) * n div 2;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(IntToStr(Summ(3, 5))); // 12
end;

// Способ третий
function Summ(AFrom, ATo: Integer): Integer;
// (AFrom + ATo) * (ATo - AFrom + 1)
// ---------------------------------
//               2
// AFrom - первый член ряда натуральных чисел
// ATo   - последний член ряда натуральных чисел
begin
  Result := ((AFrom + ATo) * (ATo - AFrom + 1)) div 2;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(IntToStr(Summ(3, 5))); // 12
end;


Как решить уравнение вида x-(1/x)=c?

// a1 = c/2
// a2 = a1^2
// a3 = 1+a2
// a4 = a3^(1/2)
//
// x   = a4+a1
// 1/x = a4-a1
function CalcFunction(c: Double): Double;
var
  a1, a2, a3, a4: Double;
begin
  a1 := c / 2;
  a2 := Sqr(a1);
  a3 := 1 + a2;
  a4 := Sqrt(a3);
  Result := a4 + a1;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  x: Double;
begin
  x := CalcFunction(108);
  ShowMessage(FloatToStr(x));
  // Проверка
  x := x - (1 / x);
  ShowMessage(FloatToStr(x));
end;


Как вычислить площадь поверхности тетраэдра по известной длине ребра?

uses
  Math;

// S = a^2 * Sqrt(3)
function GetSurfaceAreaOfTetrahedron(Edge: Extended): Extended;
begin
  Result := Power(Edge, 2) * Sqrt(3);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(FloatToStr(GetSurfaceAreaOfTetrahedron(1)));
end;


Как вычислить объем тетраэдра по известной длине ребра?

uses
  Math;

// V = (a^3 * Sqrt(2)) / 12
function GetVolumeOfTetrahedron(Edge: Extended): Extended;
begin
  Result := (Power(Edge, 3) * Sqrt(2)) / 12;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(FloatToStr(GetVolumeOfTetrahedron(1)));
end;


Как вычислить площадь поверхности куба по известной длине ребра?

uses
  Math;

// S = 6 * a^2
function GetSurfaceAreaOfCube(Edge: Extended): Extended;
begin
  Result := 6 * Power(Edge, 2);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(FloatToStr(GetSurfaceAreaOfCube(1)));
end;


Как вычислить объем куба по известной длине ребра?

uses
  Math;

// V = a^3
function GetVolumeOfCube(Edge: Extended): Extended;
begin
  Result := Power(Edge, 3);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(FloatToStr(GetVolumeOfCube(1)));
end;


Как вычислить площадь поверхности октаэдра по известной длине ребра?

uses
  Math;

// S = 2 * Sqrt(3) * a^2
function GetSurfaceAreaOfOctahedron(Edge: Extended): Extended;
begin
  Result := 2 * Sqrt(3) * Power(Edge, 2);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(FloatToStr(GetSurfaceAreaOfOctahedron(1)));
end;


Как вычислить объем октаэдра по известной длине ребра?

uses
  Math;

// V = (Sqrt(2) / 3) * a^3
function GetVolumeOfOctahedron(Edge: Extended): Extended;
begin
  Result := (Sqrt(2) / 3) * Power(Edge, 3);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(FloatToStr(GetVolumeOfOctahedron(1)));
end;


Как вычислить площадь поверхности додекаэдра по известной длине ребра?

uses
  Math;

// S = 3 * Sqrt(25 + 10 * Sqrt(5)) * a^2
function GetSurfaceAreaOfDodecahedron(Edge: Extended): Extended;
begin
  Result := 3 * (Sqrt(25 + 10 * Sqrt(5))) * Power(Edge, 2);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(FloatToStr(GetSurfaceAreaOfDodecahedron(1)));
end;


Как вычислить объем додекаэдра по известной длине ребра?

uses
  Math;

// V = (15 + 7 * Sqrt(5)) / 4 * a^3
function GetVolumeOfDodecahedron(Edge: Extended): Extended;
begin
  Result := ((15 + 7 * Sqrt(5)) / 4) * Power(Edge, 3);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(FloatToStr(GetVolumeOfDodecahedron(1)));
end;