Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 03.10.2009
Сообщений: 56

Полиморфизм. Таблица виртуальных методов

01.01.2010, 21:01. Показов 1149. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Измените, пожалуйста, рабочую программу, чтоб та использовалась VMT (таблица витуальных методов).
Pascal
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
program ok;
  uses
    crt;
  type
    TVector=object
                x,y:integer;
                procedure Init(x1,x2,y1,y2:integer);
                procedure SetVector(valueX,valueY:integer);
                procedure GetVector(var valueX:integer;var valueY:integer);
            end;
    TOperation=object
                   vector1,vector2:TVector;
                   procedure SetVectors(valueVector1,valueVector2:TVector);
               end;
    TOperationAdd=object(TOperation)
                    procedure Add(var result:TVector);
                  end;
    TOperationSub=object(TOperationAdd)
                    procedure Sub(var result:TVector);
                  end;
  procedure TVector.Init(x1,x2,y1,y2:integer);
  begin
    x:=x2-x1;
    y:=y2-y1;
  end;
  procedure TVector.SetVector(valueX,valueY:integer);
  begin
    x:=valueX;
    y:=valueY;
  end;
  procedure TVector.GetVector(var valueX:integer;var valueY:integer);
  begin
    valueX:=x;
    valueY:=y;
  end;
  procedure TOperation.SetVectors(valueVector1,valueVector2:TVector);
  begin
    vector1:=valueVector1;
    vector2:=valueVector2;
  end;
  procedure TOperationAdd.Add(var result:TVector);
    var
      vectorX1,vectorX2,vectorY1,vectorY2:integer;
  begin
    vector1.GetVector(vectorX1,VectorY1);
    vector2.GetVector(vectorX2,VectorY2);
    result.SetVector(vectorX1+vectorX2,vectorY1+vectorY2);
  end;
  procedure TOperationSub.Sub(var result:TVector);
    var
      vectorX1,vectorX2,vectorY1,vectorY2:integer;
  begin
    vector1.GetVector(vectorX1,VectorY1);
    vector2.GetVector(vectorX2,VectorY2);
    result.SetVector(vectorX2-vectorX1,vectorY2-vectorY1);
  end;
  var
    x,y,x1,x2,y1,y2       :integer;
    vector1,vector2,result:TVector;
    operationAdd          :TOperationAdd;
    operationSub          :TOperationSub;
begin
  clrscr;
  randomize;
  x1:=random(10);
  x2:=random(10);
  y1:=random(10);
  y2:=random(10);
  vector1.Init(x1,x2,y1,y2);
  vector1.GetVector(x,y);
  writeln('A(',x1,',',y1,'); B(',x2,',',y2,'); AB(',x:1,',',y,')');
  x1:=random(10);
  x2:=random(10);
  y1:=random(10);
  y2:=random(10);
  vector2.Init(x1,x2,y1,y2);
  vector2.GetVector(x,y);
  writeln('C(',x1,',',y1,'); D(',x2,',',y2,'); CD(',x,',',y,')');
  operationAdd.SetVectors(vector1,vector2);
  operationAdd.Add(result);
  result.GetVector(x,y);
  writeln('Add: (',x,',',y,')');
  operationSub.SetVectors(vector1,vector2);
  operationSub.Sub(result);
  result.GetVector(x,y);
  writeln('Sub: (',x,',',y,')');
  readkey;
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.01.2010, 21:01
Ответы с готовыми решениями:

Возможности модификации программы при использовании виртуальных методов
Приветики, всем доброго время суток!!! Разбираю задачку по PASCAL и наткнулся на ошибку № 3 в 5той строке (TInsertMyDn =...

ООП: Зачем нужна таблица виртуальных методов? Она замедляет работу программы
Разве нельзя определить, метод какого класса вызывать во время компиляции?

Полиморфизм и исследование виртуальных функций
Добавьте в состав класса виртуальную функцию просмотра текущего объекта print (), а в производный класс Phone_l - переопределенную...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.01.2010, 21:01
Помогаю со студенческими работами здесь

Полиморфизм в C++: практическое использование переопределния виртуальных функций
Доброго всем времени суток. Решил разобраться с полиморфизмом в C++. Но в процессе изучения натолкнулся на такую дилемму. Не понимаю...

Использование виртуальных методов
На экзамене дали данную программу, но она не компилируется. Что предполагал автор всё же хотелось узнать и верный вывод. class A { ...

Вызов виртуальных методов
Добрый день! Не могу разобраться с примером из спецификации, объясните, пожалуйста, почему пример, приведенный ниже, выводит то, что...

Наследование и переопределение виртуальных методов
Здравствуйте уважаемые программисты. Помогите разобраться с наследованием и переопределением методов. Есть иерархия классов: ...

Программирование динамических и виртуальных методов
Помогите, выдаёт ошибку! Ругается на функцию strcpy(), и на x4 = new MILKPRO("Мишка", 42, true); }#include <stdio.h> ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru