IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Найти площадь пирамиды, требуется простенькое решение
Шушпанчик
сообщение 19.10.2004 18:03
Сообщение #1


Гость






Вообщем задача сформулирована следующим образом:

"Написать программу нахождения площади поверхности пирамиды по координатам ее вершин. Подготовить и использовать процедуру определения площади треугольника по известным вершинам".

Задача простенькая с математической и логической т.з., но вот как её описывать в паскале - напрочь забыто.
Желательно использовать базовый инструментарий, такой как: линейные, разветвляющиеся и циклические алгоритмы, массивы, процедуры и функции.

Заранее большое человеческое спасибо! :p2:
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Guest
сообщение 19.10.2004 21:25
Сообщение #2


Гость






Ладно, делать нечего, придётся ради сохранения собственных нервных клеток сокращать сущности, а то так придётся из примитивной курсовой диссертацию писать. ;)

Вообщем попробуем сузить круг условий: пирамида имеет пять вершин.

Но и тогда у меня возникают непонятки.
Во-первых, если измерять площадь всех сочетаний, то тогда, как правильно сказал Amro, возникает перебор с количеством необходимых площадей. Как реализовывать правильную калькуляцию площадей краней?
Во-вторых, как реализовывать выбор вершины, которая не лежит в основании. Наверное придётся тупо указывать z[2-4] значение, равное z[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,' -> '); readln(x[i]);
   write('Y',i,' -> '); readln(y[i]);
   write('Z',i,' -> '); readln(z[i]);
  end;
 else
  begin
   write('X',i,' -> '); readln(x[i]);
   write('Y',i,' -> '); 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 ((i<>n) and ((n<>m) and (i<>m))) then
 begin
plosh(x[i],y[i],z[i],x[n],y[n],z[n],x[m],y[m],z[m]);
 end;
end;
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Шушпанчик   Найти площадь пирамиды   19.10.2004 18:03
Amro   А число вершин может быть любым??? т.е оно тоже за...   19.10.2004 18:27
Amro   Процедуру вычисления площади треугольника по коорд...   19.10.2004 18:39
GoodWind   Amro, если не ошибаюсь, пирамида - трехмерный объе...   19.10.2004 18:48
Amro   GoodWind Так точно!!!! ошибочка вы...   19.10.2004 18:55
GoodWind   ну не в армии же : ) а кол-во граней, если мне не...   19.10.2004 19:03
Amro   GoodWind В принципе кол-во граней в этой задаче н...   19.10.2004 19:08
GoodWind   площадь трехмерной фигуры - сумма площадей всех е...   19.10.2004 19:55
Amro   Ну это само собой!!! Просто я о чём ...   19.10.2004 20:12
GoodWind   да, мой косяк...мне на ночь глядя показалось, что...   19.10.2004 20:28
Amro   Ещё одно но о том же дне ... там мадо найти тоже ...   19.10.2004 20:36
GoodWind   я думаю делить на две части, и каждую часть на 2 ч...   19.10.2004 20:40
Guest   Ладно, делать нечего, придётся ради сохранения соб...   19.10.2004 21:25
volvo   Вот так: программа вычисляет площадь пирамиды п...   20.10.2004 0:11
Guest   Вообщем вот полный код. Проблема в одном : после ...   20.10.2004 13:54
volvo   можешь дать мне координаты всех вершин ?   20.10.2004 14:02
zx1024   Это не площадь 4-угольника. s := s + Plosh(x[1], ...   20.10.2004 14:33
zx1024   После минутных размышлений... Не всегда можно сраз...   20.10.2004 14:44
Atos   Была недавно в чём-то похожая тема http://pascalne...   20.10.2004 14:55
volvo   Так в случае выпуклого основания проблемы нет. А в...   20.10.2004 14:58
Atos   Наверное, следует уточнить условие... Имхо, всё-та...   20.10.2004 15:13
Amro   Видать придётся!!! Вообщето другого ...   20.10.2004 15:14
volvo   Если это действительно только выпуклый многоугол...   20.10.2004 15:31
zx1024   Только задавать вершины основания придётся в одно...   20.10.2004 23:21
volvo   zx1024 Мне это казалось само собой разумеющимся......   20.10.2004 23:34
Amro   volvo Гений!!! Админы должны прибавлят...   20.10.2004 23:49
Guest   volvo: ну к примеру я взял такие : 1 - (1,1,1); 2...   21.10.2004 9:39
volvo   Сделал динамическое распределение вершин... Програ...   21.10.2004 12:23


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 29.07.2025 22:31
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"