Рассказать и показать на примере Паскаль:

1) Что такое absolute и для чего нужна?

2) Что такое asm и для чего нужна?

3) Что такое constructor и destructor и для чего нужна?

4) Что такое implementation и для чего нужна?

5) Назовите модули Паскаль ( в строке Uses, например crt) и какие возможности этот модуль дает?

6) Что за тип переменной: указательный (Pointer)

7) И на последок: что означает символ @ , #, $ , ^

1

Ответы и объяснения

2013-04-02T12:55:14+00:00

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.