Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Сечение в пирамиде (графика)

Автор: Edison 28.11.2008 17:10

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

Автор: volvo 28.11.2008 17:19

Поиском, разумеется, не пользовался, иначе нашел бы тему, в которой разжевывалось до неприличия, как построить сечение пирамиды. Так что http://forum.pascal.net.ru/index.php?act=Search&f=12 с ключевыми словами +пирами* +сечен* и небольшая доработка приведенного кода под свое задание.

P.S. Кстати, что в твоем понимании "середина бокового угла"?

Автор: pan 28.11.2008 18:31

program z1;
uses graph;
var driver,mode:integer;
begin
driver:=detect; initgraph(driver,mode,'C:\TP\BGI');
setcolor(white);
setbkcolor(black);
{Пирамида}
line(200,100,250,30);
line(200,100,250,140);
line(300,100,250,30);
line(300,100,250,140);
line(250,30,250,140);
setlinestyle(2,2,2);
line(200,100,300,100);
{Сечение}
setcolor(red);
line(200,100,275,60);
line(250,140,275,60);
line(203,104,275,66);
line(207,107,275,72);
line(212,111,269,83);
line(217,115,266,92);
line(222,119,262,101);
line(229,122,260,109);
line(235,126,258,117);
line(239,130,256,124);
line(243,134,254,132);
{Буквы}
outtextxy(188,100,'A');
outtextxy(305,100,'D');
outtextxy(248,20,'B');
outtextxy(278,53,'C');
outtextxy(248,145,'E');
readln;
closegraph;
end.


в технаре почти такую же делал задачу, только у меня пирамида 3 угольная, тебе только остается код изменить и всё

М
Просьба при публикации программного текста использовать теги кода.
Lapp


Автор: volvo 28.11.2008 18:48

Цитата
только у меня пирамида 3 угольная, тебе только остается код изменить и всё
Ага... А если мне в твоей треугольной пирамиде захочется увеличить высоту в 2 раза, то мне придется только все точки пересчитать, потом код изменить, и все, да? Хорошая программа... Полезная, главное. Ничего делать не надо, только код изменить и все...

Вот тогда программа-универсал. Решает вообще любую задачу:
uses graph;
var driver, mode, errcode: integer;
begin
driver:=detect;
initgraph(driver,mode,'');
errcode := graphresult;
if errcode = grOk then begin
{ ... Сюда только код добавить, и все }
readln;
closegraph;
end
else writeln('graphics error:', grapherrormsg(errcode));
end.

Автор: Lapp 29.11.2008 12:01

Цитата(pan @ 28.11.2008 14:31) *
тебе только остается код изменить и всё

2 volvo: нет, твоя программа не самая универсальная. Моя лучше:
// в этом месте изменить код

Она годится и для Pascal, и для С, а также С++, PHP и многих других языков.

Но, впрочем, я согласен, что программа pan'а тоже вполне успешно решает все задачи на свете и готов признать за ним первенство. В связи с этим возникает вопрос о смысле дальнейшего существования Форума, который становится, похоже, абсолютно бесполезным..

М
В виду публикации гениалной программы pan'а, решающей ВСЕ ПРОГРАММЕРСКИЕ ЗАДАЧИ НА СВЕТЕ, вносится предложение по ЗАКРЫТИЮ ФОРУМА



Объявляется Референдум. Просьба ко всем заинтересованным лицам высказаться по этому вопросу. Решение (о переносе этой темы в раздел Юмор) будет принято по результатам референдума.

lol.gif - lol.gif - lol.gif