Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        На определение треугольника
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Одна страница
Модераторы: paradise, KMA
  

FamouZ



Новичок

Определить, существует ли треугольник с заданными целочисленными длинами сторон а, в, с. Если да, то определить тип треугольника - остроугольный, тупоугольный или прямоугольный.
А вот та кодировка которую я составил, но в чём-то присутствует ошибка, когда я ввожу стороны любые какие я бы не ввёл, выдаёт сообщение об ошибки или же что треугольник не существует...помогите разобраться
program treygolnichek;
var x,y,z,m,n,p,x1,x2,y1,y2,l1,l2,l3,c:real;
begin
 write ('x= ');readln (x);
 write ('y= ');readln (y);
 write ('z= ');readln (z);
 write ('m= ');readln (m);
 write ('n= ');readln (n);
 write ('p= ');readln (p);
 if (x>0) and (y>0) and (z>0) then
begin
 if (x+y>=z) and (x+z>=y) and (y+z>=x) then
begin
l1:=sqrt(sqr((x1-x2))+(sqr(y1-y2)));
l2:=sqrt(sqr((x1-x2))+(sqr(y1-y2)));
l3:=sqrt(sqr((x1-x2))+(sqr(y1-y2)));
c:=(sqr(l1)+sqr(l2)-sqr(l3))/(2*l1*l2);{cosinus naibolshego ygla}
   if abs(c)<1e-10 then writeln('treugolnik pryamougolnyj')
   else if c>0 then writeln('treugolnik ostrougolnyj') {ECJIu cos>0, To ygol Menbshe 90 gradusov}
   else if c<0 then writeln('treugolnik tupougolnyj');{boJIshe 90 gradusov}
 readln;
 end
else
writeln('Treygolnik ne sushestvuet"');
end
else
writeln('Treygolnik ne sushestvuet');
end.



(Сообщение отредактировал FamouZ 29 нояб. 2010 19:31)

-----
Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать.

Всего сообщений: 1 | Присоединился: ноябрь 2010 | Отправлено: 29 нояб. 2010 12:30 | IP
paradise


Долгожитель

program treygolnichek;
var x,y,z,mx,mn,c,sr:real;
begin
  cls;
// считываем длины сторон
  write ('x= ');readln (x);
  write ('y= ');readln (y);
  write ('z= ');readln (z);
// проверяем их на положительность
  if (x>0) and (y>0) and (z>0) then
  begin
  if (x+y<=z) or (x+z<=y) or (y+z<=x) then
  begin
     writeln('Треугольник не существет);
  end
  else
  begin
       mx:=x;  // находим наибольшую сторону
       if y>mx then mx:=y;
       if z>mx then mx:=z;
       mn:=x;  // находим наименьшую сторону
       if y<mn then mn:=y;
       if z<mn then mn:=z;
       sr:=x+y+z-mx-mn; // находим оставшуюся сторону
       c:=(mn*mn+sr*sr-mx*mx)/(2*mn*sr); // cos наибольшего угла
       if abs(c)<1e-10 then writeln('Треугольник прямоугольный')
       else if c>0 then writeln('Треугольник остроугольный') // если cos>0, то угол меньше 90
       else if c<0 then writeln('Треугольник тупоугольный'); // больше 90
  end;
  end;
end.

Что касается написанной Вами программы, что такое m,n,p? Далее вы вычисляете длины сторон, например:
>>> l1:=sqrt(sqr((x1-x2))+(sqr(y1-y2)));
но не определив ранее x1, x2, y1, y2

Всего сообщений: 428 | Присоединился: ноябрь 2008 | Отправлено: 4 дек. 2010 12:18 | IP
paradise


Долгожитель

В следующий раз задавайте Ваши вопросы в соответствующей теме.

Всего сообщений: 428 | Присоединился: ноябрь 2008 | Отправлено: 4 дек. 2010 12:19 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Одна страница

Форум работает на скрипте © Ikonboard.com