0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 92
1

Процедура: определить наибольший острый угол треугольника со сторонами a, b, c (используя теорему косинусов)

26.04.2018, 23:02. Показов 804. Ответов 5
Метки нет (Все метки)

Как максимально упростить эту программу ???


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
uses Math;
procedure ugol(a,b,c:double;var u:double);
begin
u:=radtodeg(arccos((b*b+c*c-a*a)/(2*b*c)));
end;
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,mx:double;
    k:integer;
    m:array[1..3] of double;
begin
val(Edit1.Text,a,k);
if(k<>0)or(a<=0) then
 begin
  ShowMessage('Неверно введена длина стороны А');
  Edit1.Clear;
  Edit1.SetFocus;
  exit;
 end;
val(Edit2.Text,b,k);
if(k<>0)or(b<=0) then
 begin
  ShowMessage('Неверно введена длина стороны B');
  Edit2.Clear;
  Edit2.SetFocus;
  exit;
 end;
val(Edit3.Text,c,k);
if(k<>0)or(c<=0) then
 begin
  ShowMessage('Неверно введена длина стороны C');
  Edit3.Clear;
  Edit3.SetFocus;
  exit;
 end;
if(a>=b+c)or(b>=a+c)or(c>=a+b)then
 begin
  ShowMessage('Эти отрезки не могут быть сторонами треугольника'+#13#10
              +'повторите ввод');
  Edit1.Clear;
  Edit2.Clear;
  Edit3.Clear;
  Edit1.SetFocus;
  exit;
 end;
ugol(a,b,c,m[1]);
ugol(b,a,c,m[2]);
ugol(c,a,b,m[3]);
Memo1.Clear;
for k:=1 to 3 do
Memo1.Lines.Add('Угол '+inttostr(k)+'='+formatfloat('0.00',m[k])+#176);
mx:=0;
for k:=1 to 3 do
if(m[k]<90)and(m[k]>mx) then mx:=m[k];
Memo1.Lines.Add('Наибольший острый угол='+formatfloat('0.00',mx)+#176);
end;
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2018, 23:02
Ответы с готовыми решениями:

Процедура: определить наибольший острый угол треугольника со сторонами a, b, c (используя теорему синусов)
Определить наибольший острый угол треугольника со сторонами a,b,c используя теорему синусов....

Определить наибольший острый угол треугольника со сторонами a,b,c. Использовать процедуру
Определить наибольший острый угол треугольника со сторонами a,b,c. Использовать процедуру.

Наибольший острый угол
Подскажите, пожалуйста, как записать условие, чтобы программа выводила через Label какой из углов...

Используя подпрограммы, найти наибольший угол треугольника АВС
Найти наибольший угол ( в градусах) треугольника АВС , заданного координатами своих вершин .заранее...

5
Модератор
1436 / 1011 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
27.04.2018, 00:33 2

Не по теме:

Цитата Сообщение от F1xie Посмотреть сообщение
Как максимально упростить эту программу ???
Башкой об стену.



Добавлено через 5 минут
А если серьёзно, то убрать ugol и работать с радианами, как все нормальные люди.
0
пофигист широкого профиля
4544 / 3017 / 845
Регистрация: 15.07.2013
Сообщений: 17,427
27.04.2018, 01:43 3
Цитата Сообщение от Matan! Посмотреть сообщение
А если серьёзно, то убрать ugol и работать с радианами, как все нормальные люди.
Убирать ugol не надо. И с радианами нормальные пользователи в большинстве своем не знакомы.
Лично я бы сделал ugol функцией и на этом завершил бы упрощение.
0
Модератор
1436 / 1011 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
27.04.2018, 02:20 4
Цитата Сообщение от northener Посмотреть сообщение
сделал ugol функцией
Мне тоже это подумалось... Но никакого серьёзного упрощения это не принесёт. Просто добавит кармы к правильности кода
Ну, можно выполнить поиск по компонентам на класс TEdit и объединить условия проверки на корректность..
0
пофигист широкого профиля
4544 / 3017 / 845
Регистрация: 15.07.2013
Сообщений: 17,427
27.04.2018, 02:26 5
Цитата Сообщение от Matan! Посмотреть сообщение
Ну, можно выполнить поиск по компонентам на класс TEdit и объединить условия проверки на корректность.
Это как?
0
Модератор
1436 / 1011 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
27.04.2018, 08:18 6
Цитата Сообщение от northener Посмотреть сообщение
Это как?
Delphi
1
2
3
4
5
6
for i := 0 to ComponentCount - 1 do
    if Components[i] is TEdit then
    begin
      (Components[i] as TEdit).Clear;
      (Components[i] as TEdit).Text := 'Неверно введена длина стороны';
    end;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2018, 08:18
Помогаю со студенческими работами здесь

Вычислить периметр и площадь прямоугольного треугольника, если известен катет и острый угол
Очень нужно решение этих задач, сама не справлюсь, хоть знаю что и легко! 1)Составить и...

По введённому числу (градусы) определить, какой это угол (острый, прямой или тупой)
Написать программу, которая по введённому числу(градусы) определяла бы какой это угол(острый,...

Найти наибольший общий делитель чисел M и N, используя теорему Эйлера (рекурсия)
Здравствуйте, помогите пожалуйста, очень нужно написать на c++ в оконном. Найти наибольший общий...

Рекурсия: найти наибольший общий делитель чисел M и N, используя теорему Эйлера
Помогите пожалуйста решить задачу на рекурсию, очень надо, заранее огромное спасибо! задача:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru