Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по программированию..pdf
Скачиваний:
10
Добавлен:
15.11.2022
Размер:
12.2 Mб
Скачать

Лекция 3

3.1.Элементы яоыка ТУрбо-Паскаль

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

Латинские буквы: от А до Z (заглавные) и от а до z (строчные).

Цифры: 0,

1, 2, 3, 4,

5, 6,

7, 8, 9.

 

 

Шестнадцатиричные цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, Е,

F.

 

 

 

 

 

 

 

Специальные символы: Ч—

* / = = < > [ ]

( ) ; { } @ $ # .

Следующие комбинации специальных символов являются едиными

символами (их нельзя разделять пробелами):

 

:=

знак присваивания;

 

 

>=

больше или равно;

О

не равно;

 

 

(* *)

ограничители комментариев (наряду с { });

<=

меньше или равно;

 

 

(. .)

эквивалент [ ].

Пробелы — символ пробела (ASCII-32) и все управляющие символы кода ASCII (от 0 до 31).

К спецсимволам относятся служебные слова, смысл которых опре­ делен однозначно. Служебные слова не могут быть использованы для других целей. С точки зрения языка — это единые символы. Вот спи­ сок служебных слов Турбо-Паскаля:

absolute

end

inline

procedure

type

and

external

interface

program

unit

array

file

interrupt

record

until

begin

for

label

repeat

uses

case

forward

mod

set

var

const

function

nil

shl

while

div

goto

not

shr

with

do

if

of

string

xor

downto

implementation

or

then

 

else

in

packed

to

 

Последние версии ТУрбо-Паскаля содержат еще ряд служебных слов, относящихся к работе с объектами и встроенным ассемблером. Следу­ ющие конструкции представляют собой комментарии и поэтому игно­ рируются компилятором:

{ любой текст, не содержащий символ “}” } (* любой текст, не содержащий символы “*)” *)

Буквы русского алфавита употребляются только в комментариях, в литерных и текстовых константах.

Строка, начинающаяся с символов “{$” или “(*$” , является дирек­ тивой компилятора. За этими символами следует мнемоника команды компилятора.

Идентификатором называется символическое имя определенного программного объекта. Такими объектами являются: имена констант, переменных, типов данных, процедур и функций, программ. С по­ мощью синтаксической диаграммы идентификатор можно определить следующим образом:

< идентификатор>

» <буква>

Расшифровать это можно так: идентификатор — это любая после­ довательность букв и цифр, начинающаяся с буквы. В Турбо-Паскале

кбуквам приравнивается также знак подчеркивания.

ВТурбо-Паскале длина идентификатора может быть произвольной, но значащими являются только первые 63 символа.

3.2.Типы данных

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

В стандартном Паскале отсутствует строковый тип. Кроме того, в ТУрбо-Паскале целые и вещественные — это группы типов. В старших версиях Турбо-Паскаля существует процедурный тип и тип “объект” .

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

Таблица 3.1

Идентификатор |Длина, байт |Диапазон (множество) значений

 

 

 

 

Целые типы

 

integer

 

2

 

-32768..32767

 

byte

 

1

 

0..255

 

word

 

2

 

0..65535

 

shortint

 

1

 

—128..127

 

longint

 

4

 

-2Д47.483648..2147483647

 

real

 

б

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

 

 

 

2 ,9 -КГ38 — 1,7 10м

(И-12)

single

 

4

 

1,5 •10“ " — 3,4 •1038

(7-8)

double

 

8

 

5 . ю-324 _ 1Д . юз»*

(15-16)

extended

 

10

 

3,4 •10-4<ш — 1,1 •104832

(19-20)

 

 

 

Логический тип

 

boolean

1

1

I

true, false

 

 

 

 

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

 

char

1

1

|

все символы кода ASCII

 

Втабл. 3.1 представлена информация о простых типах данных, определенных в ТУрбо-Паскале. Для вещественных типов в скобках указано количество сохраняемых значащих цифр мантиссы в десятич­ ном представлении числа.

Встандарте Паскаля из вещественных типов определен только тип real; из целых типов — integer.

Типы single, double, extended употребляются в Паскаль-программах только в том случа'е, если ПК снабжен сопроцессором “плавающей арифметики”

Тип данных называется порядковым, если он состоит из счетного количества значений, которые можно пронумеровать. Отсюда следует, что на этом множестве значений существуют понятия “следующий” и “предыдущий” .

Описание переменных. Для всех переменных величин, использу­ емых в программе, должны быть указаны их типы. Это делается в разделе переменных программы. Структура раздела переменных:

< раздел переменных>

-> < описание переменных>

------------------------------------> Уаг

 

 

 

 

О

 

<описание переменных>

 

 

--------------- --------------Ж* < идентификатор>

<тип>

----- ►

 

 

 

---------- О —

 

 

Пример раздела переменных программы:

 

 

Var m,

n,

k

Integer;

 

 

x,

у,

z

Real;

 

 

Symbol

 

Char; J

 

 

К он стан ты . Тип[константы определяется по

контексту,

т.е. по

форме ее записи в пр.Ьграмме.

 

 

Целые десятичные константы записываются в обычной форме це­ лого числа со знаком или без знака. Например: 25, -24712, 376.

Целые шестнадцатиричные константы записываются с префиксом “$” Они должны находиться в диапазоне от $00000000 до SFFFFFFFF.

Вещественные константы с фиксированной точкой записываются в обычной форме десятичного числа с дробной частью. Разделитель целой и дробной части — точка “.” Например: 56.346, 0.000055, -345678.0.

Вещественные константы с плавающей точкой имеют форму:

<мантисса>Е<порядок>

Здесь мантисса — целое или вещественное число с фиксированной точкой, порядок — целое со знаком или без. Например: 7Е-2 (7 10” 2), 12.25Е6 (12,25-106), 1Е-25 (Ю” 25).

Символьная константа — любой символ алфавита, заключенный в апострофы. Например: ’W ’, ’9’.

Логическая константа — одно из двух слов: true, false.

 

Строковая константа — строка символов,

заключенная в апо­

 

строфы. Например: ’Turbo-Pascal’, ’Ответ:

, ’35-45-79’. Максимальная

 

длина — 255 символов.

 

 

 

Константе может быть поставлено в соответствие определенное

 

имя. Назначение имени константе производится в разделе констант

 

программы. Структура раздела констант:

 

 

 

<раздел констант>

< описание константы>

 

Const

 

 

 

C D

 

< описание константы>

^

► <константа>

------------------------------------>• < идентификатор> — >(==)--------

Пример:

Const

Мах 1000;

G = 9.81;

Cod * уошибка*;

В дополнение к сказанному: в Турбо-Паскале допустимо употре­ бление типизированных констант. Типизированная константа ана­ логична переменной, которой задается начальное значение. Причем происходит это на этапе компиляции. Описание типизированной кон­ станты:

< типизированная константа>

-------------------------------------------

> <идентификатор> — »(Т)— х тип>

константа> -----

 

 

Пример:

 

 

 

Const NumberCard

Integer

=

1267;

Size

Real

=

12.67;

Symbol

Char

=

>** ;

В ТУрбо-Паскале имеется ряд имен, зарезервированных за опреде­ ленными значениями констант. Ими можно пользоваться без предва­ рительного определения в программе.

 

Таблица 3.2

Идентификатор

Ътп

Значение

True

boolean

истина

False

boolean

ложь

Maxlnt

integer

32767

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

Для описания типов пользователя в Паскале существует раздел ти­ пов следующей структуры:

<раодел типов>

д > < описание

типа>

-------------------------------> Туре

-С О

< описание типа>

<имя типа>

►<тип>-

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

Сперечисляемый тип>

<D*

Определенное имя типа затем используется для описания перемен­ ных. Например:

Type Gaz = (C, 0, N, F);

Cu, Zn);

Metal

»

(Fe,

Co,

Na,

Var Gl, G2,

G3

Gaz;

 

 

Met1,

Met2

Metall;

Wed, Thu, Fri, Sat);

Day

(Sun,

Mon,

Tue,

Здесь Gaz и Metal — имена перечисляемых типов, которые ставятся в соответствие переменным Gl, G2, G3 и Metl, Met2. Переменной Day назначается перечисляемый тип, которому не присвоено имени.

Значения, входящие в перечисляемый тип, являются константами. Действия над ними подчиняются правилам, применимым к констан­ там. Каждое значение в перечисляемом типе занимает в памяти 2 байта. Поэтому число элементов не должно превышать 65535.

Перечисляемый тип — упорядоченное множество. Его элементы пронумерованы, начиная от 0 в порядке следования в описании.

В программе, в которой присутствует данное выше описание, воз­ можен такой фрагмент:

if Day = Sun then writeln('Ура!! Сегодня выходной!');

Интервальный тип задается как упорядоченное ограниченное под­ множество некоторого порядкового типа.

<интервальяый тип>

^

>-

--------------------- ------------- ж <константа>

—г-ж»*)---- ► <констаыта>------

Порядковый номер первой константы не должен превышать номер второй константы в соответствующем базовом типе.

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

Пример:

г

Type Numbers = 1..31;

Alf= 'А'..,Z>;

Var Data Numbers;

Bukva Alf;