Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы языка программирования Pascal.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
75 Кб
Скачать
☆

3.6.1 Заголовок программы

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

Примеры: Program primer1;

Program zadacha_22;

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

3.6.2 Раздел описания

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

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

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

  • раздел определения типов

  • раздел описания переменных

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

Разделы описания в программе могут располагаться в любом порядке, некоторые могут и отсутствовать.

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

Пример:

Const Max=1024; A=’студент’; Sbol= True;

Раздел описания переменных. Все используемые в программе переменные должны быть перечислены в соответствующем разделе. Описание переменных производится после служебного слова Var (от англ.Variable – переменная).

Инструкция объявления переменной выглядит так:

<Имя Переменной1, …, Имя ПеременнойN> : <Тип Переменной>;

Пример:

Var I, j, k : integer;

C, f, min : real;

z : Boolean;

chess : char;

A, B : array [0..8] of real;

3.6.3 Раздел операторов

Раздел операторов является последним в блоке программы и задает действия, которые должна выполнить программа. Этот раздел имеет вид сложного составного оператора, который начинается со слова begin и заканчивается словом end, после которого ставится точка.

3.7 Основные операторы языка Pascal

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

Используется этот оператор для присвоения значения переменной и имеет следующий вид:

<ИмяПеременной> := <выражение>;

Знак := читается как «присвоить значение». Частным случаем выражения, стоящего в правой части, являются переменные и константы. Переменная и выражение должны быть совместимы по типу.

Пример: A :=B;

I:= I+1;

Y:= sqrt (x) *121/(25+x);

3.7.2 Операторы ввода данных

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

Для ввода данных в Pascal предусмотрены следующие операторы:

  • READ (a1, a2, a3,…, aN);

где a1,…, aN - переменные, которые последовательно принимают значения, вводимые с клавиатуры;

  • READLN (a1, a2, a3,…, aN);

где a1,…, aN - переменные, которые последовательно принимают значения, вводимые с клавиатуры; после ввода последнего из них происходит переход на новую строку.

3.7.3 Операторы вывода данных

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

  • WRITE (b1,b2, b3,…, bN);

где b1,…, bN – список выражений, значения которых выводятся на экран;

  • WRITE LN (b1, b2, b3,…, bN);

где b1,…, bN - выводимый на экран список выражений, после вывода последнего из которых происходит переход на новую строку.

Кроме значение выражений можно выводить на экран и произвольный набор символов, заключенный в апострофы. Например, WRITE (‘Сумма=’, s);

Пример 1. Написать программу для вычисления площади круга (S), объема (V) шара и длины окружности (L) с одним и тем же радиусом (R).

program okrug;

var R, S, L,V : real;

begin

write (‘Введите радиус круга R ’);

readln (R);

S:= Pi*sqr(R);

writeln (‘Площадь окружности S= ’, S);

L:= 2*Pi*R ;

writeln (‘Длина окружности L = ’, L);

V:= 4/3*Pi*sqr(R)*R;

writeln (‘Объем окружности V= ’, V);

end.

При использовании оператора вывода для представления на экране значения целого типа выделяется столько позиций экрана (разрядов), сколько требуется для записи числа. Вывод значения вещественного типа осуществляется в экспоненциальном виде (с использованием степени десяти, например, 1.3Е+01). Такой вид результатов на экране часто не устраивает пользователей, поэтому необходимо позаботиться о приемлемом формате вывода.

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

: а – формат вывода переменных целого типа;

: а : d - формат вывода переменных вещественного типа,

где а задает общую ширину поля (общее количество позиций, отводимых под число, в том числе для знака числа и десятичной точки), d – место под дробную часть. Разделителем в формате вывода является знак “ : “ (двоеточие). Количество символов в дробной части числа будет равен d, а общее количество символов вывода числа будет равно a. Если в операторе вывода формат не указан, то вывод будет осуществляться в нормализованной форме представления вещественного числа.

Например, если для переменной S:=66.25183 оператор вывода имеет следующий вид:

Writeln (‘ S= ’, S:5:2),

то результат в приведенном формате будет выглядеть как S=66.25 (для вывода числа отведено 5 позиций всего, а для дробной части отведено 2 позиции).

Сообщения и коды некоторых ошибок

2 Identifier expected (Не указан идентификатор). В этом месте должен находится идентификатор.

3 Unknown identifier (Неизвестный идентификатор). Этот идентификатор не был описан.

4 Duplicate identifier (Повторяющийся идентификатор). Попытка дважды описать один и тот же идентификатор.

5 Syntax error (Синтаксическая ошибка). В исходном тексте найден недопустимый символ.

10 Unexpected end of file (Не найден конец файла). Причины этого сообщения могут быть следующие:

  • исходный файл закончился перед последним END основного раздела операторов; вероятно в программе неодинаковое количество операторов BEGIN и END;

  • не закончен комментарий.

11 Line too long (Слишком длинная строка). Максимальная длина строки, обрабатываемая компилятором, равна 126 символам.

12 Type identifier expected (Здесь нужен идентификатор типа). Не указан тип идентификатора.

16 Disk full (Диск заполнен). Нужно удалить некоторые файлы или воспользоваться новым диском.

20 Variable identifier expected (Отсутствует идентификатор переменной). На этом месте должен быть идентификатор переменной.

21 Error in type (Ошибка в объявлении типа). Объявление типа не может начинаться с этого символа.

26 Type mismatch (Несоответствие типа). Это сообщение может быть вызвано следующими причинами:

  • несовместимые типы переменной и выражения в операторе присваивания;

  • тип выражения не совместим с типом индекса при объявлении массива;

  • несовместимые типы операндов в выражении.

33 Labеl identifier expected (Нужен идентификатор метки). Метка не обозначена с помощью идентификатора, как это требуется из контекста программы.

36 BEGIN expected (Нужен BEGIN)

37 END expected (Нужен END)

38 Integer expression expected (Нужно выражение типа Integer).

41 Operand types do not match operator (Типы операндов не соответствуют операции). Данная операция не может быть применена к указанным операндам.

42 Error in expression (Ошибка в выражении). Данный символ не может участвовать в выражении указанным образом. Возможно, не указана операция между двумя операндами.

50 DO expected (Нужен оператор DO)

57 THEN expected (Требуется THEN)

58 TO or DOWNTO expected (Требуется TO или DOWNTO)

62 Division by zero (Деление на ноль). Предшествующая операция пытается выполнить деление на ноль.

64 Cannot Read or Write variables of this type (Нет возможности считать или записать переменные данного типа). Нарушены следующие ограничения:

  • процедуры READ и READLN могут считывать переменные символьного, целого, действительного и строкового типов;

  • процедуры WRITE и WRITELN могут выводить переменные символьного, целого, действительного, логического и строкового типов.

76 Constant out of range (Константа нарушает границы). Возможные причины сообщения:

  • попытка указать индекс массива, выходящий за его границы;

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

79 Integer or real expression expected (Нужно выражение вещественного или целого типа).

81 Label already defined (Метка уже определена). Данная метка уже помечает оператор.

85 «;» expected (Нужно указать «;»). 97 Invalid FOR control variable (Неправильный параметр цикла оператора FOR).

98 Integer variable expected (Нужна переменная целого типа). Предшествующая переменная должна иметь целый тип.

103 Integer or real variable expected (Нужна переменная типа INTEGER or REAL).

113 Error in statement (Ошибка в операторе). Данный символ не может быть первым символом в операторе.

207 Invalid floating point operation (Недопустимая операция с плавающей запятой). Возможные причины сообщения:

  • отрицательный аргумент функции SQRT;

  • аргумент функции LN равен нулю или имеет отрицательное значение.

Приложение В

Варианты задач по теме «Линейные структуры»

Вычислить значение выражения по формуле (все переменные принимают вещественные значения):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

17

18

19

20

Приложение Г