Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
 Аватар для Existentialist
12 / 8 / 5
Регистрация: 28.01.2019
Сообщений: 54

Наследование объектного типа

24.02.2020, 00:45. Показов 3924. Ответов 21

Студворк — интернет-сервис помощи студентам
Возникают ошибки в коде, в комментариях указаны ошибки
Документацию просматривал, примеры в ней не соответствуют моим ошибкам, не могу разобраться, в чем проблема.
кратко:
константы не применяются
метод одного объекта не видит свойства другого объекта

делфи практически не знаю, но нужно написать в нем.

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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
unit Main;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus;
const
m: integer = 4;
k: integer = 10;
 
type
  TForm2 = class(TForm)
    MainMenu1: TMainMenu;
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
  TProduct = object
    Name: string[15];
    ZatrEdProd: real; 
    PriseEdProd: real;
    V_Prod_Min: real; 
    V_Prod: array[0..m] of real;  // Constant expression expected
    A_Prod: array[0..m] of real;  // Constant expression expected
  public
  function V_Prod_Sum(j: integer):real;
  function Doxod(j: integer): real;
  end;
 
     TPredpr= object
      SRS: real; 
      Kredit: real; 
      PostZatr: real; 
      Nalog: real; 
      NDS: real; 
      Product: array[0..k] of TProduct; //Constant expression expected
    public
      function VarZatr(): real;
      function Doxod(): real;
    end;
 
var
  Form2: TForm2;
  Predpr: Tpredpr;
  i,j: integer;
 
 
implementation
 
{$R *.dfm}
 
 
function TPredpr.doxod(): real;
var j,i:integer; temp:real;
begin
result:=0;
for j:=1 to k do begin
 temp:=0;
 for i:=1 to m do begin
  temp:=temp+product[j].V_prod[i]*product[j]. 
  A_prod[i];
 end;
result:=result+temp*(1-Nalog - NDS)*product[j].PriseEdProd; 
end;
end;
 
 
function TPredpr.VarZatr(): real;
var j,i:integer; temp:real;
begin
result:=0;
for j:=1 to k do begin
 temp:=0;
 for i:=1 to m do begin
  temp:=temp+product[j].V_prod[i];
 end;
result:=result+temp*product[j].ZatrEdProd;
end;
end;
 
 
function TProduct.doxod(j:integer): real;
var i:integer; temp:real;
begin
  temp:=0;
    for i:=1 to m do begin
    temp:=temp+Tpredpr.product[j].V_prod[i]*Tpredpr.product[j].A_prod[i]; // Method identifier expected; Missing operator or semicolon
    end;
 result:=temp*(1- TPredpr.Nalog-TPredpr.NDS)*TPredpr.product[j].PriseEdProd; // Method identifier expected; Missing operator or semicolon; Statement expected, but expression of type 'Real' found
 end;
 
 
 
function TProduct.V_Prod_Sum(j:integer): real;
var i:integer; temp:real;
begin
temp:=0;
 for i:=1 to m do begin
 temp:=temp+Tpredpr.product[j].V_prod[i]; // Method identifier expected; Missing operator or semicolon
 end;
result:= temp;
end;
 
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.02.2020, 00:45
Ответы с готовыми решениями:

Ошибка объектного типа
Добрый день. Возникла проблема при добавлении строки в таблицу. Решила поставить Процедуру перед началом добавления. Условие...

Описание объектного типа
Объект — окружность с параметрами: координата центра, радиус, цвет. Пусть методами будет а) порождение окружности; б)...

Значение не является значением объектного типа
Доброе утро! Хотела узнать - эта ошибка значит, что объект, у которого я дёргаю метод, не существует или не есть объект? А то копаюсь...

21
Модератор
4156 / 2365 / 814
Регистрация: 15.11.2015
Сообщений: 9,505
24.02.2020, 18:27
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Existentialist Посмотреть сообщение
пустые классы - ошибки все те же, а с class(TObject) - ошибок море.
Но все же, переписав Object на Class разницы нету)
Ничего не понятно. Класс - это новый тип. В реализации потом нельзя писать temp:=temp+Tpredpr.product[j].V_prod[i]*Tpredpr.product[j].A_prod[i];.
Надо сначала создать объект - экземпляр этого класса - и уже потом обращаться к нему. Если у вас один объект содержит другой объект, то его нужно объявить и создавать объект в конструкторе и уничтожать в деструкторе класса.
0
 Аватар для Existentialist
12 / 8 / 5
Регистрация: 28.01.2019
Сообщений: 54
24.02.2020, 19:23  [ТС]
Цитата Сообщение от GoodWeather Посмотреть сообщение
В общем поправил ваш вариант:
Спасибо огромное вам, храни вас бог))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.02.2020, 19:23

COM соединение ошибка объектного типа (NewObject)
В общем подключаюсь к внешней базе через функцию, объявив глобальную переменную для COM объекта, что бы дальше пользоваться в запросах: ...

Значение не является значением объектного типа
Помогите! Выдает ошибку! (Значение не является значением объектного типа (Цена) Вот код Функция ЦенаИзделия(АктуальнаяДата,...

Значение не является значением объектного типа
Помогите, пожалуйста, разобраться с ошибкой. Связываю две табличной части документа. Код: &НаКлиенте Процедура...

1С УТ. Значение не является значением объектного типа
Пробую создать внешнюю печатную форму для УТ 11.4.9.98 на платформе 8.3.16.1030 Код обработки Функция...

Переполнение массива объектного типа string
Не получается инициализировать двумерный string-массив во время выполнения кода: #include <iostream> #include...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru