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

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

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

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

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

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

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

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

     

Ответы 1

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

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

    begin asm xor ax, ax endend.

    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.

    • Автор:

      cubby
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years