Рефераты. Разработка программ в среде программирования Turbo Pascal 7.0

Если во время операции  преобразования ошибки не обнаружено,  значение Cod равно нулю, если ошибка обнаружена, Cod будет содержать номер позиции первого ошибочного символа, а значение IBR не определено.

Записи.

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

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


часы

минуты

до полудня


в которой 10.45 утра может храниться как


10

45

true


а 7.15 вечера :


7

15

false


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

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

К каждому компоненту записи можно обратиться, используя имя переменной типа записи и имя поля, разделенные точкой: now.hour,   later.befornoon;


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

Входные данные : Каждая  вводимая  строка содержит информацию о продаже в следующей форме:

год продажи:  целое в диапазоне 1900..2099;

код продукции: четырехзначное целое ;

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


Массивы записей.

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

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

 

ПРОЦЕДУРЫ  и ФУНКЦИИ


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

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


ПОДПРОГРАММА-ПРОЦЕДУРА

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

·     раздел описаний (меток ,  констант , типов , переменных процедур и функций);

·     раздел операторов,  представляющий собой составной оператор BEGIN-END.

Процедура состоит , аналогично программе , из заголовка и тела процедуры.

Заголовок процедуры имеет вид:

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

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

Допускается описание процедуры не содержащей формальных параметров:

PROCEDURE имя;

Всякая подпрограмма-процедура   может   содержать   свои внутренние или вложенные процедуры.Степень вложенности определяется возможностями машины.

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

В заголовке процедуры с именем 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.

Страницы: 1, 2, 3, 4, 5



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