0 / 0 / 0
Регистрация: 09.11.2016
Сообщений: 2

Не работает код, можете подсказать, что не так?

24.05.2017, 15:42. Показов 563. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется собственный класс с несколькими полями, пытаюсь записать его в бинарное дерево, выдает ошибку.

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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, UBook;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
type
  TData = TBook;
  TPNode = ^TNode;
 
    TNode = record
    Data : TData;
    PLeft, PRight:TPNode;
end;
 
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
procedure AddNode(var aPNode : TPNode; const aData : TData);
begin
  if aPNode = nil then
  begin
    New(aPNode);
    aPNode^.Data.FName := aData.FName;   //Запись всех полей в ячейку, если дерево не создано
    aPNode^.Data.FPages := aData.FPages;
    aPNode^.Data.FKind:= aData.FKind;
    aPNode^.Data.FEdition:= aData.FEdition;
    aPNode^.PLeft := nil;
    aPNode^.PRight := nil;
  end
  else if aData.FName <= aPNode^.Data.FName then  //РАспределение по ИМЕНИ
    AddNode(aPNode^.PLeft, aData)
  else if aData.FName > aPNode^.Data.FName then
    AddNode(aPNode^.PRight, aData);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
aData: TData;
aPNode : TPNode;
begin
aData:=TBook.Create;
aData.FName:=edit1.text;
aData.FPages:=strtoint(edit2.text);
aData.FKind:=edit3.text;
aData.FEdition:=strtoint(edit4.text);
AddNode(aPNode,aData);
 
end;
 
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.05.2017, 15:42
Ответы с готовыми решениями:

Можете подсказать что не так.Я недавно начал работать в матлабе,и еще не все знаю
Gapa=4900/3600; %Debitul de apa, ti=17; %Temperatura de intrare a apei, te=74; %Temperatura de iesire a apei, tv=100;%Temperatura...

Можете оценить код и сказать что не так?
Написал программу которая берет рандомные слова на разные буквы на английском из блокнота и выводит их в мемо с переводом. например это...

Посмотрите, что можете подсказать
Помогите причесать код. Может покритикуете. TITLE KR ; название программы .MODEL small ; отводим под стек и под данные по 64...

4
Житель Земли
 Аватар для DenNik
3003 / 3022 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
24.05.2017, 15:56
что такое TBook?
0
Модератор
 Аватар для D1973
9720 / 6319 / 2438
Регистрация: 21.01.2014
Сообщений: 26,923
Записей в блоге: 3
24.05.2017, 16:04
DenNik, видимо, это класс, описанный в модуле UBook... А вот его содержимое - тайна сия велика есмь
0
0 / 0 / 0
Регистрация: 09.11.2016
Сообщений: 2
24.05.2017, 23:00  [ТС]
Извиняюсь, вот собственный класс.
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
unit UBook;
 
interface
 
 
type
TBook = class 
 
public
 
FName: string; //Объявляю переменые (F-это поле)
FPages: integer;
FKind: string;
FEdition: integer;
 
  function GetName:string; //Функция для записи
  function GetKind:string;
  function GetPages:integer;
  function GetEdition:integer;
 
  constructor Create(Name: string; Pages: integer; Kind: string; Edition: integer); overload;
  constructor Create(); overload;
  destructor Destroy;
 
  procedure SetName(Name: String); //процедуры для установки значений
  procedure SetKind(Kind: String);
  procedure SetPages(Pages: Integer);
  procedure SetEdition(Edition: Integer);
 
  property Name: string read GetName write SetName; //св-ва для полей
  property Pages: integer read GetPages write SetPages;
  property Kind: string read GetKind write SetKind;
  property Edition: integer read GetEdition write SetEdition;
 
  end;
 
implementation
 
constructor TBook.Create(Name: string; Pages: integer; Kind: string; Edition: integer);
begin
FName:=Name;
FPages:= Pages;
FKind:=Kind;
FEdition:=Edition;
end;
 
 
Constructor TBook.Create();
begin
FName:='Петрович';
FPages:=10;
FKind:='Шлюпка';
FEdition:=60;
end;
 
 
destructor TBook.Destroy;
begin
end;
 
 
function TBook.GetName:string;
begin
result:=FName;
end;
 
function TBook.GetKind:string;
begin
result:=FKind;
end;
 
function TBook.GetPages:integer;
begin
result:=FPages;
end;
 
function TBook.GetEdition:integer;
begin
result:=FEdition;
end;
 
procedure TBook.SetName(Name: String);
begin
  FName:=Name;
end;
procedure TBook.SetKind(Kind: String);
begin
  FKind:=Kind;
end;
 
procedure TBook.SetEdition(Edition: integer);
begin
  FEdition:=Edition;
end;
 
procedure TBook.SetPages(Pages: integer);
begin
  FPages:=Pages;
end;
 
 
 
end.
0
Житель Земли
 Аватар для DenNik
3003 / 3022 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
24.05.2017, 23:18
Вот тебе и ответ. НИКОГДА не делай полем структуры record тип class
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2017, 23:18
Помогаю со студенческими работами здесь

Массив? ArrayList? Что можете подсказать?
Добрый всем день. Я новичок в программировании. Возник вопрос, что же лучше использовать? К примеру мне нужна какая - то таблица, в...

Можете подсказать что за тип TVATP?
Добрый день расскажите про тип TVATP для чего нужен как используется по подробнее буду очень благодарен)

Сделал таблицу, но выдаёт ошибку, можете подсказать в чём дело, разибирался так и не понял
SQL query: CREATE TABLE `fonline`.`pid` ( `name` CHAR( 0 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `pid` INT( 0...

Что можете подсказать по этой видеокарте intel hd video 1274 mb
Добрый день форумчане. Подскажите на что способна эта видеокарта intel hd video 1274 mb. А то что то гуглил ничего толком и не нашел. ...

Прошу подсказать, что не так кодом
Доброго времени суток! Уважаемые пользователи. Я начинающий кодер, работающий в Code::Blocks. У меня возникли проблемы с этим кодом. ...


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

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

Новые блоги и статьи
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru