Форум по Delphi программированию



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ] > Код на шару!
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.11.2022, 20:25
NeField NeField вне форума
Прохожий
 
Регистрация: 24.05.2022
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
Печаль Класс комплексных чисел

Реализовать класс комплексных чисел. Обеспечить операции(методы):
а)
- создание комплексного числа из данных таблицы;
- вывод комплексного числа в таблицу;
- сложение, вычитание, умножение и деление комплексных чисел;
- умножение и деление комплексного числа на действительное число;
б)
- вычисление модуля и аргумента комплексного числа;
- возведение комплексного числа в целую степень.

1. Класс располагается в модуле содержательного имени (например, Unit Matrix; ), в котором находится:
1.1.Определение основного класса с содержательным именем и с префиксом Т (например TMatrix), содержащее:
1.1.1. Содержательные имена полей с префиксом (a или f), например, aCount.
1.1.2. Поля в секции private.
1.1.3. Методы в секции public (методы чтения-записи и методы пункта а) задания).
1.1.4. Для всех полей записать свойства с содержательными именами, например, Count. Для массивов - свойства-массивы.
1.1.5. Класс содержит хотя бы один конструктор и деструктор.
1.2.В разделе реализации привести полные описания объявленных методов класса.

2. Класс-потомок располагается в модуле содержательного имени (например, Unit NewMatrix; ), в котором находится:
2.1.Подключение модуля с классом-родителем.
2.2.Определение класса-потомка с содержательным именем и с префиксом Т (например TNewMatrix), содержащего только методы пункта б) задачи.
2.3.В разделе реализации привести полные описания объявленных методов класса-потомка.

3. В основном модуле формы привести описания обработчиков выполнения указанных в задании операций. Каждый обработчик содержит описания данных, создание объектов класса, вызов соответствующих методов класса и вывод результатов.
Ответить с цитированием
  #2  
Старый 23.11.2022, 03:30
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,860
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Лень писать примитивные методы.
Вот тебе сами классы, а методы допишешь сам.
Зачем нужен для данного класса деструктор - я не знаю
Тут то дефолтный конструктор нафиг не нужен.

Базовый класс:
Код:
unit ComplexNumber;

interface

type
  TComplexNumber = class
  private
    FRe : Integer;
    FIm : Integer;
  public
    constructor Create; overload;
    constructor Create(ARe, AIm : Integer); overload;
    constructor Copy(ANumber : ComplexNumber);

    procedure Add(ANumber : TComplexNumber);
    procedure Dex(ANumber : TComplexNumber);
    procedure Mult(ANumber : TComplexNumber); overload;
    procedure Mult(ANumber : Integer); overload;   
    procedure Div(ANumber : TComplexNumber); overload;
    procedure Div(ANumber : Integer); overload;   
     
    property Re : Integer read FRe write FRe;
    property Im : Integer read FIm write FIm;
  end;

implementation

constructor TComplexNumber.Create;
begin
  inherited;
  FRe := 0;
  FIm := 0;
end;

constructor TComplexNumber.Create(ARe, AIm : Integer);
begin
  inherited Create;
  FRe := ARe;
  FIm := AIm;
end;

constructor TComplexNumber.Copy(ANumber : ComplexNumber);
begin
  inherited Create;
  FRe := ANumber.FRe;
  FIm := ANumber.FIm;
end;

// Остальные методы - сам, по подобию конструкторов, только inherited не вызывай

end;

Потомок:
Код:
unit AdvComplexNumber;

interface

uses ComplexNumber;

type
  TAdvComplexNumber = class(TComplexNumber)
  public
    function Abs : Double;
    function Arg : Double;
    procedure Power(AValue : Integer);
  end;

implementation

funcrtion TAdvComplexNumber.Abs : Double;
begin
  Result := Sqrt(Sqr(Re) + Sqr(Im));
end;

funcrtion TAdvComplexNumber.Arg : Double;
begin
  Result := Arctan(Re/Im); // Если не ошибаюсь
end;

procedure TAdvComplexNumber.Power(AValue : Integer);
begin
// тоже лень расписывать реализацию
end;

end;

С остальным может еще кто поможет...

Последний раз редактировалось lmikle, 23.11.2022 в 03:32.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
NeField (02.12.2022)
Ответ



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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:27.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2021

ВКонтакте   Facebook   Twitter   Ссылка на Telegram