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

Начальный курс информатики. Часть 2. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
850 Кб
Скачать

2. ЯЗЫК ПРОГРАММИРОВАНИЯ PASCAL

Язык Pascal был создан в1971 г. швейцарским ученым Николаусом Виртом как учебный язык.

Алфавит языка состоит из трех групп символов: буквы, цифры, спецсимволы. В качестве букв используются прописные (заглавные) латинские буквы от А до Z. Допускается расширение набора букв, включением в него букв русского алфавита (строчных и прописных) и строчных букв латинского алфавита.

Цифрами являются обычные десятичные(арабские) циф-

ры: 0 1 2 3 4 5 6 78 9.

Группа спецсимволов достаточно многочисленна и неоднородна. Ее можно разбить на 4 группы:

× знаки арифметической операции: + - · /;

×знаки операции сравнения представлены в табл. 9.

×Таблица 9

Знак операции

Смысл операции

Математическое

сравнения в Pascal

 

обозначение

=

Равно

=

<>

Не равно

<

Меньше

<

<=

Меньше или равно

>

Больше

>

>=

Больше или равно

 

 

 

×группу разделителей образуют следующие символы (табл. 10):

×Таблица 10

Символ

Название

.

Точка

,

Запятая

;

Точка с запятой

:

Двоеточие

( )

Круглые скобки

[ ]

Квадратные скобки

{ }

Фигурные скобки

­

Стрелка вверх

¢

Апостроф

:=

Знак присваивания

× группа служебных слов (табл. 11):

31

 

 

 

 

×

Таблица 11

and

do

goto

not

record

until

 

array

downto

if

of

repeat

var

 

begin

else

in

or

set

while

 

case

end

label

packed

then

with

 

const

for

mod

procedure

to

 

 

div

function

nil

program

type

 

 

2.1. Правила записи текста программы

Пробел – это литера, не имеющая графического изображения, но имеет определенное представление (свой цифровой код) в машине.

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

Комментарии – любая последовательность символов, заключенная в фигурные скобки: {} или расположенная между парами символов: (*). Комментарии необходимы для документирования программы. С их помощью можно объяснить назначение и особенности программы, суть используемого алгоритма, назначение переменных и т..дПравила записи текстаPascalпрограммы состоят в следующем:

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

×разделители текста не должны встречаться внутри идентификаторов, чисел и служебных слов;

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

32

2.2. Концепция данных языка программирования Pascal

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

Скалярные типы либо относится к стандартным типам, которые зафиксированы в языке, либо определяются программистом с помощью специального описания, задания.

Любой тип определяет:

-множество значений;

-множество операций над данными этого типа;

-представление в памяти.

Рис. 11. Дерево стандартных типов данных

33

2.3. Числовые типы. Целочисленные типы

Значениями целочисленных типов данных являются элементы подмножеств целых чисел, которые занимают в памяти от 1 до 4 байт, диапазоны значений целочисленных типов (табл.12).

 

 

Таблица 12

Тип

Диапазон

Требуемая па-

 

 

 

мять (байт)

 

byte

0 . . 255

1

 

shortint

-128.. 127

1

 

integer

-32768 .. 32767

2

 

word

0 . . 65535

2

 

longint

-2147483648.. 2147483647

4

 

Целые константы задаются в программе в десятичной системе счисления. Положительный знак числа может быть опущен. Примеры записи целых чисел: -100; 256; 0; 05.

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

 

 

Таблица 13

 

 

 

Знак операции

Содержание операции

Тип результата

 

 

операции

+

Сложение

Целочисленный

 

 

 

-

Вычитание

Целочисленный

·

Умножение

Целочисленный

/

Деление

Вещественный

div

Деление и «отсечение» (отбрасывание)

Целочисленный

 

дробной части

 

mod

Взятие остатка при делении

Целочисленный

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

Целочисленное деление (div) отличается от обычной операции деления тем, что возвращает целую часть частного, дробная часть отбрасывается (табл. 14).

34

Таблица 14

Выражение

Результат

11 div 5

2

10 div 3

3

2 div 3

0

(-7) div (-2)

3

(-7) div 2

-3

Значение m mod п определено только для п>0. Если m≥0, то m mod n = m - ((m div nn), a при m < 0 принимается m mod n = m- ((m div nn)+n. Так что m mod n всегда неотрицательно (табл. 15).

Таблица 15

Выражение

Результат

11 mod 5

1

10 mod 2

0

2 mod 3

2

(-14) mod 3

1

(-10) mod 5

0

Указанные операции используются в арифметических выражениях, при вычислении которых сначала выполняются операции типа умножения (·, div, mod), имеющие одинаковый ранг, а затем операции типа сложения(+ и -), также имеющие одинаковый, но более низкий приоритет.

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

Областью значений вещественных типов являются подмножества множества всех вещественных чисел.

Вещественные константы задаются в программе в десятичной системе счисления. Допускаются две формы задания чисел- с фиксированной и с плавающей точкой. В форме с фиксированной точкой запись состоит из целой и дробной частей, отделенных друг от друга точкой. Например, 0.002; 3.14159; 229.0; 987.2000.

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

мы: .5; 49.; 25,7.

35

В форме с плавающей точкой число представлено в экспоненциальном виде: mЕ+р, где m - мантисса (целое или дробное число с десятичной точкой), Е - означает «десять в степени», р - порядок (це-

лое число). Например, 5.18Е+02; 10Е-3; 0.2Е-5.

Вещественные типы занимают несколько особое положение среди всех скалярных типов. В частности, они не относятся к числу упорядоченных, для этих значений невозможно определить предыдущее и последующее значение, порядковый номер. Эти особенности связаны со следующими обстоятельствами. Вещественные числа в компьютере представляются в форме с плавающей точкой, то есть число представляется в виде его цифровой части(мантиссы) и порядка. Количество разрядов, отводимых на изображение порядка, определяет диапазон допустимых чисел, диапазоны значений (табл. 16).

 

 

Таблица 16

Тип

Диапазон

Требуемая память

real

2.9·10E-39.. 1.7·10E38

6

single

1.5M0E-45.. 3.4·10E38

4

double

5.0·10E-324.. 1.7·10E308

8

extended

1.9·10E-4951 .. 1.1·10E4932

10

В отличие от целого типа этот диапазон содержит бесконечное подмножество вещественных чисел. Однако фиксированное количество разрядов, отводимых и для изображения мантиссы, приводит к тому, что в машине точно может быть представлено лишь ограниченное множество вещественных чисел. Таким образом, каждое машинное число представляет с той или иной точностью некоторый диапазон вещественных чисел. Так что вещественные числа представляются, вообще говоря, неточно, и арифметические операции над ними выполняются не точно, а по правилам действий над приближенными числами. В силу этих причин множества значений вещественных чисел не относится к числу упорядоченных. Над вещественными значениями определены 4 основных операции (+, -,· ,/)>, результатом которых является вещественное число.

36

2.5. Стандартные числовые функции

Вязыке программированияPascal определен ряд стан-

дартных

средств, позволяющий определить

значения функций

(табл. 17).

 

 

Таблица 17

 

 

 

 

 

 

 

 

 

 

Общий

 

Название

Типы

вид

 

 

Аргумент

Результат

 

abs(x)

 

| x |

Целочисленный

Целочисленный

 

 

 

 

Вещественный

Вещественный

 

sqr(x)

 

x2

Целочисленный

Целочисленный

 

 

 

 

Вещественный

Вещественный

 

sqrt(x)

 

x

Целочисленный

Вещественный

 

 

 

Вещественный

 

 

 

 

 

 

 

exp(x)

 

ex

Целочисленный

Вещественный

 

 

 

 

Вещественный

 

 

ln(x)

 

ln x

Целочисленный

Вещественный

 

 

Вещественный

 

 

 

 

 

 

sin(x)

 

sin x

Целочисленный

Вещественный

 

 

 

 

Вещественный

 

 

cos(x)

 

cos x

Целочисленный

Вещественный

 

 

 

 

Вещественный

 

 

trunc(x)

 

Целая часть x

Вещественный

Целочисленный

 

round(x)

 

Округление до цело-

Вещественный

Целочисленный

 

 

 

го

 

 

 

succ(x)

 

Следующее за x зна-

Целочисленный

Целочисленный

 

 

 

чение

 

 

 

pred(x)

 

Предшествующее x

Целочисленный

Целочисленный

 

 

 

значение

 

 

 

ord(x)

 

Порядковый номер x

Любой скал

Целочисленный

 

 

 

в упорядоченном

ярный, кроме веще-

 

 

 

 

множестве значений

ственного

 

 

odd(x)

 

Нечетность

Целочисленный

Логический

 

Для обращения к ним необходимо указать имя функции и аргумент, который обязательно должен быть записан в круглых скобках, каким бы простым он ни был. Например: sqr(a), trunc (3.545).

37

3. ВЫРАЖЕНИЯ. АРИФМЕТИЧЕСКИЕ ВЫРАЖЕНИЯ

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

Операции определяют действия, которые надо выполнить над операндами. Например, в выражении «а - b · с - sqr(d) + 5» a, b, с, d, 5 - операнды; sqr - обращение к функции, а -,+, · - знаки операций. Тип значения, вычисляемого с помощью выражения, оп-

ределяется типом его операндов и знаками выполняемых над ними операций.

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

ления

арифметического выражения является значение целого

или вещественного типов.

 

Выражения записываются «в строчку»;

многоуровневые

записи

недопустимы. Числовые константы,

идентификаторы,

знаки операций записываются в соответствии с правилами языка. Знак умножения всегда указывается явно(·). Для повышения приоритета действий используются круглые скобки.

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

Например, запишем математические выражения в виде арифметических выражений на языке Pascal (табл. 18):

Для преобразования цифры-символа в числовой тип используется функция преобразования Ord (S), которая возвращает порядковый номер значенияS в множестве, определенном типом S.

Функция возвращает номер символа в стандартном коде обмена информацией в соответствии с используемой таблицей.

38

Например, функция Ord ('5') возвращает значение 53. Для преобразования символа '5' в число 5 надо из полученного значения вычесть 48. Выражение Ord (S)-48 используется для преобразования типа.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 18

Математическое выражение

Арифметическое выражение на языке Pascal

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 2 - 7x + 6

sqr(x) - 7*х +6

 

 

x

 

-

 

y

 

 

-

1

 

(abs(x) - abs(y))/(l + abs(x*y)) -1/3

 

 

 

 

 

 

 

 

 

 

1 +

 

xy

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.1. Литерный тип

Литерный (символьный) тип char определяется множеством значений кодовой таблицы компьютера.

Каждому символу приписывается целое число в диапазоне от 0 до 255. Для кодировки используется код ASCII. Множество значений рассматриваемого типа содержит:

×цифры от 0 до 9, которые упорядочены по возрастанию изображаемых ими чисел;

×строчные латинские буквы от а до z упорядоченные по

алфавиту. То же самое относится и к прописным латинским буквам от А до Z.

Пробел - равноправный символ. Константой литерного типа является одна из допустимых литер, взятая в апострофы. Если апостроф сам принадлежит множеству значений типаchar, то апостроф, являющийся значением константы, записывается дважды. Примеры литерных констант: '7'; '+'; 'j'; '?'.

Отношение порядка между двумя литерами множества значений типа char должно быть таким же, как и между их порядковыми номерами. А это значит, что:

'A' < 'a'; 'm' > 'j'; '0' < '1' < … <'9'.

Для размещения в памяти переменной литерного типа требуется один байт.

39

Для данных символьного типа определены следующие стандартные функции:

chr(x) - преобразует выражение х типа byte в символ и возвращает значение символа;

ord(ch) - преобразует символ ch в его код типа byte и возвращает значение кода;

pred(ch)- возвращает предыдущий символ; succ(ch) - возвращает следующий символ.

3.2. Логический (булевский) тип

Множество значений этого типа содержит всего два значения: false (ложь) и true (истина). Значения упорядочены: false < true, причем они имеют номера 0 и 1 соответственно. Для представления данных этого типа требуется 1 байт памяти. Истина или ложь получается при определении значения высказываний. Например, высказывание 3>2 истинно, а 2 = 3 - ложно.

Над данными логического типа определены следующие операции, результатом которых являются значения этого же типа: отрицание, конъюнкция (логическое умножение), дизъюнкция (логическое сложение) (табл. 19).

 

 

Таблица 19

Математическое обо-

Название

Обозначение в про-

значение

грамме

 

Ø

Нет

not

(отрицание)

 

 

 

И

 

^

(логическое умножение, конъ-

and

 

юнкция)

 

 

Или

 

Ú

(логическое сложение, дизъ-

or

 

юнкция)

 

Операция not является одноместной. Операция and и or – двуместные.

Правила вычисления результатов операций представлены в табл. 20.

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]