Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2016, 10:59   #1
votsar
Пользователь
 
Регистрация: 27.11.2015
Сообщений: 22
По умолчанию Помогите отладить программу.Даны координаты вершин нескольких треугольников.

Даны координаты вершин нескольких треугольников. Определить номер треугольника, имеющего наибольшую высоту.

Код:
program noname;
uses Crt;
const nmax=20;
function MaxH(var p,s,a,b,c,da,db,dc,mn,ax,ay,bx,by,cx,cy:Real):Real ;
begin
p:=(a+b+c)/2;
S:=sqrt(p*(p-a)*(p-b)*(p-c));
{найдем длины сторон}
da:=sqrt(sqr(ax-bx)+sqr(ay-by));
db:=sqrt(sqr(bx-cx)+sqr(by-cy));
dc:=sqrt(sqr(cx-ax)+sqr(cy-ay));
{найдем меньшую сторону, высота к ней наибольшая}
if da<db then mn:=da else mn:=db;
if dc<mn then mn:=dc;
MaxH:=s/mn;{значение высоты}
end;
var ax,ay,bx,by,cx,cy,dx,dy,ex,ey,fx,fy:real;a,b,c,d,e ,f:Real;
t:array[1..nmax] of integer;
n,i,imx:byte;
mx:real;
H:integer;
begin
ClrScr;
repeat
write('Kol-vo treug-ov do ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Vvedite koordinati vershin treug-ov:');
for i:=1 to n do
begin
writeln('treug-k ',i);
writeln('vershina 1:');
readln(ax,ay);
writeln('vershina 2:');
readln(bx,by);
writeln('vershina 3:');
readln(cx,cy);
H:=MaxH(?????????);
end;
mx:=h1;
imx:=1;
for i:=1 to n do
if h[i]>mx then
begin
mx:=h[i];
imx:=i;
end;
writeln;
write('naibolshaya visota=',mx,' v treug-ke nomer',imx);
end;
Readln;
end.
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 02.03.2016 в 11:15.
votsar вне форума Ответить с цитированием
Старый 02.03.2016, 11:13   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Даже что-то проверять-улучшать неохота.
У вас что за параметры у функции, и почему так много ?
Код:
function MaxH(var p,s,a,b,c,da,db,dc,mn,ax,ay,bx,by,c x,cy:Real):Real ;
Там вроде - и длины , и какие-то координаты.
И что там делается - непонятно.
Вроде сначала по формуле Герона - по известным сторонам ищется площадь.
Потом почему -то ищутся эти самые стороны .
Фигня какая-то. Вы с геометрией сначала разберитесь.

Цитата:
Сообщение от votsar Посмотреть сообщение
Даны координаты вершин нескольких треугольников...
Вот и делайте функцию - вводите координаты, возвращаете макс. из высот.
type_Oleg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модули: Даны координаты вершин двух треугольников. Определить, какой из них имеет большую площадь veronika55214 Паскаль, Turbo Pascal, PascalABC.NET 2 27.03.2014 09:03
В компьютер вводятся координаты х и у вершин двух треугольников. Составить программу, определяющую их конгруэнтность YorikBir Паскаль, Turbo Pascal, PascalABC.NET 11 07.12.2011 13:26
Составить программу, выводящую на экран координаты вершин треугольников (Паскаль) crocodile Фриланс 5 27.01.2010 19:25
составить программу выводящую на экран координаты вершин треугольников BlackPanther Паскаль, Turbo Pascal, PascalABC.NET 1 05.12.2008 19:13
Паскаль. Сравнение на подобность треугольников. Координаты вершин в матрице. Jondeer Помощь студентам 3 07.11.2007 07:31