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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2016, 21:50   #1
Doni11
Пользователь
 
Регистрация: 09.03.2016
Сообщений: 40
По умолчанию написать программу распознающую по длинам сторон среди всех треугольников прямоугольные Если таковых нет, то вычислить величину уг

Код:
program rr;

var
ABC,c,x,y,z:real;
begin
Write ('vvedite x: ');
read (x);
Write ('vvedite y: ');
read (y);
Write ('vvedite z: ');
read (z);
begin
clrscr;
If (x*x+y*y-z*z)<=0 then
WriteLn ('on prymougolni')
else
begin
C:=1/cos(y*y+z*z-x*x/2*y-z);
WriteLn ('ugol C=',C:2:2);
end;
readkey;
end;
end.
Doni11 вне форума Ответить с цитированием
Старый 29.03.2016, 21:51   #2
Doni11
Пользователь
 
Регистрация: 09.03.2016
Сообщений: 40
По умолчанию

Помогите написать до конца!
Doni11 вне форума Ответить с цитированием
Старый 29.03.2016, 22:07   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

1) Похоже, нужно обрабатывать не 1 треугольник, а несколько.
2) Добавил бы проверку, что треугольник с рассматриваемыми сторонами существует.
3) Проверку, что треугольник прямоугольный, делал бы так: отсортировал 3 стороны по возрастанию длины (стороны a, b, c), а затем проверял abs(a*a+b*b-c*c)<=delta (если выполнено, то прямоугольный), где delta - малая величина.
4) Непонятно какой именно угол искать.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 29.03.2016, 22:11   #4
Doni11
Пользователь
 
Регистрация: 09.03.2016
Сообщений: 40
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
1) Похоже, нужно обрабатывать не 1 треугольник, а несколько.
2) Добавил бы проверку, что треугольник с рассматриваемыми сторонами существует.
3) Проверку, что треугольник прямоугольный, делал бы так: отсортировал 3 стороны по возрастанию длины (стороны a, b, c), а затем проверял abs(a*a+b*b-c*c)<=delta (если выполнено, то прямоугольный), где delta - малая величина.
4) Непонятно какой именно угол искать.
Написать программу, распознающую по длинам сторон среди всех треугольников прямоугольные. Если таковых нет, то вычислить величину угла С.
Doni11 вне форума Ответить с цитированием
Старый 29.03.2016, 22:25   #5
Doni11
Пользователь
 
Регистрация: 09.03.2016
Сообщений: 40
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
1) Похоже, нужно обрабатывать не 1 треугольник, а несколько.
2) Добавил бы проверку, что треугольник с рассматриваемыми сторонами существует.
3) Проверку, что треугольник прямоугольный, делал бы так: отсортировал 3 стороны по возрастанию длины (стороны a, b, c), а затем проверял abs(a*a+b*b-c*c)<=delta (если выполнено, то прямоугольный), где delta - малая величина.
4) Непонятно какой именно угол искать.
Код:
program art_1;
uses    crt;
var     a,b,c,cos1,cos2,cos3:real;
begin
     clrscr;
     write('a='); readln(a);
     write('b='); readln(b);
     write('c='); readln(c);
     if (a+b>c) and (a+c>b) and (b+c>a) then
     write('treugolnik');
     begin
          cos1:=(sqr(a)-sqr(b)-sqr(c))/((-2)*b*c);
          cos2:=(sqr(c)-sqr(a)-sqr(b))/((-2)*a*b);
          cos3:=(sqr(b)-sqr(c)-sqr(a))/((-2)*c*a);
          if (cos1=1) or (cos2=1) or (cos3=1) then
          write('prjamougolnyi')
          else
          write('neprjamougolnyi');
          write(' cos C=',cos2);
    end
    else write('netreugolnik');
    readkey;
end.
Посмотри я тут немного поменял )
На 21 строчке выдает ошибку
Doni11 вне форума Ответить с цитированием
Старый 29.03.2016, 22:45   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Begin на 12 строке должен быть на строку выше. Косинус 90 градусов равен нулю. Проверять на строгое равенство не следует вещественные числа, а записать abs(cos1)<delta (delta маленькую взять, например, 0.00001).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 29.03.2016, 22:52   #7
Doni11
Пользователь
 
Регистрация: 09.03.2016
Сообщений: 40
По умолчанию

Код:
program art_1;
uses    crt;
var     a,b,c,cos1,cos2,cos3:real;
begin
     clrscr;
     write('a='); readln(a);
     write('b='); readln(b);
     write('c='); readln(c);
     if (a+b>c) and (a+c>b) and (b+c>a) then
     begin
          write('treugolnik');
          cos1:=(sqr(a)-sqr(b)-sqr(c))/((-2)*b*c);
          cos2:=(sqr(c)-sqr(a)-sqr(b))/((-2)*a*b);
          cos3:=(sqr(b)-sqr(c)-sqr(a))/((-2)*c*a);
          if (cos1=1) or (cos2=1) or (cos3=1) then
          write('prjamougolnyi')
          else
          write('neprjamougolnyi');
          write(' cos C=',cos2);
    end
    else write('netreugolnik');
    readkey;
end.
Цитата:
Сообщение от BDA Посмотреть сообщение
Begin на 12 строке должен быть на строку выше. Косинус 90 градусов равен нулю. Проверять на строгое равенство не следует вещественные числа, а записать abs(cos1)<delta (delta маленькую взять, например, 0.00001).

Я думаю так норм или добавить Delta
&
Doni11 вне форума Ответить с цитированием
Старый 29.03.2016, 23:20   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

И все-таки косинус прямого угла равен нулю, а не единице
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 29.03.2016, 23:59   #9
Doni11
Пользователь
 
Регистрация: 09.03.2016
Сообщений: 40
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
И все-таки косинус прямого угла равен нулю, а не единице
Все три косинуса поменять ?
Doni11 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить количество различных треугольников,которые могут быть собраны из лучей разной длины (Написать программу на языке СИ) Morgan8 Помощь студентам 19 21.11.2014 12:01
процедуры и функции - возможно ли построение треугольника по длинам сторон, вычисление площади треугольника по длинам сторон kazbek1 Паскаль, Turbo Pascal, PascalABC.NET 2 18.05.2012 10:38
Найти площадь, периметр и угол треугольника по длинам трёх его сторон ( Delphi 7 ) CONDOR* Помощь студентам 1 15.05.2012 18:26
Программа, которая находит площадь трапеции, квадрата и прямоугольника по введённым длинам сторон (на Delphi) orange_wot Помощь студентам 3 10.04.2012 16:42
написать программу на turbo вычислить min если даны числа.задание внутри Di@nk@ Паскаль, Turbo Pascal, PascalABC.NET 0 07.02.2012 15:51