M=ρ×V; V=a²×h/3; m=a²×h×ρ/3, где a - длина основания пирамиды, м; h - высота пирамиды, м; ρ - плотность материала пирамиды, кг/м³. Функция "масса пирамиды" будет иметь три параметра: mp(a,h,ρ)=a²×h×ρ/3000 и возвращать массу пирамиды в тоннах.
1. Современный вариант программы
// PascalABC.NET 3.3, сборка 1607 от 31.12.2017 // Внимание! Если программа не работает, обновите версию!
begin var mp:function(p1,p2,p3:real):real:=(a,h,ρ)->a**2*h*ρ/3000; var am:=Arr(232.0,215.0,108.0); var ah:=Arr(147.0,143.0,66.0); var ρ:=2300.0; for var i:=0 to 2 do Writeln('Масса пирамиды ',i+1,' (',am[i],'×',am[i],'×',ah[i],') = ', mp(am[i],ah[i],ρ):0:0,' т') end.
Результат Масса пирамиды 1 (232×232×147) = 6065965 т Масса пирамиды 2 (215×215×143) = 5067801 т Масса пирамиды 3 (108×108×66) = 590198 т
2. Вариант программы для диалектов Free Pascal и Pascal ABC
a - длина основания пирамиды, м;
h - высота пирамиды, м;
ρ - плотность материала пирамиды, кг/м³.
Функция "масса пирамиды" будет иметь три параметра: mp(a,h,ρ)=a²×h×ρ/3000 и возвращать массу пирамиды в тоннах.
1. Современный вариант программы
// PascalABC.NET 3.3, сборка 1607 от 31.12.2017
// Внимание! Если программа не работает, обновите версию!
begin
var mp:function(p1,p2,p3:real):real:=(a,h,ρ)->a**2*h*ρ/3000;
var am:=Arr(232.0,215.0,108.0);
var ah:=Arr(147.0,143.0,66.0);
var ρ:=2300.0;
for var i:=0 to 2 do
Writeln('Масса пирамиды ',i+1,' (',am[i],'×',am[i],'×',ah[i],') = ',
mp(am[i],ah[i],ρ):0:0,' т')
end.
Результат
Масса пирамиды 1 (232×232×147) = 6065965 т
Масса пирамиды 2 (215×215×143) = 5067801 т
Масса пирамиды 3 (108×108×66) = 590198 т
2. Вариант программы для диалектов Free Pascal и Pascal ABC
type
Arr=array[1..3] of real;
const
rho=2300.0;
am:Arr=(232.0,215.0,108.0);
ah:Arr=(147.0,143.0,66.0);
function mp(a,h, rho:real):real;
begin
mp:=a*a*h*rho/3000
end;
var
i:integer;
begin
for i:=1 to 3 do
Writeln('Масса пирамиды ',i,' (',am[i],'×',am[i],'×',ah[i],') = ',
mp(am[i],ah[i],rho):0:0,' т')
end.
var n: extended;
var x: extended;
var s: extended;
var f: extended;
var t: extended;
begin
{ вводим значения }
writeln('Enter n:'); readln(n);
if n > 0 then begin
{ номер последовательности }
x := ceil((sqrt(1.0 + 4.0 { 8.0 } * n) - 1.0) / 2.0);
{ количество элементов всех последовательностей }
s := x + x*x;
{ s := s / 2; }
{ относительный номер элемента в последовательности }
f := x * 2 - (s - n);
if f <= x then begin
t := 1 + x - f;
end;
if f > x then begin
t := f - x;
end;
{ выводим результат }
writeln('t = ', t);
{ задержка }
readln(n);
end;
end.