Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Среда программирования Free Pascal (часть 1)
Язык назван в честь выдающегося французского математика, физика, литератора и философа Блеза Паскаля, который создал первую в мире механическую машину, складывающую два числа.
Язык Паскаль был разработан Никлаусом Виртом в 1970 г. как язык со строгой типизацией и интуитивно понятным синтаксисом. В 80-е годы наиболее известной реализацией стал компилятор Turbo Pascal фирмы Borland, в 90-е ему на смену пришла среда программирования Delphi, которая стала одной из лучших сред для быстрого создания приложений под Windows. Delphi ввела в язык Паскаль ряд удачных объектно-ориентированных расширений, обновленный язык получил название Object Pascal. Из альтернативных реализаций Object Pascal следует отметить многоплатформенный open source компилятор Free Pascal.
Free Pascal Compiler - Описание разработчика: "Free Pascal Compiler (FPC) - это свободно распространяемый компилятор языка Паскаль с открытыми исходными кодами. Он совместим с Borland Pascal 7 и Object Pascal Delphi, но при этом обладает рядом дополнительных возможностей, например, поддерживает перегрузку операторов. FPC кроссплатформенный инструмент, поддерживающий огромное количество платформ. Среди них AmigaOS, DOS, Linux, *BSD, OS/2, MacOS(X) и Win32.
Однако FPC не просто компилятор. Он имеет в своём составе великолепный набор библиотек, одной из которых является FCL, включающая в себя компоненты, совместимые с невизуальными компонентами VCL из Borland Delphi.
Компилятор переводит программу на язык машинных кодов.
Программа это алгоритм, записанный на языке программирования, который должен выполнить компьютер.
Алфавит - это совокупность допустимых в языке символов. Алфавит включает следующий набор основных символов:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
спецификаторы: ^ # $
ABSOLUTE EXPORTS FAR SET ASSEMBLER SHR
EXTERNAL VIRTUALDO SHL AND LIBRARY NAME
ARRAY FILE NIL STRING ASM FOR
NEAR ASSEMBLER THEN NOT FORWARD TO
BEGIN FUNCTION OBJECT GOTO TYPECASE OF
UNITCONST PRIVATE OR IN PACKED INDEX
VARDIV INLINE EXPORT IF PUBLIC LABEL
WITHELSE RESIDENT RECORD MOD XOREND REPEAT
INTERFACE NTERRUPT INHERITED I PROCEDURE
IMPLEMENTATION UNTILCONSTRUCTOR USESDESTRUCTOR
PROGRAM WHILEDOWNTO
Программа на языке PascalABC.NET имеет следующий вид:
program имя программы;
раздел uses
раздел описаний
begin
операторы
end.
Первая строка называется заголовком программы и не является обязательной.
Раздел uses начинается с ключевого слова uses, за которым следует список имен модулей и пространств имен .NET, перечисляемых через запятую.
Раздел описаний может включать разделы описания переменных, констант, меток, типов, процедур и функций, которые следуют друг за другом в произвольном порядке.
Далее следует блок begin/end, внутри которого находятся операторы, отделяемые один от другого символом "точка с запятой".
Раздел uses и раздел описаний могут отсутствовать.
Идентификаторы служат в качестве имен программ, модулей, процедур, функций, типов, переменных и констант. Идентификатором считается любая последовательность латинских букв или цифр, начинающаяся с буквы. Буквой считается также символ подчеркивания "_".
Например, a1, _h, b123 - идентификаторы, а 1a, ф2 - нет.
Переменные могут быть описаны в разделе описаний, а также непосредственно внутри любого блока begin/end.
Раздел описания переменных начинается со служебного слова var, после которого следуют элементы описания вида
или
или
Имена в списке перечисляются через запятую.
Пример описания переменных
Например:
var
a,b,c: integer;
d: real := 3.7;
s := 'Pascal forever';
al := new ArrayList;
p1 := 1;
Раздел описания именованных констант начинается со служебного слова const, после которого следуют элементы описания вида
или
Пример описания констант
const
Pi = 3.14;
Count = 10;
Name = 'Mike';
DigitsSet = ['0'..'9'];
Arr: array [1..5] of integer = (1,3,5,7,9);
Rec: record name: string; age: integer end = (name: 'Иванов'; age: 23);
Arr2: array [1..2,1..2] of real = ((1,2),(3,4));
Раздел описания меток начинается с зарезервированного слова label, после которого следует список меток, перечисляемых через запятую. В качестве меток могут быть использованы идентификаторы и положительные целые числа:
label a1,l2,777777;
Раздел описания типов начинается со служебного слова type, после которого следуют строки вида
Например,
type
myint = integer;
arr10 = array [1..10] of integer;
pinteger = ^integer;
A = class
i: integer;
constructor Create(ii: integer);
begin
i:=ii;
end;
end;
Простые (порядковые) типы
Тип |
Идентификатор |
Размер в байтах |
Диапазон значений |
логический |
boolean |
1 |
true, false |
символьный |
char |
1 |
все символы кода ASCII |
Интервальный тип (тип-диапазон) определяется пользователем и формируется только из порядковых типов. Представляет собой подмножество значений в конкретном диапазоне.
Можно создать собственный тип данных простым перечислением значений, которые может принимать переменная данного типа. Это так называемый перечисляемый тип данных.
Целочисленные типы
Тип |
Диапазон |
Формат |
Размер в байтах |
Byte |
0..255 |
Беззнаковый |
1 |
ShortInt |
−128..127 |
Знаковый |
1 |
SmallInt |
−32768..32767 |
Знаковый |
2 |
Word |
0..65535 |
Беззнаковый |
2 |
Integer |
-32768..32767 |
Знаковый |
2 |
LongWord |
0..4294967295 |
Беззнаковый |
4 |
LongInt |
−2147483648..2147483647 |
Знаковый |
4 |
QWord |
0..18446744073709551615 |
Беззнаковый |
8 |
Вещественные типы
Идентификатор |
Длина (байт) |
Диапазон значений |
real |
6 |
2,9x10-39 - 1,7x1038 |
single |
4 |
1,5x10-45 - 3,4x1038 |
double |
8 |
5x10-324 - 1,7x10308 |
extended |
10 |
3,4x10-4932 - 1,1x104932 |
Структурированные типы
Выражение задает правило вычисления некоторого значения. Выражение состоит из констант, переменных, указателей функций, знаков операций и скобок.
Математические операции
Символ операции |
Название операции |
Пример |
* |
умножение |
2*3 (результат: 6) |
/ |
деление |
30/2 (результат: 1.5E+01) |
+ |
сложение |
2+3 (результат: 5) |
- |
вычитание |
5-3 (результат: 2) |
div |
целочисленное деление |
5 div 2 (результат: 2) |
mod |
остаток от деления |
5 mod 2 (результат: 1) |
Логические операции
Над логическими аргументами в Паскале определены следующие операции:
NOT - логическое отрицание («НЕ»)
AND - логическое умножение ("И")
OR - логическое сложение («ИЛИ»)
XOR - логическое «Исключающее ИЛИ»
A |
B |
not A |
A and B |
A or B |
A xor B |
true |
true |
false |
true |
true |
false |
true |
false |
|
false |
true |
true |
false |
true |
true |
false |
true |
true |
false |
false |
|
false |
false |
false |
Операции отношения
> - больше < - меньше = - равно <> - не равно
>= - больше или равно <= - меньше или равно
В операциях отношения могут принимать участие не только числа, но и символы, строки, множества и указатели.
Приоритет операций
Порядок выполнения операций переопределить можно с помощью скобок.
Например: 2*5+10 равно 20, но 2*(5+10) равно 30.
Стандартные функции Pascal
Обращение |
Тип аргумента |
Тип результата |
Примечание |
Abs(x) |
Целый, вещественный |
Целый, вещественный |
Модуль аргумента |
Sqr(x) |
Целый, вещественный |
Целый, вещественный |
Квадрат аргумента |
Sqrt(x) |
Целый, вещественный |
вещественный |
Корень квадратный |
Sin(x) |
Целый, вещественный |
вещественный |
Синус, угол в радианах |
Cos(x) |
Целый, вещественный |
вещественный |
Косинус, угол в радианах |
ArcTan(x) |
Целый, вещественный |
вещественный |
Арктангенс (значение в радианах) |
Exp(x) |
Целый, вещественный |
вещественный |
Экспонента |
Frac(x) |
вещественный |
вещественный |
Дробная часть числа |
Int(x) |
Целый, вещественный |
вещественный |
Целая часть числа |
Ln(x) |
Целый, вещественный |
вещественный |
Логарифм натуральный |
Pi |
- |
вещественный |
3,141592653 |
Random |
- |
вещественный |
Псевдослучайное число в интервале [0, 1] |
Round(x) |
вещественный |
целый |
Округление до ближайшего целого |
Trunc(x) |
вещественный |
целый |
Отбрасывание дробной части числа |
Возведение числа в степень
Хy EXP(y*Ln(x))
Оператор присваивания
<имя_переменной>:=<выражение>
Примеры:
Ввод данных
Примеры:
Список вывода может содержать константы, переменные, выражения, формат вывода. Выражения в списке вывода разделяются запятыми.
Вывод данных
Примеры:
Окончание ln в имени процедуры означает, что курсор автоматически будет переведен в начало следующей строки экрана.