Рефераты. Алгоритмический язык Паскаль

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

НАПРИМЕР:

DEN_MES = 1..31;

RAB_DEN = MO..SA;

LATBUKW = 'A'..'Z'.

ЗАМЕЧАНИЕ. Все типы, рассмотренные ранее, включая перечислимый и символьный, называются скалярными. Величины, принадлежащие скалярному типу, - упорядочены (не путать с ординальностью):

3 < 5; 1.2 > -6.8; 'A' < 'C'; true > false; MO > TH.

2.4 Объявление данных

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

раздел модулей;

раздел меток;

раздел констант;

раздел типов;

раздел переменных;

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

Любой из перечисленных разделов может в объявлении отсутствовать.

Раздел описания модулей начинается со служебного слова USES, за которым идет перечень используемых в программе модулей типа CRT, DOS, GRAPH и др. Все эти модули находятся в библиотеке модулей и каждый из них поддерживает соответствующий набор встроенных процедур и функций.

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

LABEL 342,11,1445;

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

НАПРИМЕР:

const PI = 3.1415927; E = 2.7182818; Z = 'информатика'.

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

Раздел определения типов начинается со служебного слова TYPE.

Каждому определенному типу соответствует имя. Данный раздел применяется для описания нестандартных типов (перечислимых, диапазонных и др.).

НАПРИМЕР:

type COLOR = (black, white, blue, green, red);

DEN = 1..31;

За разделом типов следует раздел описания переменных. Этот раздел начинается со служебного слова VAR. При объявлении переменных компилятору указывается, сколько переменных используется в программе, какие имена у них и данные, какого типа будут храниться в этих переменных.

НАПРИМЕР:

var X,Y,Z Ж integer; AD1,AD2: real;

TEXT: char; Q: DEN; D: 17..76.

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

3. ПРОСТЫЕ ОПЕРАТОРЫ. ВВОД/ВЫВОД ДАННЫХ

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

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

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

3.1 Оператор присваивания и выражения

Оператор присваивания относится к простым операторам и его синтаксис, и семантика определяются следующей синтаксической диаграммой:

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

а) переменные выражения получают свои значения;

б) вычисляется значение выражения;

в) переменной присваивается полученное значение.

В простейшем случае, когда выражение задано константой или другой переменной, вычислений не производится и переменная сразу получает свое значение.

НАПРИМЕР:

RAZN:= A - 3.5;

N:= 25; C:= D; Y:= 'программа';

L:= true; P:= X > 10.

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

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

В Tурбо-Паскале определены следующие операции над числами:

*, /, +, -, DIV, MOD, где DIV - деление нацело, MOD - вычисление остатка от деления.

Приоритет: *, /, DIV, MOD - высший;

+, - - низший.

НАПРИМЕР:

A:=13 DIV 5;(результат: A=2),

B:=13 MOD 5;(результат: B=3).

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

Тип арифметического выражения определяется по следующему правилу:

а) для операций "*, +, -", результат имеет тип REAL, если один из операндов имеет тип REAL; если оба операнда типа INTEGER, то результат имеет тип INTEGER;

б) для "/" результат всегда имеет тип REAL;

в) для "DIV, MOD" операнды и результат имеют тип INTEGER.

Значение переменной интервального типа, образованной на основе INTEGER, всегда имеет тип INTEGER. При использовании оператора присваивания нужно соблюдать типизацию объектов слева и справа от знака ":=". Смешение типов недопустимо, за исключением, когда слева от знака ":=" может стоять тип REAL, а справа - тип INTEGER.

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

1. Арифметические (математические) функции:

а) ABS(X), X - REAL и INTEGER, на выходе тот же тип;

б) ARCTAN(X), COS(X), SIN(X), EXP(X), LN(X), SQR(X), SQRT(X).

Для этих функций X есть REAL или INTEGER, а результат всегда REAL.

2. Функции преобразования типов:

а) CHR(X), где X - INTEGER;

Результат - символ, кодом которого является число X.

Например: CHR(65) = 'А'.

б) ORD(X), где X - CHAR;

Результат - число типа INTEGER.

Например: ORD('А') = 65.

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

type DAY=(mo,tu,we,th,fr,sa,su);

var DEN: DAY;

DEN:=tu; I:=ORD(DEN);

Значением переменной I будет 1, т.к. нумерация начинается с нуля.

в) ROUND(X), где X - REAL;

Результат INTEGER - ближайшее целое к X.

г) TRUNC(X), где X - REAL.

Результат INTEGER - целая часть X.

НАПРИМЕР:

TRUNC(5.8)=5; ROUND(3.14)=3;

ROUND(5.8)=6; TRUNC(-7.7)=-7;

TRUNC(3.14)=3; ROUND(-7.7)=-8.

Функцию ROUND можно выразить через TRUNC следующим образом:

-

¦ TRUNC(X+0.5), если X Є 0;

ROUND(X)={

¦ TRUNC(X-0.5), если X < 0.

L

3. Функции упорядоченных типов:

а) PRED (N) - предшествующий N элемент;

Функция не определена, если N - первый по порядку элемент.

Например: PRED(TU)=MO.

б) SUCC(N) - следующий за N элемент.

Функция не определена, если N - последний элемент типа.

Например: SUCC(MO)=TU.

в) ODD(I), где I - INTEGER, результат - BOOLEAN;

Если I - четное, то значение TRUE;

Если I - нечетное, то значение FALSE.

Эти функции работают в области упорядоченных (ординальных) скалярных типов, т.е. всех простых типов, исключая REAL.

3.2 Операторы процедур. Ввод/вывод информации

Оператор процедуры определяет активизацию процедуры, обозначенную с помощью идентификатора (имени) процедуры. Другими словами, с помощью операторов этого типа осуществляется вызов процедур с указанием в них входных и выходных параметров (подробнее об этом будет сказано в разделе "Процедуры"). Мы начнем знакомство с операторами-процедурами на базе организации ввода/вывода данных в языке Паскаль.

Для организации ввода и вывода данных используются следующие встроенные (машинные) процедуры: READ, WRITE, READLN, WRITELN.

Процедура READ вызывается с помощью соответствующего оператора процедуры, который описывается в виде следующей синтаксической диаграммы:

ОБЩАЯ ФОРМА ЗАПИСИ:

READ(X,Y,..., Z),

где X,Y,..., Z - переменные, называемые списком ввода.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.