Смекни!
smekni.com

Разработка программ в среде программирования Turbo Pascal 7.0 (стр. 3 из 5)

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

В заголовке процедуры с именем STEP1 перечислены парамет ры N,X, определяющие исходные данные программы и параметр Y, обозначающий значение искомой степени-результат выполнения процедуры.Указан также тип всех формальных параметров.Подроб-ней о параметрах будет расказано ниже. Обращение к подпрограмме-процедуре

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

имя (список формальных параметров);

где имя-имя вызываемой процедуры;

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

ру на место формальных параметров. При вызове процедуры формальные параметры заменяются фактичес кими в порядке их следования.Число и тип формальных и факти-ческих параметров должны попарно совпадать.В данном примере оператор процедуры осуществляет её вызов.В теле процедуры произойдёт замена формальных переменных на фактические. Затем выполняется совокупность действий, предусмотренных операторами процедуры , и в основную программу будет возвращен результат Z.


ФУНКЦИИ

Заголовок содеpжит заpезеpвиpованное слово

FUNCTION,идентификатоp(имя) функции,заключенный в кpуглые скобки,необязатель-ный список фомальных паpаметpов и тип возвpащаемого функцией значения. FUNCTION <имя> {(фоpмальные паpаметpы)}:<тип pезультата>;

Имя функции-уникальный идентификатоp в пpеделах блока.Возвpащаемый pезультат может иметь любой скаляpный тип,тип string и тип “указатель”. Тело функции пpедставляет собой локальный блок,по стpуктуpе аналогичный пpогpамме:

function<имя>{(фоpмальные паpаметpы)}:<тип pезультата>;

<pазделы описаний>

begin

<pаздел опеpатоpов>

end;

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

Процедурные типы данных.

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

Описание переменных процедурного типа:

type имя_типа1=procedure( формальные_параметры);

имя_типа2=function(формальные параметры): тип;

var имя1:имя_типа1;

имя2:имя_типа2;

Все процедуры и функции , имена которых присваиваются процедурным переменным, необходимо транслировать в режиме { $F+}. Вложенные функции и процедуры, т.е. , описанные внутри других процедур , с процедурными переменными использовать нельзя.Это не должны быть также стандартные роцедуры и функции.

ОПЕРАТОРЫ ВВОДА - ВЫВОДА

Для ввода данных в языке ПАСКАЛЬ предусмотрены стандартные процедуры READ и

READLN. Разлличают три вида операторов ввода:

а) READ(a1,a2,...,aN)-каждое вводимое значение поллучают послледовательно переменные a1,a2,...,aN

б) READLN(A1,A2,...,An)-переменным A1,A2,...,An присвиваются последовательно вводимые значения, после чего следующий оператор ввода вводит данные с новой строки.

в) READLN-переход на новую строку при вводе.

В языке ПАСКАЛЬ допускается вводить целые,действительные и символьные данные. Логические данные вводить не разрешается.

ВВОД ЧИСЛОВЫХ ДАННЫХ

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

При выполнении программы происходит останов программы привстрече

READ(A,B,C), на клавиатуре необходимо набрать три действительных числа, после чего с новой строки два целых числа соответственно оператору

READ(K,T),например:

0.5 6.23 -7.1 [enter]

3 48 [enter]

ВВОД СИМВОЛЬНЫХ ДАННЫХ

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

Пример ввода:

var a,b,c:char;

...........

read(a,b,c);

Если при вводе ввести данные -- SNR [enter] -- получим:A='S',B='N',C='R'

При вводе данныхв виде: -- S N R [enter] -- получим:A='S',B=' ',C='N'

ОПЕРАТОР ВВОДА ДЛЯ ЧТЕНИЯ ФАЙЛА

Оператор ввода для чтения файла обладает всеми свойствамии обычного оператора READ. Вкачестве параметров могут быть переменные; каждая переменная поучает значение одного эемента считанного из внешнего файа.

Процедура READ(F1,X) применяется для считывания (по одному) данных из внешнего файла в переменную X.

ОПЕРАТОР ВЫВОДА.

Опеатор вывода данных из памяти ЭВМ на экран дисплея имеет три формы:

1) WRITE(b1,b2,...bn)-выводит последовательно значения b1,b2,...,bn;

2) WRITELN(b1,b2,...,bn)-выводит последовательно значения b1,b2,...,bn и осуществляет переход на новую строку;

3) WRITELN-осуществляет переход на новую строку при выводе данных.

В качестве параметров b1,b2,...,bn могут быть целые,действительные,символьные и логические переменные, а так же символьные константы. Допускается вывод данных с форматами и без них. Форма представления выводимых данных зависит от типа данных: значения целых переменных выводятся как целые числа ,значения действительных переменных-в виде мантиссы и десятичного порядка, значения символьных переменных- в виде отдельных символов,значения логических переменных- в виде TRUE или FALSE.

Для выводимых значений переменных отводятся следующие поля: 13-для целого числа,13-для действительного, 1-для символа,6-для логических данных.Если целое число занимает позиций меньше, чем 13, то соответствующее поле перед числом заполняется пробелами.Если отсутствует формат для действительного числа, оно выводится в форме с плавающей точкой. Например число Z=10.9 при выводе в виде WRITE (`Z=`,Z) на экране будет представлено

Z= 1.090000E+01

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

a:m:n

где а-переменная, m-общее поле выводимого числа(включая знак числа, целую часть числа, точку и дробную часть); n-поле дробной части.

В качестве m и n могут быть как целые переменные,выражения,так и целые

константы. Например:

WRITE (SK:M:N,FGH:7:2);

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

Для других типов данных формат имеет вид: a:m

Например:

WRITE(K:5,C:4);

Для вывода нескольких пробелов символ пробела указывается с форматом ,

Например: ` `:7

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

WRITE(` `:5,A:3,` `:7,B:4)

МОДУЛИ

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

Модуль состоит из следующих частей:

а) заголовок модуля

б) интерфейс модуля

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

г) секция инициализации

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

Заголовок модуля

Заголовок модуля состоит из зарезервированного слова unit и идентификатора.

Unit имя_модуля;

Модуль должен быть помещен в файл, имя которого совпадает с именем модуля, а его расширение должно быть .pas .

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

Через интерфейс осуществляется взаимодействие основной программы с модулем ( модуля с модулем) . В интерфейсе указываются константы, типы, переменные, процедуры и функции , которые могут быть использованы основной программой ( модулем) при вызове этого модуля. Интерфейс начинается словом interface. Далее после слова uses указываются имена модулей, которые используются данным модулем ( необязательная часть).После этого могут быть : раздел объявления констант, раздел объявления типов, раздел объявления переменных, раздел объявления процедур и функций. Объявление процедуры может содержать директиву inline. В разделе объявления процедур и функций указываются лишь заголовки программ ( за исключением тех, которые используют директиву inline) . Сами подпрограммы приводятся в исполнительной части. В интерфейсах различных модулей недопустимо циклическое обращение друг к другу.

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

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

Исполнительная часть начинается словом implementation . Затем после слова uses указываются имена модулей, которые используются подпрограммами данной исполнительной части ( этот раздел необязателен). Если какой-то модуль уже указан в интерфейсе модуля, то в исполнительной части его повторять не следует. Далее может следовать раздел локальных описаний . При описании подпрограмм допустимо использовать сокращенные заголовки.

Секция инициализации.