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

Основы программирования на языке Паскаль. Основные понятия алгоритмического языка Паскаль. Учебное пособие для самостоятельной работы по дисциплине «И

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

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

5.2.Раздел объявления модулей

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

Формат:

USES < имена модулей>; Например:

USES PRINTER, CRT, GRAPH;

5.3.Раздел объявления меток

Вэтом разделе перечисляются метки, которые будут использоваться для организации передачи управления между операторами программы. Этот раздел помечается ключевым словом LABEL. Например,

label 1, 2, 50, 100, 9999, m1;

Метка – целое число, включающее от 1 до 4 цифр(без знака) или идентификатор.

5.4.Раздел объявления констант

Вэтом разделе определяются все синонимы локальных констант программы. Раздел помечается ключевым словом CONST. Например,

const

i=-314;

g = +9.8;

title =’ ОБЪЯВЛЕНИЕ’;

5.5.Раздел объявления типов

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

Например,

 

 

type (*

описание типов данных *)

(*

строка *)

 

line: packed array [ 1.. 80] of char;

(*

перечисление

*)

day: (monday, tuesday, wednesday, thursday, friday, saturday, sumday); person: (‘Иванов’,’Петров’,’Сидоров’,’Ковалев’);

41

5.6. Раздел объявления переменных

Этот раздел связывает их с определенным типом данных. Он начинается с ключевого слова VAR, а далее следует перечисление всех идентификаторов переменных с привязкой их к типам данных

Например,

var (* описание переменных *) a,b,c: real; i,j,k: integer;

d:char; person: boolean;

5.7.Раздел объявления процедур и функций

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

Правила оформления процедур и функций аналогичны правилам оформления программ.

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

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

Описание процедур и функций, внутренних по отношению к главной программе, может быть сделано как перед блоками основной программы (в разделе описаний процедур и функций), так и следом за основной программой. Например,

 

Program proba1;

 

(*

разделы описаний меток, констант, типов, переменных *)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

 

(*

раздел описаний процедур и функций

*)

42

 

Procedure line (x,y,z);

 

 

type

 

 

t:integer;

 

 

l:char;

 

 

var

 

 

x,y,i,j : t;

 

 

z : l;

 

 

begin

 

 

for i:=x to j:=y

do write(z);

 

end;

 

(*

главная программа *)

 

begin

 

 

. . . . . . . . . . . . .

 

 

. . . . . . . . . . . . .

 

 

end;

 

(*

описание функции

*)

 

function max (x,y : real): real;

 

begin

 

if x > y then max:= x;

end;

5.8. Раздел операторов

Операторы языка составляют тело программы. Оно структурируется в блоки. Каждый блок начинается с ключевого слова BEGIN и заканчивается словом END. Блоки могут следовать друг за другом или входить один в другой. Последние называют вложенными. Например,

PROGRAM IT_IS_MY ;

(* разделы * )

begin

(* операторы языка * )

begin

(* операторы языка *)

end;

 

begin

(* операторы языка*)

begin

(* операторы языка *)

end

 

end

 

end.

Глубина вложенности блоков практически не ограничивается. Однако информационно и алгоритмически они должны быть правильно оформлены.

43

Заключение

Предложенная последовательность изложения материала, многочисленные поясняющие примеры, доступность изложения позволяют учащимся самостоятельно изучить вопросы программирования вычислительных и информационных задач.

Учебное пособие ориентировано на обучающихся, знакомых с некоторыми основами программирования на уровне среднего образования, определяется базовым обучением по программированию и не ставит целью изучение и анализ каких-либо сложных аспектов использования алгоритмического языка Паскаль. Служит для повышения уровня владения языком в объеме, позволяющем использовать приобретенные знания при составлении программ. Приведены примеры и упражнения для отработки навыков программирования.

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1.Могилев А.В., Пак Н.И., Хеннер Е.К. Информатика. Учебное пособие.

М.: Академия, 2004. – 848 с.

2.Информатика: учебник / под ред. Н.В. Макаровой. – М: Финансы и ста-

тистика, 2008. – 766 с.

3.Окулов С.М. Основы программирования. - М.: БИНОМ, 2013. – 440 с.

4.Кудинов Ю.И. Пащенко Ф.Ф. Основы современной информатики. –

М: Лань, 2010. – 256 с.

5.Основы алгоритмизации вычислительных процессов. Метод. указания по курсу «Информатика» / Авдеев В.П., Гильмутдинов В.И, Кононов А.Д., Кононов А.А. – Воронеж. – ВГАСУ, 2005. – 41 с.

6.Информатика: учебное пособие / Гильмутдинов В.И, Кононов А.Д.,

Кононов А.А., 2010. – 56с.

7.Хлебников А.А. Информатика: учебник: Феникс, 2013. – 443с.

44

 

 

Приложение 1

 

 

Знаки пунктуации

 

 

Знак

Примечание

{

}

Скобки комментария

(*

*)

Скобки комментария

[

]

Выделение индексов массивов, элементов множеств, размера стро-

 

 

ки

(

)

Выделение выражений, списков параметров

 

Апостроф для выделения символа или строковой константы

 

:=

Знак присваивания значения переменной, типизированной кон-

 

 

станте или функции

 

;

Разделение предложений программы (операторов и объявлений) и

 

 

Элементов списка

 

:

Отделение переменной или типизированной константы от типа,

 

 

метки от оператора

 

=

Отделение идентификатора типа от описания типа или константы

 

 

от ее значения

 

,

Разделение элементов списка

 

..

Разделение границ диапазона

 

.

Обозначение конца программы, отделение целой части от дробной

 

 

в вещественном числе, отделение полей в записи, отделение иден-

 

 

тификатора от имени модуля или объекта, в котором он находится

 

^

Обозначение типа – указателя, значения величины по ее указателю

 

 

или управляющего символа (коды от 0 до 31)

 

@

Обозначение адреса переменной, типизированной константы, под-

 

 

программы, метода

 

#

Обозначение символа по его коду

 

$

Обозначение директивы компилятора или знак шестнадцатерично-

 

 

го числа

45

Приложение 2

Служебные (зарезервированные) слова

Служебные

Смысловое значе-

Пояснения

 

слова*

ние

 

 

 

 

 

 

1

2

3

 

 

 

 

 

AND

и

Логическая операция И

 

 

 

 

 

ARRAY

массив

Начало типа-массив

 

BEGIN

начало

Начало тела программы или

подпро-

 

 

граммы, начало составного оператора

 

 

 

CASE

вариант (выбор)

Начало условного оператора CASE

 

 

 

 

CONST

константа

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

констант,

 

 

группы параметров - констант

 

 

 

 

CONSTRUC-

конструктор

Конструктор объекта

 

TOR

 

 

 

DESTRUC-

разрушитель

Деструктор объекта

 

TOR

 

 

 

DIV

деление

Операция деления целых чисел с по-

 

 

лучением целого результата

 

 

 

 

DO

Делать (выпол-

Признак начала оператора в цикле

 

нять)

FOR, WHILE, оператора WITH

DOWNTO

уменьшая до

Указатель изменения параметpa цик-

 

 

ла от максимального к минимальному

 

 

значению

 

ELSE

иначе

Секция ИНАЧЕ в условном опе-

 

 

раторе IF, CASE

 

END

конец

Конец тела программы, подпро-

 

 

граммы, конец модуля, конец состав-

 

 

ного оператора, блока на ассемблере,

 

 

оператора CASE, типа - запись, объ-

 

 

екта

 

EXTERNAL

внешний

Директива внешней подпрограммы

FILE

Файл

Файловый тип

 

FOR

для

Начало цикла с известным числом

 

 

повторений

 

FORWARD

опережение

Директива заголовка подпрограммы,

 

 

описанной дальше по тексту про-

 

 

граммы

 

FUNCTION

функция

Начало подпрограммы-функции

 

 

 

 

 

 

46

 

GOTO

переход на (идти к)

Безусловный переход

 

 

 

IF

если

Начало условного оператора IF

 

 

 

IMPLEMENTAT

реализация

Исполнительная часть модуля

OIN

 

 

IN

в

Проверка наличия элемента в множе-

 

 

стве

INLINE

встроенный

Директива, позволяющая включить в

 

 

программу часть, написанную на ас-

 

 

семблере

INTERFACE

интерфейс

Интерфейс модуля

INTERRUPT

прерывание

Директива процедуры обработки пре-

 

 

рываний

LABEL

метка

Идентификатор раздела меток

 

 

 

MOD

вычисление остат-

Остаток от деления целых чисел

 

ка

 

NUL

пустой указатель

Пустая ссылка

NOT

Нет (отрицание)

Логическое отрицание

OBJECT

объект

Начало типа - объект

OF

из

Начало типа компонентов в опреде-

 

 

лении массива, множества, файла,

 

 

начало перечисления констант опера-

 

 

тора CASE

 

 

 

OR

или

Логическая операция ИЛИ

 

 

 

PACKED

упакованный

Признак "упакованного" массива

 

 

 

PROCEDURE

процедура

Начало подпрограммы-процедуры

PROGRAM

программа

Начало программы

RECORD

запись

Начало типа - запись

 

 

 

REPEAT

повторить

Начало цикла REPEAT

 

 

 

SET

Набор (множество)

Тип - множество

 

 

 

SHL

разрядный сдвиг

Сдвиг битов влево с заполнением ну-

 

влево

лями освободившихся разрядов

 

 

 

SHR

разрядный сдвиг

Сдвиг битов вправо с заполнением

 

вправо

нулями освободившихся I разрядов

 

 

 

STRING

строка

Тип – строка

 

 

 

THEN

тогда

Секция ТОГДА условного oперaтора

 

 

IF

 

 

47

TO

к (до)

Указатель, изменения параметра цик-

 

 

ла от минимального к максимальному

 

 

значению

TYPE

тип

Идентификатор раздела типов

 

 

 

UNIT

модуль

Начало модуля

 

 

 

UNTIL

пока

Конец цикла REPEAT

 

 

 

USES

используется

Указатель используемых модулей

 

 

 

VAR

переменная

Идентификатор раздела переменных,

 

 

группы параметров переменных

WHILE

пока

Начало цикла WHILE

 

 

 

WITH

с

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

 

 

 

XOR

исключающее

Логическая операция

 

 

ИСКЛЮЧАЮЩЕЕ ИЛИ

48

Приложение 3

Коды ASCII

Код

Символ

Имя

Код

Символ

Код

Символ

Код

Символ

 

 

 

 

 

 

 

 

 

0

Ctrl-@

NUL

32

SPC

64

@

96

1

Ctrl-A

SOH

33

!

65

A

97

a

 

2

Ctrl-B

STX

34

66

В

98

b

3

Ctrl-C

ETX

35

#

67

С

99

с

4

Ctrl-D

EOT

36

$

68

D

100

d

5

Ctrl -E

ENQ

37

%

69

E

101

e

6

Ctrl-F

ACK

38

&

70

F

102

f

7

Ctrl-G

ВEL

39

'

71

G

103

g

8

Ctrl-H

BS

40

(

72

H

104

h

9

Ctrl-I

HT

41

)

73

I

105

i

10

Ct rl-J

LF

42

*

74

J

106

j

11

Ctrl-K

VT

43

+

75

К

107

k

12

Ctrl-L

FF

44

,

76

L

108

l

13

Ctrl-M

CR

45

-

77

M

109

m

14

Ctrl-N

SO

46

.

78

N

110

n

15

Ctrl-0

SI

47

/

79

0

111

о

16

Ctrl-P

DLE

48

0

80

P

1 12

p

17

Ctrl -Q

DC1

49

1

81

Q

113

q

18

Ctrl-R

DC2

50

2

82

R

114

r

19

Ctrl-S

DC3

51

3

83

S

115

s

20

Ctrl -T

DC4

52

4

84

T

116

t

21

Ctrl -U

NAK

53

5

85

U

117

u

22

Ctrl -V

SYN

54

6

86

V

118

v

23

Ctrl-W

ETB

55

7

87

W

119

w

24

Ctrl-X

CAN

56

8

88

X

120

x

25

Ctrl-Y

EM

57

9

89

Y

121

y

26

Ctrl-Z

SUB

58

:

90

Z

122

z

27

Ctrl-[

ESC

59

;

91

[

123

{

28

Ctrl-\

FS

60

<

92

\

124

|

29

Ctrl-]

GS

61

=

93

]

125

}

30

Ctrl-^

RS

62

>

94

^

126

~

31

Ctrl-_

US

63

?

95

_

127

DEL

 

 

 

 

 

 

 

 

 

49

Приложение 4

Диагностика ошибок трансляции

MISSING END – пропущено служебное слово END.

INVALID CHARACTER – в строке встретился недопустимый знак. MISSING LABEL DEFINITION – отсутствует определение метки.

UNDEFINED FORWARD PROCEDURE OR FUNCTION – недопустимо исполь-

зовать процедуру или функцию прежде, чем они будут определены. MISSING BEGIN – пропущено служебное слово BEGIN.

MISSING ’.’ AT PROGRAM END – в конце программы отсутствует точка.

ALL VAR DEFINITIONS PRECEDE PROCEDURE DEFINITIONS – определе-

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

BAD ORIGIN FOR VARIABLE – недопустимое начальное значение для переменной.

BAD VARIABLE LIST – недопустимый список переменных. BAD TYPE – недопустимое определение типа.

BAD LABEL – недопустимая метка.

BAD FUNCTION NAME – недопустимое имя для функции. BAD PROCEDURE NAME – недопустимое имя для процедуры.

BAD FUNCTION RESULT TYPE – недопустимый тип результата функции. ‘ . ‘ UNSTEAD OF ‘ ; ‘ – точка использованa вместо точки с запятой.

MISSING ‘ ) ‘ AT END OF PARAMETR LIST – пропущена левая скобка в конце списка формальных параметров.

BAD PARAMETER – недопустимый параметр.

BAD SCALAR TYPE – недопустимый скалярный тип.

BAD SUBRANGE – недопустимое указание интервала.

BAD TYPE SPECIFICATION – недопустимое определение типа.

ARRAY INDEX TYPE ERROR – ошибка в задании типа индекса для массива. BAD RECORD – недопустимая запись.

BAD FIELD LIST – недопустимое определение списка полей.

FIELD LIST MUST BE IN PARENTHESES – список полей должен указываться в скобках.

BAD VARIANT – недопустимый вариант.

DUPLICATE FIELD NAME – повторно используется имя для поля записи. BAD CONSTANT – недопустимая константа.

LABEL NOT DELARED – используется неопределенная метка. UNDEFINED SYMBOL – неопределенный символ.

MISSING SEMI – COLOR – пропущена точка с запятой.

INYALID DECLARATION. PROBABLY MISSING END – недопустимый опе-

ратор; возможно, что пропущено служебное слово END. INYALID SYMBOL – недопустимый символ.

50

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