Напоминаем, чтобы научиться хорошо программировать, нужно отлично выучить
математика онлайн.
1. Элементы языка Паскаль
1.1. Имена (идентификаторы)
[a..z, A..Z, 0..9, _ ]
1.2. Зарезервированные слова
Заголовки: program, unit, procedure, function.
Блоки описания: const, var, label, type.
Создания новых типов: array, string, record…end, file, file of…
Операторные скобки: begin…end.
Операторы:
if … then … else …;
case … of …
end;
for … to … do …;
for … downto … do …;
repeat …
until …;
while … do …;
with … do …
1.3. Специальные символы
Следующие одиночные символы являются специальными символами.
# $ & ' ( ) * + , – . / : ; < = > @ [ ] ^ { }
Следующие символьные пары являются также специальными символами.
(* (. *) .) .. // := <= >= < >
Левая скобка - [ - эквивалентна символьной паре левой скобки и точки - (.; правая скобка - ] - эквивалентна символьной паре точки и правой скобки -.)
Левая скобка+звездочка и звездочка+правая скобка - (* *)- эквивалентна левой и правой скобкам - { }.
Обратите внимание, что !, " (апостроф), %, ?, \, _ (подчеркивание), |, ~ (тильда) - не специальный символы.
1.4. Программа в Delphi
program Pr0;
{$APPTYPE CONSOLE}
var
x, y: real;
begin
X:=2;
Y:=(x+2.3)/(Sqr(x)+1);
Writeln(‘y=’,y:8:3);
Readln;
end.
Программа в Delphi называется проектом и состоит из небольшой головной части, имеющей расширение *.dpr, вспомогательных файлов *.res, *dsk, *.dof, *.cnf, и нескольких модулей, имеющих расширение *.pas (рис. 2). В первое время мы будем работать в режиме консоли (без форм), поэтому необходима команда компилятора
{$APPTYPE CONSOLE}
При запуске проекта на выполнение (команда меню Run/Run или клавиша F9) создаются файлы с расширением *.exe и *.dcu.
Проект — это вся совокупность файлов, из которых Delphi создает приложение. Один проект соответствует одному приложению. В состав проекта Delphi обязательно входят следующие элементы:
• Файл проекта (его расширение .DPR). Это программный код на языке Object Pascal, который генерируется автоматически и содержит ссылки на все модули проекта и инициализирует приложение. При создании нового проекта файл содержит следующие строки:
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
• Файлы всех модулей, входящих в проект (*.PAS). Любая форма из состава проекта обязательно имеет свой модуль, однако, обратное утверждение не всегда верно, и могут существовать чисто программные модули. В каждом модуле может содержаться только одна форма. При создании новой формы генерируется текст файла Unit1.pas.
• Значения свойств формы и ее компонентов сохраняются в файле ресурсов *.DFM.
• Файл ресурсов приложения (*.RES). В него входят ресурсы, не вошедшие в формы, например, значок приложения, который будет виден при его свертывании.
• Файл параметров проекта (*.DOF). Все параметры среды разработчика ориентированы на проект и могут быть сохранены и затем восстановлены при загрузке этого проекта.
• В Delphi 4 добавлен еще один файл - файл конфигурации проекта с расширением *.CFG.
• При компиляции проекта и отдельных модулей создаются бинарные файлы *.EXE и *.DCU.
Так как проект состоит из большого количества файлов, то рекомендуется для каждого проекта создавать свой каталог.
1.5. Разделы описания
1.5.1. Описание переменных
Прежде чем использовать переменную, константу, новый тип, процедуру или функцию их надо описать. Для описания переменных служит служебное слово VAR.
var <список имен переменных>: <тип>;
Например,
var
i,k : integer;
x,y : real;
S : string;
Ch : char;
Каждая группа переменных состоит из имен переменных, разделенных запятыми, символа двоеточия “:” и имени типа. Группы переменных разделяются символом точка с запятой “:”
1.7.2. Описание типов
Новые типы данных описываются в разделе, который начинается служебным словом TYPE:
type <имя типа> = <описание типа>;
type
TNameFile=string[80];
TPoint=array[1..3] of real;
TF=file of real;
Как правило, имена типов начинаются с символа T.
1.5.3. Описание констант
Новые константы описываются в разделе, который начинается служебным словом CONST:
сonst <имя константы>[: тип] = <значение>;
Const
a=17; b=-12.56e-2; c=$FF; c=’A’; c=#$41; c=#65;
ch0=’A’; ch1=#65;
MyName=’Петя’;
Целые и вещественные константы могут представляться в десятичной записи как последовательности цифр без запятых или пробелов со знаками + или -. Цифры с десятичными точками или показателями степени обозначают вещественные числа. Если в записи константы используется символ E или e, это означает "умножить мантису на десять в степени". Например, 7E-2 = 7*10^-2, и 12.25e+6 = 12.25e6 = 12.25*10^6.
Префикс знака доллара указывает шестнадцатеричное число, например, $1F=1*16+15=31. Шестнадцатеричные числа могут задаваться в пределах от $00000000 до $FFFFFFFF.
Строка это массив ASCII-символов с кодами от 0 до 255 (ASCII – American Standard Code for Information Interchange). Строка может быть ссылкой на строку (тип string или string[n]), набором символов, или комбинацией ссылки на строку и наборов символов.
Два последовательных апострофа в строке обозначают один символ - апостроф.
'BORLAND' { BORLAND }
'You''ll see' { You'll see }
'' { пустая строка }
' ' { пробел }
Набор символов – последовательность из одного или более управляющих символов, которые состоят из символа #, за которым следует целое число от 0 до 255 (десятичное или шестнадцатеричное) - код соответствующего ASCII-символа: #89#111#117 = 'You'. Можно объединить строки с наборами символов. Например,
'Line 1'+#13+#10+'Line 2'.
1.6. Исполняемые операторы
Исполняемые операторы – операторы (присваивания, if, for, case, while, repeat) и вызовы процедур. Операторы разделяются между собой символом точка с запятой “;”.
Синтаксис опрераторов if, for, case, while требует использование только одного оператора. Если требуется выполнить несколько операторов, то они объединяются в один с помощью составного оператора begin … end.
begin
I := 10;
while I > 0 do begin
x:=Sin(Pi*i);
I := I - 1;
End;
end;
Существует большое количество библиотек процедур, функций и классов, которые обладают своими процедурами и функциями (методами). Эти библиотеки существуют в виде файлов (*.dcu) или могут быть созданы программистом.
1.7. Выражение. Оператор присваивания
Для начала нам потребуется оператор присваивания:
W := A;
где W – переменная, A – выражение.
Для создания выражений можно использовать константы, переменные, функции, операции и скобки ( и ). Выражение - конструкция, которая возвращает величину. Например,
X { переменная }
@X { адрес переменной }
15 { целая константа }
Calc(X,Y) { вызов функции }
X * Y { произведение X и Y }
Z / (1 - Z) { частное Z и (1 - Z) }
X = 1.5 { логическая }
not Done { отрицание логической }
['a','b','c'] { множество }
Char(48) { символ с кодом 48 }
1.9.1. Арифметические функции
function Abs(X: Extended): Extended; // модуль
function ArcTan(X: Extended): Extended;
function Cos(X: Extended): Extended;
procedure Dec(var X[ ; N: Longint]) ; // Dec(x,N) eqv x:=x-N;
function Exp(X: Extended): Extended;
function FloatToStr(Value: Extended): string;
function FloatToStrF(Value: Extended; Format: TFloatFormat; Precision, Digits: Integer): string;
procedure Inc(var X[ ; N: Longint]) ; // Inc(x,N) eqv x:=x+N;
function IntToStr(Value: Integer): string;
function Ln(X: Real): Real;
function Pi: Extended; // возвращает 3.1415926535897932385.
function Random [ ( Range: Integer) ] ; // случайное число
function Round(X: Extended): Int64; // целая часть
function Sin(X: Extended): Extended;
function Sqr(X: Extended): Extended; // квадрат
function Sqrt(X: Extended): Extended; // корень
procedure Str(X [: Width [: Decimals ]]; var S);
function StrToFloat(const S: string): Extended;
function StrToInt(const S: string): Integer;
function Trunc(X: Extended): Int64; // целая часть
Другие математические функции собраны в стандартном модуле Math.
1.7.2. Примечания
Tan(x) = Sin(x) / Cos(x)
ArcSin(x) = ArcTan (x/sqrt (1-sqr (x)))
ArcCos(x) = ArcTan (sqrt (1-sqr (x)) /x)
Loga(x) = Exp(x*Ln(a))
1.7.3. Примеры
var x : real;
S : string;
begin
x := Exp(1.0);
Writeln(x:3:2);
Str(ln(x):3:2, S);
Writeln('x = ' + FloatToStr(x) + '; ln(x) = ' + S);
Readln;
End.