Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 8
На сайте нет зарегистрированных пользователей

Пользователей: 13,361
новичок: uehuat
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование интернет магазина (Apache, Php, Html) на GPSS + Блок схема
Расчет мер близости на отношениях на Delphi + Пояснительная записка
Игра Sokoban на Delphi + Блок схемы

Краткое введение в Object Pascal
Структура проекта
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

В Object Pascal в качестве ограничителей комментария могут также использоваться пары символов (*, *) и //. Скобки (*...*) используются подобно фигурным скобкам, т. е. комментарием считается находящийся в них фрагмент текста, а символы // указывают компилятору, что комментарий располагается за ними и продолжается до конца текущей строки:
{ Это комментарий }
(* Это тоже комментарий *)
// Все символы до конца этой строки составляют комментарий
Структура модуля

Модули - это программные единицы, предназначенные для размещений фрагментов программ. Следующий фрагмент программы является синтаксически правильным вариантом модуля:
unit Unit1;
interface
// Секция интерфейсных объявлений
implementation
// Секция реализации
end.

В секции интерфейсных объявлений описываются программные элементы (типы, классы, процедуры и функции), которые будут "видны" другим программным модулям, а в секции реализации раскрывается механизм работы этих элементов. Разделение модуля на две секции обеспечивает удобный механизм обмена алгоритмами между отдельными частями одной программы. Он также реализует средство обмена программными разработками между отдельными программистами. Получив откомпилированный "посторонний" модуль, программист получает доступ только к его интерфейсной части, в которой, как уже говорилось, содержатся объявления элементов. Детали реализации объявленных процедур, функций, классов скрыты в секции реализации и недоступны другим модулям.
Элементы программы

Элементы программы - это минимальные неделимые ее части, еще несущие в себе определенную значимость для компилятора. К элементам относятся:
зарезервированные слова;
идентификаторы;
типы;
константы;
переменные;
метки;
подпрограммы;
комментарии.

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

Зарезервированные слова

and except label resourcestring
array exports library set
as file mod shl
asm finalization nil shr
begin finally not string
case for object then
class function of threadvar
const goto or to
constructor if out try
destructor implementation packed type
dispinterface in procedure unit
div inherited program until
do initialization property uses
downto inline raise var
else interface record while
end is repeat with
xor

Стандартные директивы первоначально связаны с некоторыми стандартными объявлениями в программе. К ним относятся:
absolute export pascal requires
abstract external private public
assembler far protected safecall
automated forward near read
cdecl implements published readonly
contains index override resident
default message package stdcall
dispid name register stored
dynamic nodefault reintroduce virtual
write writeonly

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

К основным типам данных языка Delphi относятся:
целые числа (integer);
дробные числа (real);
символы (char);
строки (string);
логический тип (boolean).



Целые числа и числа с плавающей точкой могут быть представлены в различных форматах.





Примечание

В версиях Delphi 4 и 5 тип Real эквивалентен типу Double. Если требуется (в целях совместимости) использовать 6-байтный Real, нужно указать директиву компилятора {SREALCOMPATIBILITY ON}.



Массивы

Массивы в Object Pascal во многом схожи с аналогичными типами данных в других языках программирования. Отличительная особенность массивов заключается в том, что все их компоненты по сути данные одного типа. Эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием его порядкового номера. Описание типа массива задается следующим образом:
= array [ ] of ;

В качестве индексных типов в Object Pascal можно использовать любые порядковые типы, имеющие объем не более 2 Гбайт (т. е. кроме LongWord И Int64).

Определить переменную как массив можно и непосредственно при описании этой переменной, без предварительного описания типа массива, например:
var
a,b : array [1..10] of Real;
Динамические массивы

С версии Delphi 4 впервые введены так называемые динамические массивы. При объявлении таких массивов в программе не следует указывать границы индексов:
var
A: array of Integer;
В: array of array of Char;
C: array of array of array of Real;

В этом примере динамический массив А имеет одно измерение, массив В - два и массив С - три измерения. Распределение памяти и указание границ индексов по каждому измерению динамических массивов осуществляется в ходе выполнения программы путем инициации массива с помощью функции SetLength. В ходе выполнения такого оператора:
SetLength(А,3);

одномерный динамический массив A будет инициирован, т. е. получит память, достаточную для размещения трех целочисленных значений. Нижняя граница индексов по любому измерению динамического массива всегда равна 0, поэтому верхней границей индексов для A станет 2.
Объявление одномерного массива:
ИмяМассива: array [НижнийИндекс...ВерхнийИндекс] of ТипЭлементов;
Объявление двумерного массива:
ИмяМассива: array [НижнийИндекс1..ВерхнийИндекс1,
НижнийИндекс2..ВерхнийИкдекс2] of ТипЭлементов;
Записи

Запись - это структура данных, состоящая из фиксированного количества компонентов, называемых полями записи. В отличие от массива компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.

Структура объявления типа записи такова:
= record

end;

Вариант 1. Объявление записи в разделе переменных:
Запись: record
Поле1:Тип1;
Поле2: Тип2;
ПолеJ: TиnJ;
end;

Вариант 2. Сначала объявляется тип-запись, затем - переменная-запись:
type ТипЗапись = record
Поле1: Тип1;
Поле 2:Тип2;
ПолеК: ТипК;
end;
var Запись: ТипЗапись;
Множества

Множества - это наборы однотипных логически связанных друг с другом объектов. Характер связей между объектами лишь подразумевается программистом и никак не контролируется Object Pascal. Количество элементов, входящих в множество, может меняться в пределах от 0 до 255 (множество, не содержащее элементов, называется пустым). Именно непостоянством количества своих элементов множества отличаются от массивов и записей.

Два множества считаются эквивалентными тогда и только тогда, когда все их элементы одинаковы, причем порядок следования элементов в множестве безразличен. Если все элементы одного множества входят также и в другое, говорят о включении первого множества во второе. Пустое множество включается в любое другое.

Описание типа множества имеет вид:
= set of ;
Указатели

Оперативная память ПК представляет собой совокупность ячеек для хранения информации - байтов, каждый из которых имеет собственный номер. Эти номера называются адресами, они позволяют обращаться, к любому байту памяти. Object Pascal предоставляет в распоряжение программиста гибкое средство управления динамической памятью - так называемые указатели.

Указатель - это переменная, которая в качестве своего значения содержит адрес байта памяти. С помощью указателей можно размещать в динамической памяти любой из известных в Object Pascal типов данных. Лишь некоторые из них (Byte, Char, ShortInt, Boolean) занимают во внутреннем представлении один байт, остальные - несколько смежных. Поэтому на самом деле указатель адресует лишь первый байт данных.

Как правило, указатель связывается с некоторым типом данных. Такие указатели будем называть типизированными.
Строки

Объявление переменной-строки длиной 255 символов: Имя: string;

Объявление переменной-строки указанной длины: Имя: string [ ДлинаСтроки ].
Операции

В Object Pascal определены следующие логические операции:
not - логическое НЕ;
and - логическое И;
or - логическое ИЛИ;
xor - исключительное ИЛИ.

К логическим же в Object Pascal обычно относятся и две сдвиговые операции над целыми числами:

i shl j - сдвиг содержимого i на j разрядов влево; освободившиеся младшие разряды заполняются нулями;

i shr j - сдвиг содержимого i на j разрядов вправо; освободившиеся старшие разряды заполняются нулями.

Правила использования операций с операндами различного типа.



Составной оператор

Составной оператор - это последовательность произвольных операторов программы, заключенная в операторные скобки - зарезервированные слова begin ... end . Составные операторы - важный инструмент Object Pascal, дающий возможность писать программы по современной технологии структурного программирования (без операторов перехода goto).
Инструкции выбора

Инструкция if

Вариант 1: if-then-else.
if Условие then
begin
{ Инструкции, которые выполняются, если условие истинно. } end else
begin
{ Инструкции, которые выполняются, } { если условие ложно } end ;

Вариант 2: if-then.
if Условие then
begin
{ Инструкции, которые выполняются, если условие истинно. } end;

Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

Инструкция case

Вариант 1:
case Выражение of
Список1_Констант: begin
{ инструкции } end;
Список2_Констант: begin
{ инструкции } end;
СписокJ_Констант: begin
{ инструкции } end;
end;

Вариант 2:
case Выражение of
Список1_Констант: begin
{ инструкции } end;
Список2_Констант: begin
{ инструкции } end;
СписокJ_Констант: begin
{ инструкции J} end; else
begin
{ инструкции }
end;
end;

Инструкции между begin и end выполняются, если значение выражения, записанного после case, совпадает с константой из соответствующего списка. Если это не так, то выполняются инструкции, находящиеся после else, между begin и end.

Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.
Циклы

Инструкция for

Вариант 1 (с увеличением счетчика):
for Счетчик:=НачальноеЗначение to КонечноеЗначение do
begin
{ здесь инструкции }
end;

Если НачальноеЗначение > КонечноеЗначение, то инструкции между begin и end не выполняются.

Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

Вариант 2 (с уменьшением счетчика):
for Счетчик:=НачальноеЗначение downto КонечноеЗначение do
begin
{ здесь инструкции }
end;

Если НачальноеЗначение < КонечноеЗначение, то инструкции между begin и end не выполняются.

Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

Инструкция repeat
repeat
{ инструкции }
until Условие;

Сначала выполняются инструкции цикла, которые расположены между repeat и until. Затем вычисляется значение выражения Условие, и если оно равно False, то инструкции цикла выполняются еще раз. И так до тех пор, пока значение выражения Условие не станет равным True.

Инструкция while
while Условие do
begin
{ инструкции )
end;

Сначала проверяется Условие, если оно истинно, то выполняются инструкции между begin и end. Затем снова проверяется Условие. Если оно выполняется, то инструкции цикла выполняются еще раз. И так до тех пор, пока Условие не станет ложным.

Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.
Объявление функции
function ИмяФункции(var Параметр1: Тип 1; var Параметр2: Тип2;
var ПараметрJ: TиnJ ) : Тип;
const
{ описание констант }
var
{ описание переменных }
begin
{ инструкции функции }
Result:=Значение;
end;

Примечание: слово var ставится перед именем параметра в том случае, если параметр используется для возврата значения из функции в вызвавшую ее программу.
Объявление процедуры
procedure ИмяПроцедуры(var Параметр1: Тип1;
var Параметр2: Тип2; var ПараметрJ: TипJ } ;
const
{ описание констант }
var
{ описание переменных }
begin
{ инструкции процедуры }
end;

Примечание: слово var ставится перед именем параметра в том случае, если параметр используется для возврата значения из процедуры в вызвавшую ее программу.
Опубликовал Kest November 12 2008 20:58:19 · 0 Комментариев · 11694 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
VksButton
База данных фильм...
OnlineIP
Proeffectimage
Еext Editor
Удаление своего EXE
Программа для рис...
ZipForge
3D Октаэдр
Библия хакера 2 К...
Illusion
C++ Builder 6 СПР...
WinPopup
PBEditPack
CodeGear RAD Stud...
PHP/MySQL для нач...
Интерактивный инт...
Tag Игра "Пятнашк...
Книга по Delphi (...
EMSQuickImport

Топ загрузок
Приложение Клие... 100771
Delphi 7 Enterp... 97787
Converter AMR<-... 20259
GPSS World Stud... 17014
Borland C++Buil... 14186
Borland Delphi ... 10267
Turbo Pascal fo... 7372
Калькулятор [Ис... 5968
Visual Studio 2... 5205
Microsoft SQL S... 3661
Случайные статьи
Функция binary_sea...
Всплывающие сообщения
Запросы
В программе предпо...
Задание таблицы дл...
Использование мето...
«Бегун» про контек...
Описание правильны...
Что происходит пос...
г) открытый ключ Дона
ENDIF directive ml...
Службы мета катало...
• Computer Configu...
Дорвеи и поисковые...
Игровые автоматы к...
Вывести все 3х зна...
Задача на геометри...
Вы готовы выпустит...
Для простого разве...
Обеспечение доступ...
Простые свойства
Инструменты раскру...
На компьютерах Mac...
Динамическое храни...
Обеспечение требуе...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?