Рассказать и показать на примере паскаль: 1) что такое absolute и для чего нужна? 2) что такое asm и для чего нужна? 3) что такое constructor и destructor и для чего нужна? 4) что такое implementation и для чего нужна? 5) назовите модули паскаль ( в строке uses, например crt) и какие возможности этот модуль дает? 6) что за тип переменной: указательный (pointer) 7) и на последок: что означает символ @ , #, $ , ^

aigerimnur aigerimnur    3   19.05.2019 08:50    0

Ответы
Vlada434 Vlada434  12.06.2020 13:17

1) absolute - директива для задания адреса переменной.
Например:
var
a : integer absolute $0040:$0002; //Сеегмент:смещение

2) asm - директива для ассемблерных вставок.
используется в критичных участках кода.
пример:

begin
asm
xor ax, ax
end
end.

3)
Конструктор и деструктор нужны для создания и уничтожения экземпляра класса.
Существуют конструкторы/деструкторы по умолчанию, но если мы хотим заменить его своим, то используются constructor/destructor.
Пишется просто - вместо function/procedure пишется constructor/destructor, ну и в классе прописывается.
type
ooo = class
public
a, b : integer;
constructor create (x, y : integer);
end;

constructor ooo.create (x, y : integer);
begin
a := x;
b := y;
end;

4)
implementation - в модуле обозначает начало исполняемой части, то есть там сами функции, процедуры и инициализация модуля.
Нужна, разумеется, чтобы отделить части модуля друг от друга.

Пример модуля:

Unit embler;

Interface

Procedure AddS (x,y: integer, var z: integer);

Implementation
Procedure AddD (x,y: integer, var z: integer);
begin
z := 2 * x + y;
end;
end.

5) Например, Graph - позволяет работать с графикой,
Math - математические функции, Windows - системные функции.

6) Pointer хранит адрес. По этому адресу можно пойти и взять значение переменной, при этом неважно какого она типа. Там, например может быть массив.

7) @ - берет адрес переменной
^ - обозначение, что это указатель ИЛИ что это разыменование

пример:
var
a : ^integer; // указатель на Integer;
b : integer;
begin
a := @b;
b := a^ + 2; //То же самое, что b := b + 2;
end.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика