помогите с задачей
нужно вывести на экран треугольник с максимальным периметром.все это на паскале с использованием собственного модуля. наработки есть но не работают циклы когда я начинаю перебирать координаты точек, почему не знаю. пожалуйста пишите по san-910@mail.ru или в аську 448726925 я ни че в этом не шарю
Дай свой исходник. Посмотрю, что можно сделать.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
На чём тебе нужно я и так прочитал. Давай исходник. Если надо на паскале, на нём и попробую сделать. И не понимай мою подпись слишком буквально.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
[syntax="pascal"]
function dlina (x1,x2,y1,y2:integer):real;
var s:real;
begin
if (x1<>x2) or (y1<>y2) then s:=sqrt(sqr(x1-x2)+sqr(y1-y2));
dlina:=s;
end;
function perimetr (x1,x2,x3,y1,y2,y3:integer):real;
var p:real;
begin
if ((x1<>x2) and (x1<>x3)) and ((y1<>y2) and (y1<>y3)) then
p:=dlina(x1,x2,y1,y2)+dlina(x1,x3,y1,y3)+dlina(x2,x3,y2,y3);
perimetr:=p;
end;
procedure proverka (perimetr:real);
var Pmax:real;
Xmax1,Xmax2,Xmax3,Ymax1,Ymax2,Ymax3:integer;
begin
Pmax:=0;
if perimetr>Pmax them begin
Pmax:=perimetr;
Ymax1:=y1;
Ymax2:=y2;
Ymax3:=y3;
Xmax1:=x1;
Xmax2:=x2;
Xmax3:=x3;
end;
begin
как сделать так что бы x1,x2,x3,y1,y2,y3 начали присваиваться координаты каждой координаты пикселя в паскале

proverka;
end;
[/syntax]
function dlina (x1,x2,y1,y2:integer):real;
var s:real;
begin
if (x1<>x2) or (y1<>y2) then s:=sqrt(sqr(x1-x2)+sqr(y1-y2));
dlina:=s;
end;
function perimetr (x1,x2,x3,y1,y2,y3:integer):real;
var p:real;
begin
if ((x1<>x2) and (x1<>x3)) and ((y1<>y2) and (y1<>y3)) then
p:=dlina(x1,x2,y1,y2)+dlina(x1,x3,y1,y3)+dlina(x2,x3,y2,y3);
perimetr:=p;
end;
procedure proverka (perimetr:real);
var Pmax:real;
Xmax1,Xmax2,Xmax3,Ymax1,Ymax2,Ymax3:integer;
begin
Pmax:=0;
if perimetr>Pmax them begin
Pmax:=perimetr;
Ymax1:=y1;
Ymax2:=y2;
Ymax3:=y3;
Xmax1:=x1;
Xmax2:=x2;
Xmax3:=x3;
end;
begin
как сделать так что бы x1,x2,x3,y1,y2,y3 начали присваиваться координаты каждой координаты пикселя в паскале


proverka;
end;
[/syntax]
и с графикой не разберусь че делать, как потом вывести его на экран монитора





Код: Выделить всё
function dlina (x1,x2,y1,y2:integer):real;
begin
dlina:=sqrt(sqr(x1-x2)+sqr(y1-y2));
end;
function perimetr (x1,x2,x3,y1,y2,y3:integer):real;
begin
perimetr:=dlina(x1,x2,y1,y2)+dlina(x1,x3,y1,y3)+dlina(x2, x3,y2,y3);
end;
procedure proverka (perimetr:real);
var Pmax:real;
Xmax1,Xmax2,Xmax3,Ymax1,Ymax2,Ymax3:integer;
begin
Pmax:=0;
if perimetr>Pmax them begin
Pmax:=perimetr;
Ymax1:=y1;
Ymax2:=y2;
Ymax3:=y3;
Xmax1:=x1;
Xmax2:=x2;
Xmax3:=x3;
end;
begin
for x1:=0 to 639 do
for x2:=0 to 639 do
for x3:=0 to 639 do
for y1:=0 to 479 do
for y2:=0 to 479 do
for y3:=0 to 479 do
proverka(perimetr(x1,x2,x3,y1,y2,y3)) ;
end;
Код: Выделить всё
, [/ code] без пробелов и форматируй код пробелами.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
[code]
uses Crt, Graph;
var
grMode, grDriver: Integer;
x1,x2,x3,y1,y2,y3:integer;
Pmax:real;
Xmax1,Xmax2,Xmax3,Ymax1,Ymax2,Ymax3:integer;
function dlina (x1,x2,y1,y2:integer):real;
begin
dlina:=sqrt(sqr(x1-x2)+sqr(y1-y2));
end;
function perimetr (x1,x2,x3,y1,y2,y3:integer):real;
begin
perimetr:=dlina(x1,x2,y1,y2)+dlina(x1,x3,y1,y3)+dlina(x2, x3,y2,y3);
end;
procedure proverka (perimetr:real);
begin
Pmax:=0;
if perimetr>Pmax them begin
Pmax:=perimetr;
Ymax1:=y1;
Ymax2:=y2;
Ymax3:=y3;
Xmax1:=x1;
Xmax2:=x2;
Xmax3:=x3;
end;
begin
grDriver:=0;
grMode:=0;
InitGraph(grDriver, grMode, '');
ang := 1; m := 100;
for x1:=0 to 639 do
for x2:=0 to 639 do
for x3:=0 to 639 do
for y1:=0 to 479 do
for y2:=0 to 479 do
for y3:=0 to 479 do
proverka(perimetr(x1,x2,x3,y1,y2,y3)) ;
MoveTo(x1,y1);
LineTo(x2,y2);
LineTo(x3,y3);
LineTo(x1,y1);
repeat until KeyPressed;
CloseGraph;
end.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".