Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Оператор присваивания. Приоритет операций. Стандартные функции.



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

арифметические логические отношения прочие

1                            NOT                         @-адресное преобразование

2 *, /, DIV, MOD    AND, SHL, SHR

3 +, -                       OR, XOR

4                                                    <; >; =;         IN

Для повышения приоритета используются ( ).

Стандартные функции ТП.

ABS(X      )      SQR(X)     SQRT(X)   TRUNG(X) ROUND(X)

COS(X)     SIN(X)      TG(X)     ARCTANG(X) EXP(X)

LN(X)        PRED(X)   SUCE(X)   ORD(X)    CHR(X)

ODD(X)    INT(X)      FRAG(X)  +, -, *, /         (X)DIV(Y)    

MOD(X)    NOT          AND          OR             XOR

= < >           I_SHL_J    I_SHR_J

Операторы и функции безусловного перехода (goto, continue, exit, halt).

EXIT; - выход из программы или подпрограммы

HALT(COD); - (COD) – необязательный параметр, определяет код

HALT; - безусловная остановка программы

ERRORLEVEL; - вниз

BREAK; - досрочный выход из цикла

CONTINUE; - прерывает выполнение текущей операции в цикле, передаёт управление следующему оператору

Структуры простой и сложной программ в Турбо-Паскале.

PROGRAM< имя программы >;

USES< имя модуля>;

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

LABEL< метки>;

CONST< константы>;

VAR< переменные и их типы>;

FUNCTION< имя функции> (имя переменной: тип)

BEGIN

операторы

END;

PROCEDURE< имя процедуры> ( параметры)

BEGIN

операторы

END;

BEGIN

Текст основной программы

END.

Подпрограммы. Применение. Структура описания. Отличие процедуры от функции.

Самостоятельные, законченные фрагменты программы, оформленные особым образом, снабжённые именем – называются подпрограммами

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

Подпрограммы используются:

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

2. В сложных программах при модульном проектировании.

Подпрограммы делятся на процедуры и функции 

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

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

Тело подпрограммы состоит из раздела описаний и раздела операторов.

Структура: PROCEDURE< имя процедуры >;

                   FUNCTION< имя функции> (параметр: тип);

                              USES< модули>;

LABEL< метки>;

                              CONST< константы>;

                              TYPE< типы>;

                              VAR< переменные>;

                   BEGIN

Тело подпрограммы

                   END;

Вложенные подпрограммы. Принципы локализации имен (локальные и глобальные переменные).

Вложенными являются подпрограммы, вызываемые из других подпрограмм.

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

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

Вызов подпрограмм (формальные и фактические параметры).

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

Пример:

PROCEDURE< имя> [(< формальные параметры> )];

FUNCTION< имя> [(< формальные параметры> )]: < тип>

Сразу за заголовками может следовать одна стандартных директив: ASSEMBLER < тело подпрограммы на ассемблере>, EXTERNAL< объявление внешней подпрограммы>, FAR, FORWARD, INLINE< встроенные машинные инструменты>, INTERRUPT, NEAR.

PROCEDURE SB(a: real< формальный параметр> );

Фактические параметры – это глобальные переменные подставленные в формальные

ТИП ФАКТ=ТИП ФОРМ.

 

Процедуры без параметров и с параметрами.

PROCEDURE< имя>

Begin

< текст процедуры>

end;

Передача в подпрограмму параметров регулярного типа (массивов, строк).

Типом любого формального параметра может быть только стандартный или ранее объявленный тип.

Пример:

TYPE                                                        TYPE

ATYPE=ARRAY[1..10]OF REAL;                INTYPE=STRING[15];    

PROCEDURE S(A: ATYPE);                              OUTTYPE=STRING[30];

                                                                  FUNCTION ST(S: INTYPE): OUTTYPE

Иной способ для передачи параметров переменных отключением контроля компиляции.

Открытый массив PROCEDURE I (A: ARRAY OF REAL);

Функции. Описание. Вызов функции.

FUNCTION< имя> [(< формальные параметры> )]: < тип>

Сразу за заголовками может следовать одна стандартных директив: ASSEMBLER < тело подпрограммы на ассемблере>, EXTERNAL< объявление внешней подпрограммы>, FAR, FORWARD, INLINE< встроенные машинные инструменты>, INTERRUPT, NEAR.

FUNCTION< имя функции> (параметр: тип);

Begin

< тело подпрограммы>

end;

Рекурсии. Прямая и косвенная рекурсия. Директива FORWARD.

Рекурсия – это такой способ организации вычислительного процесса при котором программа в ходе выполнения составляющих её операторов обращается сама к себе.

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

Begin

…………………………

F: =fac(n-1); - вспомогательная переменная

……………………….

End;

Рекурсивный вызов может быть косвенным, который разрешается опережающим описанием:

Procedure b(j: byte);

 Forward;

Procedure a (i: byte);

Begin

B(i);

End;

Тип-диапазон. Структурированные типы. Массивы.

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

Допускается бесконечная глубина вложенности типов, однако Суммой=< 65520 байт (т.к. каждый компонент может представлять структурированный тип).

PACKED- осуществляется везде где это возможно.

Тип диапазон:

TYPE

D = array [0..9] of char;

Var m: d;

Begin < операторы> end.

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

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

< мин. значение >..< макс. значение>

TYPE digit = ‘0’..’9’; можно Var date: 1..31;

       dig2=48..57;              month: 1..12;

                                             1CHR: ’a’..’z’;

High(x) – максимальное значение типа диапазон

Low(x) – минимальное значение типа диапазон.

Массивы - формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.д.), рассматриваемое как единое целое.

Var a: array [1..10] of real;

Компоненты массива состоят из данных одного типа (возможно структурированного).

В качестве идентификаторов порядковые типы кроме LongInt и типа диапазон с базисным типом LongInt/ 

Символьный тип.

Значением символьного типа является множество всех символов ПК. Каждому символу присваивается целое число в диапазоне 0..255.Это служит кодом внутреннего представления символа, его возвращает функция ORD. Для кодировки используется код ASCII – 7 битный код, т.е. с его помощью кодируется 128 символов (0..127). В то же время в 8-битном байте, отведённом для хранения символа в ТП, можно закодировать в 2 раза больше символов (0..255). (0-127ASCII, 128-255-может меняться на ПК разных типов).

0-31 – служебные коды (пробелы)

Строковый тип. Операции, процедуры и функции

Значением строкового типа является любая последовательность символов, т.е. строка. Окончанию строки соответствует символ с кодом 0, и которые называются строками с завершающим нулём или ASCIIZ-строками.

Строковый тип соответствует идентификаторам string и PChar.

A: array[0..n] of char = a: string

Ord(0)=length(a)- длинна строки(не больше 255 символов)

Concat (S1 [s2.., SN])- сцепление строк

Copy (St, index, count) – копирует из строки ST символ, начиная с index

Delete(ST, a, b) – удаление b символов начиная с a

Insert (sut, st, b)–вставляет SUT в ST начиная с b

Pos (Sut, St) - в строке ST отыскивает Sut если нет 0

Str (X [WIDTH [: DECIMALS]], ST)- из вещественного или целого в строку

Val (st, x, code) – обратно str (пробелы не допускаются)

Var s: string;

Begin

…….

S: = ’dsfsdhfjhsdfjshdfjsd’;

……….

End.


Поделиться:



Последнее изменение этой страницы: 2020-02-17; Просмотров: 69; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.03 с.)
Главная | Случайная страница | Обратная связь