как сделать программку через паскаль авс чтоб высчитывала объём и площадь
Как сделать программу через паскаль авс чтобы высчитывала объём и площадь пиромиды
помогите пожалуйста
1 ответ
Владислав Тютюнжиев
Код не мой, не знаю, на счет корректности,
Var S: real;
x: Array [1..5] of Real;
y: Array [1..5] of Real;
z: Array [1..5] of Real;
i,n,m: Integer;
процедура вычисления площади треугольника
procedure plosh(x_1,y_1,z_1,x_2,y_2,z_2,x_3,y_3,z_3:real);
var
a,b,c,p,t:real;
begin
a:=sqrt(sqr(y_2-y_3)+sqr(x_2-x_3)+sqr(z_2-z_3));
b:=sqrt(sqr(y_1-y_3)+sqr(x_1-x_3)+sqr(z_1-z_3));
c:=sqrt(sqr(y_1-y_2)+sqr(x_1-x_2)+sqr(z_1-z_2));
p:=(a+b+c)/2;
t:=p*sqrt((p-a)*(p-b)*(p-c));
end;
заносим в массив координаты вершин
for i:=1 to 5 do
begin
if i:=1 or 5 then
begin
write('X',i,' -gt; '); readln(x[i]);
write('Y',i,' -gt; '); readln(y[i]);
write('Z',i,' -gt; '); readln(z[i]);
end;
else
begin
write('X',i,' -gt; '); readln(x[i]);
write('Y',i,' -gt; '); readln(y[i]);
z[i]:=z[1]
writeln;
end;
end;
end;
начинаем перебор всех вариантов сочетания вершин, творящих треугольник
for i:=1 to 5 do
for n:=1 to 5 do
for m:=1 to 5 do
begin
if ((ilt;gt;n) and ((nlt;gt;m) and (ilt;gt;m))) then
begin
plosh(x[i],y[i],z[i],x[n],y[n],z[n],x[m],y[m],z[m]);
end;
end;
Var S: real;
x: Array [1..5] of Real;
y: Array [1..5] of Real;
z: Array [1..5] of Real;
i,n,m: Integer;
процедура вычисления площади треугольника
procedure plosh(x_1,y_1,z_1,x_2,y_2,z_2,x_3,y_3,z_3:real);
var
a,b,c,p,t:real;
begin
a:=sqrt(sqr(y_2-y_3)+sqr(x_2-x_3)+sqr(z_2-z_3));
b:=sqrt(sqr(y_1-y_3)+sqr(x_1-x_3)+sqr(z_1-z_3));
c:=sqrt(sqr(y_1-y_2)+sqr(x_1-x_2)+sqr(z_1-z_2));
p:=(a+b+c)/2;
t:=p*sqrt((p-a)*(p-b)*(p-c));
end;
заносим в массив координаты вершин
for i:=1 to 5 do
begin
if i:=1 or 5 then
begin
write('X',i,' -gt; '); readln(x[i]);
write('Y',i,' -gt; '); readln(y[i]);
write('Z',i,' -gt; '); readln(z[i]);
end;
else
begin
write('X',i,' -gt; '); readln(x[i]);
write('Y',i,' -gt; '); readln(y[i]);
z[i]:=z[1]
writeln;
end;
end;
end;
начинаем перебор всех вариантов сочетания вершин, творящих треугольник
for i:=1 to 5 do
for n:=1 to 5 do
for m:=1 to 5 do
begin
if ((ilt;gt;n) and ((nlt;gt;m) and (ilt;gt;m))) then
begin
plosh(x[i],y[i],z[i],x[n],y[n],z[n],x[m],y[m],z[m]);
end;
end;
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов