Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сравнение синтаксиса команд Pascal и С.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
899 Кб
Скачать
☆

I:integer; // переменных, в том числе «I»

begin // начало функции

end; // конец функции

На языке C++

TForm1 *Form1; // Объявление глобальной переменной

// Form1 – текущая форма программы

bool Revers; // Объявление глоб. переменной Revers

// логического типа

const double Pi = 3.14159265; // Объявление глобальной константы

// типа с плавающей запятой

//--------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//--------------------------------------------------------------

// Процедура, вызываемая при нажатии кнопки Button1 на форме

Void __fastcall tForm1::Button1Click(tObject *Sender)

{ // начало функции

Int I; // объявление локальной внутри процедуры

// переменной «i»

// объявление локального массива констант

const char A[10] = {'0','1','2','3','4','5','6','7','8','9'};

...

} // конец функции

//--------------------------------------------------------------

double Polozenie (void)

{ // начало функции

double a,b,c;

int i;

} // конец функции

1.3 Указатели

Существует определенный класс переменных, называемых указателями. Аналогом указателя можно назвать оглавление в книге. Для того, чтобы найти определенную информацию сначала читатель по оглавлению находит название главы, параграфа, подпункта. Затем по номеру страницы переходит непосредственно к тексту.

Указатель есть переменная, которая указывает, в каком месте памяти искать информацию. По другому, указатель хранит адрес в памяти, по которому находится начало информации. Таким образом, указателями удобно пользоваться для доступа к массивам однотипных данных.

На языке Pascal работа с указателями осуществляется следующим образом:

type MyIntPointer = ^Integer; // Объявление пользов. типа

// указатель на переменную

// целого типа

function Polozenie ():real;

var

I:integer;

k:MyIntPointer; // объявление указателя

P: ^TButton; // объявление указателя на объект «TButton»

begin

P:=@Form1.Button1; // определение адреса объекта «Button1»

P^.Visible := True; // изменение свойства «Button1» с помощью

// указателя

k:=@i; // Определение адреса переменной «i»

k^:=10; // доступ к переменной «i» через указатель «k»

Inc(k,2); // перемещение указателя вперед на 2 длины

// переменной целого типа, то есть доступ к

// другой переменной через указатель «k»

end;

Необходимо отметить, что при выполнении последней команды указатель указывает на несуществующую переменную. Если же выполнить операцию записи (присвоения) через указатель (например, k^:=5;), то это может привести к ошибке выполнения программы, или к порче информации.

На языке C++:

typedef int *MyIntPointer; // Объявление пользов. типа

// указатель на переменную

// целого типа

double Polozenie (void)

{

int i;

MyIntPointer k; // объявление указателя

TButton *P; // объявление указателя на объект «TButton»

P = Form1->Button1; // определение адреса объекта «Button1»

P->Visible = True; // изменение свойства «Button1» с помощью

// указателя

k = &i; // Определение адреса переменной «i»

*k = 10; // доступ к переменной «i» через указатель «k»

k += 2; // перемещение указателя вперед на 2 длины

// переменной целого типа, то есть доступ к

// другой переменной через указатель «k»

};

Необходимо отметить, что команда «P = Form1->Button1;» фактически копирует адрес объекта «Button1» в указатель «P». Дело в том, что на языке C++ доступ к объектам, помещаемым на форме, осуществляется только через указатели.