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
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![]() ![]() |
|
Текстовая версия | 13.12.2025 18:42 |