![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Шушпанчик |
![]() ![]()
Сообщение
#1
|
Гость ![]() |
Вообщем задача сформулирована следующим образом:
"Написать программу нахождения площади поверхности пирамиды по координатам ее вершин. Подготовить и использовать процедуру определения площади треугольника по известным вершинам". Задача простенькая с математической и логической т.з., но вот как её описывать в паскале - напрочь забыто. Желательно использовать базовый инструментарий, такой как: линейные, разветвляющиеся и циклические алгоритмы, массивы, процедуры и функции. Заранее большое человеческое спасибо! :p2: |
![]() ![]() |
Guest |
![]()
Сообщение
#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; |
![]() ![]() |
![]() |
Текстовая версия | 11.09.2025 0:24 |