выбрать три точки заданного на плоскости множества точек, составляющие треугольник наибольшего периметра.
Помогите, пожалуйста! Буду очень благодарна и мысленно пошлю пакет пряников))
Другие языки программирования и технологии
Паскаль. Помогите решить
Ну, помогите, это не решите, да и пряники хочется не мысленно, но помогу.
Пусть у вас массив mx : array[1..10] of Integer; массив точек с координатой x а
my : array[1..10] of Integer; массив точек с координатой y
чтобы перебрать каждую точку с другой, нам необходимо брать 1 из списка + другую и + третью, притом нельзя брать точку уже взяту, так что сделаем цикл который будет брать одну из 10 точек в нем цикл перебирающий другие точки (2 точка треугольника) и 3 цикл (3 точка)
permax := 0; {максимальный периметр}
for i:=1 to 10 do
for j:=1 to 10 do
for k:=1 to 10 do
begin
if (j<>i) and (k<>i) and (j<>k) then
begin
{периметр вычислим}
P := {некогда счас, а вычисляется просто использую теорему пифогора}
if P > permax then
begin {если нашли треугольник наибольшего периметра}
m1x := mx[ i ];
m1y := my[ i ];
m2x := mx[j];
m2y := my[j];
m3x := mx[k];
m3y := my[k];
end;
end;
end;
{а здесь выводим точки найденные и периметр}
Удачи!
Дурацкий мэйл плохо работает с кодом, так что проверь что он здесь написал
Пусть у вас массив mx : array[1..10] of Integer; массив точек с координатой x а
my : array[1..10] of Integer; массив точек с координатой y
чтобы перебрать каждую точку с другой, нам необходимо брать 1 из списка + другую и + третью, притом нельзя брать точку уже взяту, так что сделаем цикл который будет брать одну из 10 точек в нем цикл перебирающий другие точки (2 точка треугольника) и 3 цикл (3 точка)
permax := 0; {максимальный периметр}
for i:=1 to 10 do
for j:=1 to 10 do
for k:=1 to 10 do
begin
if (j<>i) and (k<>i) and (j<>k) then
begin
{периметр вычислим}
P := {некогда счас, а вычисляется просто использую теорему пифогора}
if P > permax then
begin {если нашли треугольник наибольшего периметра}
m1x := mx[ i ];
m1y := my[ i ];
m2x := mx[j];
m2y := my[j];
m3x := mx[k];
m3y := my[k];
end;
end;
end;
{а здесь выводим точки найденные и периметр}
Удачи!
Дурацкий мэйл плохо работает с кодом, так что проверь что он здесь написал
Мысленно засунь себе в задницу этот пакет пряников. И объясни в чём твои проблемы: ты вообще не знаешь pascal или не понимаешь как расчитать расстояние между двумя точками и проверить не находятся ли три точки на одной прямой? Или ты вообще дуб-дерево-хвойное?
Похожие вопросы
- кто нибудь знает турбо паскаль?помогите решить!выручайте,срочно надо!
- Знатоки Турбо Паскаля, помогите решить задачки для 7-го класса. Дочке очень нужно.
- Помогите решить задачу на Турбо паскале
- Помогите решить задачи по Паскалю
- помогите решить задачу на паскале: напечатать "столбиком" значения sin2, sin3, ..sin 20.
- Помогите решить программу в паскале)
- Помогите решить, пожалуста (ТУрбо Паскаль)
- Помогите решить задачу на паскале
- Помогите решить задачу в паскале. Задание: Заменить в строке все вхождения "да" на "нет".
- Помогите решить задачу Паскаль
permax := P; {а то неправильно считать будет}