Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Мансуров. Основы программирования в среде Lazarus. 2010

.pdf
Скачиваний:
45
Добавлен:
27.04.2021
Размер:
6.3 Mб
Скачать

Глава 2 Введение в язык программирования Pascal

____________________________________________________________________

Значения переменных символьного типа – одиночные символы. Для пред-

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

Значения переменных строкового типа – цепочка символов. При записи констант символьного и строкового типа используют одиночные кавычки.

Пример.

'А' - это символ А

'Это цепочка символов'

2.1.2 Операции отношения

Существуют следующие операции отношения:

= равно, <> не равно, < меньше, > больше, <= меньше или равно,

>= больше или равно.

Результатом этих операций являются логические значения true или false.

2.1.3 Раздел описаний переменных

Этот раздел имеет вид:

var описание 1; описание 2; …; описание n;

var – ключевое слово (от английского variable – переменная)

описание имеет вид:

переменная 1, переменная 2, …, переменная m: тип;

переменная 1, переменная 2, …, переменная к: тип;

…………………………………………………………

переменная 1, переменная 2, …, переменная s: тип;

51

2.1 Основные элементы языка

____________________________________________________________________

тип – одно из ключевых слов: integer, real, boolean, char,

string

Пример раздела описаний:

var a, b, c, x, y: real;

i, j, k, m, n: integer;

FLAG: boolean;

symbol: char;

2.1.4 Выражения. Порядок выполнения операций.

Совокупность переменных и констант, соединенных знаками операций и

скобками, называется выражением.

Пример.

(a+b)/c

((n+q1)*dx+(i+j)*dy)/(x1-2)*(y1-2)

Правила выполнения операций в Паскале:

1. Умножение и деление выполняются раньше, чем сложение и вычитание. Го-

ворят также, что умножение и деление имеют более высокий приоритет, чем сложение и вычитание.

2. Операции, имеющие одинаковый приоритет выполняются слева направо.

Умножение и деление имеют одинаковый приоритет, сложение и вычита-

ние имеют также одинаковый приоритет.

Исходя из этих правил выражение

4/8*5

будет вычисляться следующим образом:

52

Глава 2 Введение в язык программирования Pascal

____________________________________________________________________

Сначала будет вычислено 4/8 (=0.5), а затем результат будет умножен на 5.

Получится 0.5*5=2.5

Всякое отклонение от этих правил должно регламентироваться скобками,

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

2.1.5Константы

ВПаскале есть возможность присвоить константе имя, при этом в после-

дующем тексте программы всюду вместо этой константы можно использовать еѐ имя. Все определения констант перечисляются в специальном разделе – раз-

деле описания констант, имеющем вид:

const

имя 1 = значение 1;

имя 2 = значение 2;

…………………………………………………

имя n = значение n;

Пример.

const

r = 1.87E+5; g = 981E-2;

atmosphere = 760; pi = 3.14159;

Давая имена константам, мы делаем программу более понятной. Запись

2*pi*r гораздо понятнее и информативнее, нежели запись

53

2.1 Основные элементы языка

____________________________________________________________________

2*3.14159*1.87Е+5

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

2.1.6 Комментарии в программе

Для того чтобы программистам было легче читать и разбираться в про-

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

граммиста.

Комментарии бывают однострочные и многострочные. Однострочный комментарий начинается с символов // и размещается только в одной строке.

Например:

//переменная i используется как индекс

//в операторах цикла

i:= 0; // Инициализация переменной

Как мы видим, комментарий можно располагать в одной строке с операто-

ром!

Многострочный комментарий, как явствует из названия, позволяет разме-

щать комментарии в нескольких строках. Многострочный комментарий начи-

нается с символов (* и заканчивается символами *). В качестве ограничителей комментария используются также фигурные открывающие и закрывающие скобки {}. Например:

(* переменная i используется как индекс

в операторах цикла *)

54

Глава 2 Введение в язык программирования Pascal

____________________________________________________________________

i:= 0; (* Инициализация переменной *)

или

{переменная i используется как индекс

воператорах цикла }

i:= 0; { Инициализация переменной }

Программисты чаще всего используют однострочный комментарий и мно-

гострочный комментарий с фигурными скобками.

2.1.7 Операторы

Основная часть программы на Паскале – раздел операторов. Он начинается ключевым словом begin и заканчивается ключевым словом end, за которым следует точка. Операторы отделяются друг от друга точкой с запятой (;). Рас-

смотрим основные операторы:

2.1.7.1. Оператор присваивания

Элементарное действие над переменной – изменение еѐ значения. Для это-

го применяется оператор присваивания, имеющий вид:

имя переменной:= выражение;

В нем переменная и выражение должны быть одного типа.

Пример.

Пусть х – переменная целого типа. Запишем следующий оператор при-

сваивания:

х:= х + 1;

В левой части оператора х обозначает переменную, а в правой части – чис-

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

55

2.1 Основные элементы языка

____________________________________________________________________

2.1.7.2. Операторы ввода/вывода

Во время исполнения программы она обменивается информацией с "внеш-

ним миром". Например, она может выдавать информацию на экран или полу-

чать информацию с клавиатуры. Для этого используются операторы ввода и вывода.

Оператор вывода имеет вид:

write(выражение);

или

writeln(выражение);

В результате выполнения этого оператора значение соответствующего вы-

ражения будет выведено на экран. Выражение может быть любым из указанных выше типов.

Пример.

write(2 + 2); будет выведено на экран 4

write(x = y); будет выведено true или false в зависимости от значений x, y

Оператор writeln отличается от оператора write тем, что выведет зна-

чение выражения с начала новой строки, а оператор write с той позиции стро-

ки, где находится курсор.

В операторе вывода можно указывать несколько выражений, разделяя их запятыми, а также любой текст, заключенный в одинарные кавычки.

Пусть значение А=5. Тогда при выполнении оператора

writeln('Значение А=', А);

будет выведено на экран с новой строки

Значение А=5

56

Глава 2 Введение в язык программирования Pascal

____________________________________________________________________

Оператор ввода имеет вид:

read(имя переменной 1, имя переменной 2,…, имя переменной n); readln(имя переменной 1, имя переменной 2,…, имя переменной n);

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

дится курсор, если же используется readln, то с новой строки и с первой ко-

лонки экрана. Если в одном операторе readln или read вводятся значения нескольких переменных, то при выполнении программы значения, водимые с клавиатуры можно разделять пробелом или символом табуляции (клавиша

Tab). После ввода значения последней переменной необходимо нажать клави-

шу Enter.

На практике предпочтительнее использовать оператор readln т.к. во-

первых, курсор будет располагаться всегда в начале строки, что позволит поль-

зователю легче ориентироваться при вводе большого числа значений. Во-

вторых, при этом после окончания ввода буфер ввода с клавиатуры полностью очищается. Дело в том, что все вводимые с клавиатуры символы сначала нака-

пливаются в специальной временной области памяти – буфере и лишь после нажатия клавиши Enter присваиваются соответствующим переменным. При ис-

пользовании оператора read в буфере остается код клавиши Enter. В некото-

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

Вы, конечно, должны понимать, что при вводе чисел с клавиатуры они вводятся в виде строки символов. После нажатия клавиши Enter они переводят-

57

2.1 Основные элементы языка

____________________________________________________________________

ся во внутреннее представление числа.

2.1.7.3. Операторы инкремента и декремента

Кроме оператора присваивания существуют оператор инкремента и декре-

мента, которые также позволяют изменять значения переменных целого типа.

Оператор inc(x, n) увеличивает значение переменной x целого типа на n. Параметр n может быть опущен, тогда значение x увеличится на единицу.

Пример.

inc(x, 10);

увеличит значение x на 10, а оператор

inc(x);

увеличит значение x на 1. Записи

x:= x + 10;

и

inc(x, 10);

совершенно идентичны по своему результату.

Оператор dec(x, n) уменьшает значение переменной x на n, а оператор dec(x)уменьшает x на единицу.

Программисты чаще всего используют короткие формы операторов ин-

кремента и декремента для увеличения или уменьшения значений целочислен-

ных переменных на единицу, т.е. могут использовать

inc(i) вместо i:= i + 1 и dec(i) вместо i:= i - 1

2.1.8 Среда разработки Lazarus

Уже этих полученных знаний нам достаточно, чтобы написать простей-

шую программу. Для того чтобы писать и выполнять программы, нам понадо-

бится компилятор и среда разработки. Существует довольно много компилято-

ров для языка Pascal. Мы с вами будем использовать компилятор Free Pascal

58

Глава 2 Введение в язык программирования Pascal

____________________________________________________________________

Compiler версии 2.2.4.

Free Pascal Compiler (часто применяется сокращение FPC) это свободно распространяемый компилятор языка Паскаль с открытыми исходными кодами,

распространяется на условиях GNU General Public License (GNU GPL). Он со-

вместим с Borland Pascal 7 и Object Pascal – Delphi, но при этом обладает ря-

дом дополнительных возможностей, например, поддерживает перегрузку опе-

раторов. FPC — кроссплатформенный инструмент, поддерживающий огромное количество платформ. Среди них — AmigaOS, DOS, Linux, *BSD, OS/2,

MacOS(X) и Win32.

Free Pascal поддерживает компиляцию в нескольких режимах, обеспе-

чивающих совместимость с различными диалектами и реализациями языка:

TP — режим совместимости с Turbo Pascal: совместимость практически полная, за исключением нескольких моментов, связанных с тем, что FPC ком-

пилирует программы для защищѐнного режима процессора, где невозможно прямое обращение к памяти, портам и т. д.

FPC — собственный диалект: соответствует предыдущему, расширенному дополнительными возможностями, такими как, например, перегрузка операто-

ров.

DELPHI — режим совместимости с Delphi: включает поддержку классов и интерфейсов.

OBJFPC — совмещает объектно-ориентированные возможности Delphi и

собственные расширения языка.

MACPAS — режим совместимости с Mac Pascal.

GNU — режим частичной совместимости с GNU Pascal.

Free Pascal Compiler имеет свою собственную интегрированную среду разработки. Применяется также аббревиатура IDE (Integrated Development Environment). Среда имеет текстовый интерфейс очень похожий на ин-

59

2.1 Основные элементы языка

____________________________________________________________________

терфейс Turbo Pascal 7.0.

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

В 1999 г. три человека - Cliff Baeseman, Shane Miller и Michael A. Hess.

предприняли попытку написать бесплатную графическую среду для бесплатно-

го компилятора FPC. Проект получает название Lazarus. На сегодняшний день следует признать, что идея оказалась весьма плодотворной потому, что среда существует и развивается и поныне.

Lazarus это бесплатный инструмент разработки с открытым кодом. IDE

Lazarus представляет собой среду с графическим интерфейсом для быстрой разработки программ, аналогичную Delphi, и базируется на оригинальной кроссплатформенной библиотеке визуальных компонентов LCL (Lazarus

Component Library), совместимых с VCL Delphi. В состав IDE входят и не визу-

альные компоненты. В принципе такого набора достаточно для создания про-

грамм с графическим интерфейсом и приложений, работающих с базами дан-

ных и Интернетом.

В среде Lazarus используются собственный формат управления пакетами и свои файлы проектов.

Lazarus это стабильная богатая возможностями среда разработки для соз-

дания самостоятельных графических и консольных приложений. В настоящее время она работает на Linux, FreeBSD и Windows и предоставляет настраивае-

мый редактор кода и визуальную среду создания форм вместе с менеджером пакетов, отладчиком и графическим интерфейсом, полностью интегрирован-

ным с компилятором FreePascal.

Почему для этой книги был выбран именно этот компилятор и его среда быстрой разработки? Потому что они бесплатны и распространяются по сво-

бодной лицензии GNU GPL. Кроме того, компилятор Free Pascal позволяет соз-

давать кроссплатформенные приложения, т.е. приложения, которые могут вы-

60