http://sulfurzona.com/
News
Service
Magazine
Software (Battle City Game, Wallpaper manager, Superpad, VG-NOW, Puzzle Game, Netler Internet Browser, ..)
Dune Game (Dune III, Dune IV, Cheats, Forum, ..)
Games free
Turbo Pascal (Assembler, Docs, Sources, Debbugers, ..)
Books (Docs for developers)
Forum
Guest book
Компьютерная диагностика двигателя автомобиля (адаптер К-линии)Компьютерная диагностика двигателя автомобиля (адаптер К-линии)
 
 
 

Паскаль для новичков (часть 2)

Лексика и структура программ на Pascal

 

Текст программы. Алфавит языка.

 
Паскаль для новичковКак же выглядит китайская грамота? Читай ниже.
Текст программы Pascal-программы представляет собой последовательность строк, состоящих из символов, образующих алфавит языка. Строки программы завершаются специальными управляющими символами, не входящими в алфавит.
Максимальная длина строки составляет 126 символов.
 
Алфавит языка состоит из следующих символов:
 
1) Заглавные и строчные латинские буквы и символ "подчёркивание": A,B,C,...,X,Y,Z,a,b,c,...,x,y,z,_
В языке Turbo Pascal символ "подчёркивание" считается буквой. Буквы используются для формирования идентификаторов и служебных слов.
2) Десять арабских цифр от 0 до 9: 0,1,2,3,4,5,6,7,8,9
Цифры используются для записи чисел и идентификаторов.
3) Двадцать два специальных символа:
 
+ - * / = > < . , ; : @ ' ( ) [ ] { } # $ ^
 
М..да, подходящий такой наборчик, чтобы нарисовать рожицу с улыбкой.
 
Эти символы используются для конструирования знаков операций, выражений, комментариев, а также как синтаксические разделители.
 

Лексическая структура языка. Комментарии и пробелы.

 
Символы из алфавита языка используются для построения базовых элементов Pascal-программ - лексем. Лексема - минимальная единица языка, имеющая самостоятельный смысл. В Turbo Pascal имеются следующие виды лексем:
1) Служебные (зарезервированные) слова. Это ограниченная группа слов, построенных из букв. Каждое служебное слово представляет собой неделимое образование, смысл которого фиксирован в языке. Служебные слова НЕЛЬЗЯ использовать в качестве имён, вводимых программистом (т.е. в качестве идентификаторов для переменных, констант, меток, и т.д.) .
Все 55 служебных слов языка представлены в таблице 1.
2) Идентификаторы (имена) - вводятся для обозначения в программе имён переменных, констант, типов, меток, процедур и функций и формируются из букв и цифр, например:
 
myfunc4
my5func4
 
а так нельзя
 
2my5func4
 
Длина идентификатора может быть произвольной, но компилятор воспринимает только ПЕРВЫЕ 63 его символа.
В языке Turbo Pascal заглавные и строчные буквы в идентификаторах и служебных словах НЕ РАЗЛИЧАЮТСЯ. Таким образом следующие три идентификатора обозначают одну и туже переменную:
 
index
INDEX
Index
 
Правда класс? Хочешь – пиши маленькими, т.е. строчными буквами, а не хочешь – пиши с заглавной буквы или всё заглавными. Красота.
 
3) Знаки операций формируются из одного или нескольких специальных символов и предназначены для задания действий по преобразованию данных и вычислению значений.
4) Разделители также формируются из специальных символов и в основном используются для повышения наглядности текстов программ. Примерами разделителей могут служить следующие конструкции:
 
; : = {
 
Упс, я же говорил, что получится рожица :o).
В текстах Pascal-программ допускаются фрагменты пояснительного характера - комментарии. Наличие комментариев не изменяет смысл программы и не влияет на её выполнение.
В Turbo Pascal комментарии представляют собой произвольную последовательность символов (не обязательно из алфавита языка; т.е. допускаются и русские буквы), заключённую в фигурные скобки ‘{’ и ‘}’ или в разделители вида ‘{*’ и ‘*}’ или ‘(*’ и ‘*)’, например:
 
{Это комментарий}
{*А это длинный
комментарий, расположенный на
нескольких строках*}
(*А это длинный
комментарий, расположенный на
нескольких строках*)
 
Комментарий может содержать внутри себя ещё комментарии, но с ДРУГИМИ разделителями, например:
 
{Это комментарий
(*А это длинный вложенный
комментарий, расположенный на
нескольких строках*)
с вложенным комментарием}
 
Использовать вложенные комментарии надо осторожно, так как можно внести путаницу и деактивировать часть кода программы, поэтому на первых порах я Вам не советую использовать вложенные комментарии.
Комментарий может находиться МЕЖДУ ЛЮБЫМИ ДВУМЯ ЛЕКСЕМАМИ программы.
Есть ещё одна группа лексических конструкций языка, называемых директивами компилятора или прагматами. Эти конструкции так же , как комментарии, заключаются в фигурные скобки, но они не носят характер пояснений к программе, а являются инструкциями Pascal-компилятору, предписывающими тот или иной режим обработки Pascal-программы.
Директивы компилятора должны содержать сразу после
открывающей фигурной скобки (без пробелов и символов табуляции) символ ‘$’ (доллар), а за ним - одиночную букву, определяющую конкретный режим компиляции. После буквы может стоять знак ‘+’ (плюс) или ‘-’ (минус), задающий, соответственно, установку или отмену заданного режима, например:
 
{$B-}
{$N+}
 
Допускается одновременная установка сразу нескольких режимов в одной директиве. В этом случае директивы отделяются друг от друга символом ‘,’ (запятая), например:
 
{$B+, I-, N-}
 
В некоторых случаях синтаксис директив компилятора может быть несколько иным, например:
 
{$M 2048,0,65000}
{$L PROC1.OBJ}
 
Важную роль в тексте Pascal-программы играет символ пробел. Символы пробелов используются для отделения лексем друг от друга в тех случаях, когда слитное написание двух или более лексем может исказить смысл программы. В частности, если идентификаторы и служебные слова записываются друг за другом, то они обязательно должны быть разделены одним или несколькими пробелами (или расположены в различных строках), так как их слитное написание будет воспринято как один идентификатор.
 

Общая структура Pascal-программы

 
Программа состоит из двух основных блоков:
1) Блок действий;
2) Блок описания модулей, констант, типов, переменных, меток, процедур и функций, используемых в блоке действий;
Например:
 
{название программы, может отсутствовать}
program Example;
 
{описание используемых модулей}
uses Crt, Dos;
 
{описание значений глобальных констант}
const
Min = 1;
Max = 10;
 
{описание нового типа}
type
TMyArray = array [Min..Max] of byte;
 
{описание глобальных переменных}
var MyArray: TMyArray;
 
{описание процедур и функций}
procedure Print (value: byte);
 
{ описание локальных констант, т.е. для текущей подпрограммы }
const
Dis = 100;
{описание нового типа, т.е. видимого только внутри текущей подпрограммы }
type
TMyRec = record
X, Y : integer;
end;
{описание локальных переменных, они будут видны только внутри подпрограммы, в которой описаны}
var
MyRec: TMyRec;
begin
writeln('Value= ', value);
end;
 
function Add (v1,v2: byte): word;
begin
Add:=v1+v2;
end;
 
{блок основных(глобальных) действий}
begin
end.
{конец блока действий, всегда заканчивается точкой}
 
 
 
 
 
 

Типы языка

 
Система типов языка. Скалярные типы
 
Иерархия типов
 
В языке Pascal любая переменная характеризуется своим типом.
Тип - это то множество значений, которые может принимать переменная и, как следствие, множество операций, допустимых над данной переменной. Pascal является типизированным языком, или статическим. Это значит, что тип переменной определяется при её описании и не может быть изменён. Переменная может участвовать только в операциях, допустимых её типом.
Pascal имеет развитую систему типов. На основе небольшого числа стандартных типов программист может конструировать данные произвольной структуры и сложности, адекватно отражающие информационную природу задачи.
 
Система типов языка Turbo Pascal делится на:
1. Простые типы:
1) Скалярные:
a) Стандартные скалярные;
b) Перечислимые;
2) Ограниченные;
2. Составные типы:
1) Регулярные;
2) Комбинированные;
3) Файловые;
4) Множественные;
5) Строковые;
6) Объекты;
3. Ссылочные типы.
4. Процедурные типы.
 
Стандартные скалярные типы распадаются на группы:
1) Целые типы;
2) Вещественные типы;
3) Символьный тип;
4) Булевский тип;
 
Все скалярные типы, кроме вещественных, называются также дискретными.
 

Целые типы

 
Переменные целых типов могут содержать значения только целых
чисел (см. таблицу 2).
Записывать значения целых чисел в программе можно двумя способами: в десятичном виде и в шестнадцатеричном виде. В последнем случае цифры старше 9 обозначаются латинскими буквами от A до F, а в начале ставится символ “$” (доллар). Например:
 
десятич. шестнад.
3 3
9 9
10 $A
12 $C
15 $F
241 $F1
255 $FF
 
Над целыми значениями допустимы операции:
 
+ сложение
- вычитание
* умножение
/ деление
div деление нацело (с отбрасыванием дробной части)
mod взятие остатка от деления нацело
 
При применении к целым значениям все эти операции (кроме деления“/”) дают целый результат. Операция деления “/” всегда даёт вещественный результат, т.е. с дробной частью.
 

Вещественные типы

 
Переменные этих типов позволяют содержать и оперировать числами с дробями высокой точности(см. таблицу 3).
Замечания:
1) Тип Comp является вещественным типом, но содержит только целые числа из весьма значительного диапазона, которые представляются в вычислениях как вещественные(с нулевой мантиссой, т.е. с нулевой дробной частью).
2) Все вещественные типы, кроме Real, могут использоваться в программе, только если в конфигурации компьютера имеется математический сопроцессор Intel 80x87. Надеюсь с его отсутствием Вы вряд ли столкнётесь. Для корректной компиляции программы, использующей эти типы, необходимо установить директиву компилятора {$N+}. Кроме того можно задействовать средства программной эмуляции аппаратных операций с вещественными типами, установив директиву {$E+}. Если эта последняя директива установлена, то программа будет выполняться правильно независимо от наличия математического сопроцессора, хотя при этом код программы получится более громоздким и медленным.
Советую использовать {$N+} без {$E+}.
 
Вещественные значения могут записываться в форме с фиксированной точкой и в форме с плавающей точкой. С фиксированной точкой целая и дробная части числа отделяются друг от друга точкой (НЕ ЗАПЯТОЙ), например правильно 0.6 или –3.1415, и неправильно 0.3=.3 или 10.0=10.
В форме с плавающей точкой число записывается как пара вида
 
<мантисса> E <порядок>
 
т.е. “мантисса” умноженная на 10 в степени, равной “порядку” . Например, 7E-2 означает 7 умноженное на 10 в степени –2, 12.25E+6 или 12.25E6 означает 12.25 умноженное на 10 в степени 6. Мантисса при этом записывается в виде целого числа или как вещественное с фиксированной точкой; порядок записывается целым числом; допускаются положительные и отрицательные значения порядка.
Над вещественными значениями допустимы арифметические операции: + сложение, - вычитание, * умножение, / деление. Все они дают вещественный результат, если ХОТЯ БЫ ОДИН ОПЕРАНД вещественный. Операнд – значение (константа или переменная), участвующее в арифметическом действии.
 

Символьный тип

 
Значениями символьного типа являются символы из множества ASCII (American Standard Code For Information Interchange – американский стандартный код для обмена информацией). Это множество состоит из 256 различных символов, упорядоченных определённым образом, и содержит символы заглавных и строчных букв, цифр, и различных других символов, включая специальные управляющие символы. Допускаются некоторые отклонения от стандарта ASCII, в частности, при наличии соответствующей системной поддержки это множество может содержать буквы русского алфавита.
Символьные значения занимают один байт. Если символ имеет графическое представление(т.е. не является управляющим символом), то оно записывается соответствующим знаком, заключённым в ОДИНАРНЫЕ кавычки(апострофы), например:
‘*’ ‘a’ ‘X’ ‘:’ ‘’’’
Для записи самого апострофа его изображение удваивается.
Любой символ, в том числе и не имеющий графического представления, можно записать в виде целочисленного кода
символа(от 0 до 255) и знака ‘#’(решётка, диез) перед ним:
 
#10
#$A
 
в последнем примере код записан в шестнадцатеричном виде.
Кроме того, некоторые управляющие символы ASCII можно записать так:
 
^C
 
где C – условное обозначение управляющего символа, например:
 
^G символ с кодировкой 7
^I эквивалентно #$1B
 
Над значениями символьного типа возможны операции сравнения, причём эти операции дают тот же результат, что и над соответствующими целочисленными кодами символов.
 

Булевский тип

 
Булевский тип может принимать только два логических истинностных значения. Эти значения обозначаются посредством стандартных идентификаторов True (истина) и False (ложь). Над значениями булевского типа допустимы операции сравнения, причём считается, что False < True. Кроме того, есть четыре стандартные логические операции, обозначаемые служебными словами:
 
And логическое умножение (“и”)
Or логическое сложение (“или”)
Xor сложение по модулю 2 (исключающее “или”)
Not логическое отрицание (унарная операция)
 
Значения этого типа занимают один байт памяти.
 
Дополнения к статье для вставки на этапе вёрстки:
(Служебные слова) Таблица 1.

Absolute

Array

And

Asm

Assembler

Begin

Case

Const

Construct

Destructor

Div

or

Do

Downto

Else

End

External

File

For

Forward

Function

Goto

If

Implementation

In

Inline

Interface

Interrupt

Label

Mod

Nil

Not

Object

Of

Or

Packed

Private

Procedure

Program

Record

Repeat

Set

Shl

Shr

String

Then

To

Type

Unit

Until

Uses

Var

Virtual

While

With

Xor

 
 
(Целые типы) Таблица 2.
Целый тип
Диапазон значений
Размер занимаемой памяти(байт)
Shortint
Integer
Longint
Byte
Word
-128..127
-32768..32767
-2147483648..2147483647
0..255
0..65535
1
2
4
1
2
 
(Вещественные типы) Таблица 3.
Тип
Диапазон
значений
Число цифр
мантиссы
Размер занимаемой
памяти (байт)
Real
Single
Double
Extended
Comp
2.9e-39..1.7e38
1.5e-45..3.4e38
5.0e-324..1.7e308
3.4e-4932..1.1e4930
-2e+63..+2e+63-1
11..12
7..8
15..16
19..20
6
4
8
10
8
 
Продолжение следует…
 
© Владислав Демьянишин
 
Вы находитесь на официальном сайте Владислава Демьянишина - разработчика игры Dune IV (Dune 4). На нашем сайте Вы можете бесплатно скачать игры Dune IV (Dune 4), Battle City (Танчики с Dendy/Nintendo), читы к играм и многое другое. Также Вы можете скачать бесплатно программы и полезные утилиты. Все программы чистые, т.е. не содержат вирусов и иного вредоносного ПО.
 
Среди доступных программ есть мобильная читалка книг, менеджер переноса файлов с фото- и видеокамер на компьютер, текстовый редактор, WYSIWYG редактор, 3D аниматор, GIF аниматор, AVI аниматор, пакетный конвертор изображений, редактор электрических схем, программа для скриншотов, диспетчер тем рабочего стола и другие.
 
На нашем сайте можно не только бесплатно скачать игры, но и документацию и книги по программированию на MIDLetPascal, Turbo Pascal 6, Turbo Pascal 7, Borland Pascal, по программированию устройств Sound Blaster, Adlib, VESA BIOS, справочник Norton Guide и много другой полезной информации для программистов, включая примеры решения реальных задач по созданию резидентных программ. Предлагаю также посетить Марья искусница - сайт о рукоделии (http://mariya-iskusnica.ru).
 
 

Журнал > Программирование > Паскаль для новичков (Turbo Pascal, Assembler) > Паскаль для новичков (часть 2). Лексика и структура программ на Pascal
 
 
 
3376
 
ВКонтакте
Facebook
 
 
 
На главную страницу На предыдущую страницу На начало страницы
 
 
Украинский портАл Украина онлайн Рейтинг@Mail.ru Рейтинг Сайтов YandeG Rambler's Top100