Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Структура программы в TURBO PASCAL




 

Program <название> - заголовок программы

Label - описание меток

Const - описание констант

Type - описание типов

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

Procedure - описание процедур

Function – описание функций

 

Заголовок программы выполняет чисто декоративные функции и служит для удовлетворения эстетических запросов программиста. Заголовок программы компилятором игнорируется.

Раздел “описание” состоит из пяти секций.

Описание меток. Переход по метке выполняется оператором GOTO. Все метки должны быть описаны. Метки могут быть целочисленными от 0 до 9999 или идентификаторами. Каждая описанная метка должна появиться в программе.

Пример. Label X1, Finish, 4444;

Описание констант. Общий вид:

Const идентификатор = выражение (или число).

Пример.Const Limit = 256

                                  M = 25*16;

                                  K = M*Limit - 1

                                  Error = ‘Ошибка’; - символьная константа;

                                  Err1 = Error + ‘Повторите ввод’;

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

ABS - абсолютная величина

CHR - символическая переменная типа порядковый номер

HI - старший байт (хай)

LENGTH - длина строковой переменной

LO - младший байт

ORD – порядковый номер

PRED - предыдущее значение

PTR - указатель (пойнтер)

ROUND - округление

SIZEOF - размер переменной

SUCC - следующий

SWAP - перестановка байтов

TRUNC – отбрасывание дробной части числа

Предопределенные константы:

FALSE - истина

TRUE - ложь

MAXINT = 32767

MAXLONGINT = 2147483647

BOOLEAN - логическая переменная

INTEGER - целое

LONGINT - длинное целое

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

Пример. Const L = 100;

              H = -L;

В данном примере сначала определяется идентификатор константы L, который затем используется при определении константы Н.

В качестве констант в языке Паскаль разрешается использовать целые и вещественные значения, а также строки.

Пример. Const PI = 3,14;

              STR = ‘-----’;

              LENGHT = 80;

Определение типов

 

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

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

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

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

Type идентификатор = тип;

идентификатор = тип;

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

Описание типов.

Общий вид: Type идентификатор = тип;

Пример. TYPE NUMBER = INTEGER;

                        INDEX = -1...99;

                        VALUE = - 999...999;

                        LIST = ARRAY [INDEX] OF VALUE;

                        COLOR = (RED, GREEN, BLUE);

                        EXT = REAL;

Описание переменных.

Общий вид: Var - идентификатор, идентификатор: тип

Пример. VAR R1, R2, R3: INTEGER;

V1, V2, X1: REAL;

EGUAL: BOOLEAN;

WORD1: CHAR;

Операторы в программе

 

Любая программа на языке Паскаль начинается со слова PROGPAM и заканчивается словом END. (с точкой). Вслед за словом PROGRAM записывается имя программы, которое ей дает автор. Все имена (идентификаторы) записываются с использованием только 26 букв латинского алфавита и 10 арабских цифр. При этом все идентификаторы должны отличаться друг от друга. Вся первая строчка программы называется заголовком программы.

Во второй строке программы вслед за словом VAR через запятую перечислены идентификаторы А, В, Х1 и т.д. С помощью слова REAL указывается, что значения, которые могут принимать эти переменные, должны быть вещественными. Они могут быть также и целыми, поскольку целые числа являются подмножеством вещественных чисел. Вся вторая строка программы представляет собой раздел описания переменных.

VAR A, B, C, X1, X2: REAL

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

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

 

Операторные скобки

 

Вся оставшаяся часть программы представляет собой раздел операторов и заключена между словами BEGIN и END. Любая последовательность операторов, заключенная между словами BEGIN и END, называется составным оператором. Таким образом, раздел операторов - это составной оператор. В нем описываются все алгоритмические действия, которые необходимо выполнить над исходными данными для получения результата.

 

Операторы ввода

 

Часто первыми действиями, выполняемыми программой, являются действия по вводу данных. В языке Паскаль для этой цели служит процедура чтения READ, например, READ(A, B, C);

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

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

 

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

 

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

D : = SQR(B) - 4 * A * C;

D=B*B-4AC;

В языке Паскаль обязательно указываются все знаки операций (* - знак умножения).

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

/ - знак операции деления

В операторах присвоения часто в левой и правой частях стоят одни и те же идентификаторы, например: X := X + 1. Этот оператор имеет следующий смысл: необходимо взять текущее значение Х, изменить его в соответствии с действиями, указанными в правой части, и полученное значение взять в качестве нового текущего значения Х.

С помощью оператора присваивания можно задавать начальные значения переменным. Так, вместо процедуры

READ(A, B, C);

И последующего ввода значений, 5, 3, 2 можно было бы записать три оператора присваивания:

A := 5; B := 3; C := 2;

Однако такая форма задания исходных данных для программы вряд ли может быть признана удовлетворительной. Программа оказывается “привязанной” к данным. В этом случае для выполнения программы с новыми исходными данными необходимо сначала исправить три оператора присваивания и перекомпилировать программу. В случае использования процедуры чтения подобной привязки программы к данным нет. Тогда при выполнении вычислений для новых исходных данных необходимо изменить лишь сами исходные данные.

 










Последнее изменение этой страницы: 2018-05-27; просмотров: 221.

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