![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 14.01.2011
Сообщений: 10
|
![]()
Пусть даны три числа. Если они могут быть длинами сторон треугольника, определите его вид (разносторонний, равнобедренный, равносторонний). Вычислите длины его высот и напечатайте их в порядке убывания.
uses crt; var a,b,c:integer; h1,h2,h3,s:real; begin clrscr; write ('vvedite storony a: '); readln (a); write ('vvedite storony b: '); readln (b); write ('vvedite storony c: '); readln (c); if (a=b) and (b=c) and (c=a) then begin writeln ('ravnostoronnii'); h1:=(a*sqrt(3))/2; writeln ('h1=',h1); end else if (a=b) or (b=c) or (c=a) then begin writeln ('ravnobedrennii'); h1:=1/2*sqrt(4*sqr(a)*sqr(c)); h2:= end else begin writeln ('raznostoronii'); end; h3:=(2*s)/a; if (h1>h2) and (h1>h3) then if h2>h3 then writeln (h3:10:2,h2:10:2,h1:10:2) else if h2<h3 then writeln (h2:10:2,h3:10:2,h1:10:2); if (h2>h1) and (h2>h3) then if h1>h3 then writeln (h3:10:2,h1:10:2,h2:10:2) else if h1<h3 then writeln (h1:10:2,h3:10:2,h2:10:2); if (h3>h1) and (h3>h2) then if h1>h2 then writeln (h2:10:2,h1:10:2,h3:10:2) else if h1<h2 then writeln (h1:10:2,h2:10:2,h3:10:2); readln; end. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 03.11.2010
Сообщений: 24
|
![]()
Попробуй такой код.
Высоты вычисляются с использованием теоремы косинусов. И при сортировке вместо < или > лучше ставить <= или >=, потому что высоты могут быть одинаковые. uses crt; var a,b,c:integer; h1,h2,h3,s:real; begin clrscr; write ('vvedite storony a: '); readln (a); write ('vvedite storony b: '); readln (b); write ('vvedite storony c: '); readln (c); if (a=b) and (b=c) and (c=a) then writeln ('ravnostoronnii') else if (a=b) or (b=c) or (c=a) then writeln ('ravnobedrennii') else writeln ('raznostoronii'); h1:=a*sqrt(1-sqr((a*a+b*b-c*c)/(2*a*b))); h2:=b*sqrt(1-sqr((b*b+c*c-a*a)/(2*b*c))); h3:=c*sqrt(1-sqr((a*a+c*c-b*b)/(2*a*c))); if (h1>=h2) and (h1>=h3) then if h2>=h3 then writeln (h3:10:2,h2:10:2,h1:10:2) else if h2<=h3 then writeln (h2:10:2,h3:10:2,h1:10:2); if (h2>=h1) and (h2>=h3) then if h1>=h3 then writeln (h3:10:2,h1:10:2,h2:10:2) else if h1<=h3 then writeln (h1:10:2,h3:10:2,h2:10:2); if (h3>=h1) and (h3>=h2) then if h1>=h2 then writeln (h2:10:2,h1:10:2,h3:10:2) else if h1<=h2 then writeln (h1:10:2,h2:10:2,h3:10:2); readln; end.
Я не волшебница, я только учусь
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Упорядочить цифры в порядке возрастания/убывания | doter | Общие вопросы C/C++ | 2 | 05.10.2010 17:57 |
Числа в порядке убывания | skiffter | Общие вопросы C/C++ | 10 | 14.09.2010 15:34 |
вычислите длины высот равнобедренного треугольника | Feil | Помощь студентам | 1 | 23.12.2009 14:19 |
составление суммарного запроса в порядке убывания спроса с помощью программы Pascal | Margo123321 | Помощь студентам | 1 | 14.05.2009 11:45 |
Расположить элементы массива в порядке убывания частоты встречаемости элементов. | QWERT12345 | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 14.11.2008 22:30 |