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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2011, 17:03   #11
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Цитата:
Сообщение от Beren42 Посмотреть сообщение
Это должно означать , что property Modul[Index: integer] :real read GetModul ;
называется массив свойств. Спрашивается вопрос: Через него можно ? Пишет , что надо квадратные скобки. А спрашиваю : Зачем, ведь -это число. А каком индексе в квадратных скобках может идти речь ?!
Давай по порядку.
Цитата:
Пишет , что надо квадратные скобки.
где когда? при использовании? правильно. Ты сам этого потребовал, когда описывал свойство. Компьютер не знает твоих мыслей от том, что это за свойство.Он видит описание в котором указаны скобки, вот и просит. Если они не нужны, то убери их в описании.
И вопрос к тебе как автору свойства Что может означать массив свойств modul[]. Если не знаешь, то зачем делаешь такое свойство?
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 06.06.2011 в 17:13.
evg_m вне форума Ответить с цитированием
Старый 06.06.2011, 17:13   #12
Beren42
Пользователь
 
Регистрация: 14.12.2010
Сообщений: 50
По умолчанию

Вот мы и подходим к самому интересному. Нужно ли так объявлять свойство property Modul[Index: integer] :real read GetModul ; Или надо property Modul : Extended read GetModul; Если второй вариант правильный, то у меня задание сделать свойство модуль через массив свойств property Modul[Index: integer] :real read GetModul ; .
Или это В ПРИНЦИПЕ НЕВОЗМОЖНО ?
Beren42 вне форума Ответить с цитированием
Старый 06.06.2011, 17:18   #13
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Цитата:
то у меня задание сделать свойство модуль через массив свойств property Modul[Index: integer] :real read GetModul ; .
может быть сделать свойство модуль через массив свойств Items
реализовать вычисление модуля используя массив свойств (Items[]), а не внутренние данные (Fitems[]) напрямую.
Цитата:
свойство модуль через массив свойств property Modul[Index: integer]
конечно можно записать ОДНО число (модуль) в массив (массив свойств) длины 1(ОДИН). и прочитать.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 06.06.2011 в 17:23.
evg_m вне форума Ответить с цитированием
Старый 06.06.2011, 17:32   #14
Beren42
Пользователь
 
Регистрация: 14.12.2010
Сообщений: 50
По умолчанию

Цитата:
ожет быть сделать свойство модуль через массив свойств Items
Да скорее всего именно это и требуется. Тогда как это будет выглядеть ?
Beren42 вне форума Ответить с цитированием
Старый 06.06.2011, 17:44   #15
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
Это должно означать , что property Modul[Index: integer] :real read GetModul ;
Это не "массив свойств", а "свойство типа массив".
Для упомянутого тобой св-ва Modul объявлять и реализовать его как св-во типа массив лишено смысла, ибо "модуль вектора" имеет вещественный тип.
mss вне форума Ответить с цитированием
Старый 06.06.2011, 17:50   #16
Beren42
Пользователь
 
Регистрация: 14.12.2010
Сообщений: 50
По умолчанию

Это я и хотел услышать. А скалярное произведение векторов можно через массив свойств ?
P.S Массивы свойств Голованов М., Веселов Е. - Создание компонентов в среде Delphi. Руководство разработчика (2004)(S)
Beren42 вне форума Ответить с цитированием
Старый 06.06.2011, 19:43   #17
Beren42
Пользователь
 
Регистрация: 14.12.2010
Сообщений: 50
По умолчанию

Вот мой вариант скалярного произведения
Код:
private
 function GetScalarMulty (Index: Integer): real;
public
 property ScalarMulty [Index: integer]  :real read GetScalarMulty  ;
 
implementation
 function TVector.GetScalarMulty(Index: Integer; AItems: TVector ): real;
 begin
    if Index in [Low(FItems)..High(FItems)] and in [Low(AItems)..High(AItems)]  then
begin
 for Index := Low(FItems) to High(FItems) do
Result:=Result+ AItems.Items[index]* FItems[index];
    end;
     end;
Выдаёт ошибку уже при
Код:
 
public
 property ScalarMulty [Index: integer]  :real read GetScalarMulty  ;
Непонятно (

Последний раз редактировалось Beren42; 06.06.2011 в 19:48.
Beren42 вне форума Ответить с цитированием
Старый 09.06.2011, 13:42   #18
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

property ScalarMulty [Index: integer] :real read
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 09.06.2011, 14:44   #19
Beren42
Пользователь
 
Регистрация: 14.12.2010
Сообщений: 50
По умолчанию

Сделал скалярное произведение через метод, всё нормально. Но при вызове ошибка
Тут ошибок нет.
Код:
function TVector.GetScalarMulty(const  AItems: array of real) : real ;
    var
  i : Integer;
begin
  if High(FItems) <> High(AItems) then
    ShowMessage('Îøèáêà. Ðàçìåðíîñòè âåêòîðîâ ðàçëè÷íû.') ;
    Result := 0;
  for i := 0 to High(FItems) do
    Result := Result +  FItems[i] * AItems[i];

Ошибка вот где

Код:
var
  Form1: TForm1;
  Vector,Vector1:TVector;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Vector:=TVector.Create([1., 1., 1.]);
Vector1:=TVector.Create([2.,2.,3.]);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
Vector.Destroy ;
Vector1.Destroy ;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin

  with Vector do
   begin
         Edit3.Text:=FloatToSTr(GetScalarMulty(Vector1 )); // вот тут ошибка (

   end;

end;
Beren42 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс вектор в Delphi Beren42 Помощь студентам 7 02.06.2011 12:50
класс N-Мерный вектор neon0858 Помощь студентам 0 01.06.2011 00:28
Класс-Контейнер Вектор Zorg2 Помощь студентам 1 10.04.2011 22:32
C++ создать класс Вектор Drakowa Помощь студентам 2 29.03.2011 17:06
С++класс-вектор cati Помощь студентам 4 21.04.2010 21:58