Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 09.09.2018
Сообщений: 42

Описать класс Triangle

08.10.2018, 21:14. Показов 2476. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Возник вопрос в написании программы в делфи.
Требуется описать класс Triangle который хранит информацию о треугольнике. Класс имеет три поля – длины сторон треугольника и свойства для чтения\записи каждого из этих полей при помощи соответствующих методов.
Это сделала,всё выводит. Немного поменяла и сделала так,что теперь в эдит можно вводить периметр и он он высчитывает стороны.
Проблема вот в чем:
Класс также имеет свойство IsRectangular, доступное только для чтения, которое возвращает логическое значение, определяющее является ли треугольник прямоугольным. Класс должен иметь конструктор и деструктор.
Не совсем понимаю как мне записать это свойство ректангл и куда его записать,а также запись декструктора.
Для установления какой тип прямоугольника хотела использовать этот код:
Delphi
1
2
3
f (a=sqrt(sqr(b)+sqr(c))) or (b=sqrt(sqr(a)+sqr(c))) or (c=sqrt(sqr(b)+sqr(a))) then
showmessage ('Треугольник прямоугольный') 
else showmessage ('Треугольник не прямоугольный');
При создании объектов писала просто объект.дестрой, а тут не понимаю как это должно вообще работать.

Помогите пожалуйста.

Сам код программы вот:
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type
TTriangle = class
private
function GetPerimeter: double;
procedure SetPerimeter(Value: double);
public
a, b, c: double;
property Perimeter: double read GetPerimeter write SetPerimeter;
function Square: double;
constructor Create(NewA, NewB, NewC: double);
end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
{ TTriangle }
 
constructor TTriangle.Create(NewA, NewB, NewC: double);
begin
a := NewA;
b := NewB;
c := NewC;
end;
 
function TTriangle.GetPerimeter: double;
begin
 result := a + b + c;
end;
 
 
 
procedure TTriangle.SetPerimeter(Value: double);
begin
 a := Value / 3;
b := Value / 3;
c := Value / 3;
 
end;
 
function TTriangle.Square: double;
var
p: double; 
begin
 
p := (a + b + c) / 2;
result := sqrt(p*(p-a)*(p-b)*(p-c));
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
var
t: TTriangle;
begin
t := TTriangle.Create(10, 11, 12);
t.Perimeter := (StrToInt(Edit1.Text));
ShowMessage('Стороны треугольника:'+FloatToStrF(t.a,ffFixed,0,1)+';'+FloatToStrF(t.b,ffFixed,0,1)+';'+FloatToStrf(t.c,ffFixed,0,1)+' Периметр: '+FloatToStr(t.Perimeter));
 
end;
end.
Миниатюры
Описать класс Triangle  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.10.2018, 21:14
Ответы с готовыми решениями:

Описать процедуру triangle(t)
Помогите поалуйста!!!!! Д\з: Описать процедуру triangle(t), формирующую текстовый файл t из 9 строк, в первой из которых - одна...

Описать класс
Просто забыл и никак не могу вспомнить синтаксис делфи, посмотрел пару статей и всё равно ничего не получает, вообщем надо описать простой...

Описать класс
В классе должно быть: конструктор, метод Show() для вывода на экран всей информации об объекте, метод SetFields(...) для установления...

25
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
09.10.2018, 19:03
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от POLLINA 1578 Посмотреть сообщение
property IsRectangular: Boolean read FIsRectangular: Boolean;
потому что накосячил вслед за Matan!, ))
0
09.10.2018, 19:15

Не по теме:

Хм-м...

Ведите периметр - 30
Стороны равны 10,0;10,0;10,0
т.е. вариант, к примеру 10,0; 12,0; 8,0 уже вообще не рассматривается? POLLINA 1578, ну нельзя же, в общем случае, судить о длине сторон треугольника исходя из его периметра...

0
09.10.2018, 19:17

Не по теме:

Цитата Сообщение от D1973 Посмотреть сообщение
т.е. вариант, к примеру 10,0; 12,0; 8,0 уже вообще не рассматривается?
а чо, тоже ж равносторонний, среднее арифметическое то 10 на сторону))))

0
0 / 0 / 0
Регистрация: 09.09.2018
Сообщений: 42
09.10.2018, 19:26  [ТС]
Спасибо,исправило,ошибки больше не выдает.

Не подскажите,вот мне надо вернуть логическое значение, определяющее является ли треугольник прямоугольным,формула для определяющая треугольник прямоугольный есть,а как сделать чтобы оно возвращала это логическое значение,как это вообще...?
Задание такое,что как бы понимаешь,но и не понимаешь что делать
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
09.10.2018, 19:34
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TRectangle = class
  private
    
    function GetIsRectangled: Boolean;
  public
    
    property IsRectAngled: Boolean read GetIsRectangled;
end;
 
 
function TRectangle.GetIsRectangled: Boolean;
begin
  Result := <тут логическая формула признака прямоугольности...>
end;
1
 Аватар для Matan!
1882 / 1016 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
09.10.2018, 20:33
Цитата Сообщение от Arcor Посмотреть сообщение
GetIsRectangled
Придумают же
Цитата Сообщение от Arcor Посмотреть сообщение
property IsRectangular: Boolean read FIsRectangular: Boolean;
Да,каюсь,было дело. Так я вроде исправил. Вот только не помню, выложил ли исправление..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.10.2018, 20:33

Описать класс
Описать класс «Обыкновенная дробь» с двумя полями: числитель и знаменатель, с двумя перегруженными конструкторами, с методом «правильная...

Описать класс Работник
описать класс работник имя фамилия инициалы должность оклад и дата поступления . Помогите пожалуйста (

Описать класс «Устройство»
помогите решить, кому не трудно, просто сам в этом очень плох. Описать класс «Устройство». Каждый объект содержит данные:...

Описать класс «множество»
Описать класс «множество», позволяющий выполнять основные операции: добавление и удаление элемента, пересечение, объединение и разность...

Описать класс прямоугольников
Ребят, очень нужна помощь... Везде есть по С, а нужно по Delphi Составить описание класса прямоугольников со сторонами, параллельными...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru