Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
gosy_otvety.docx
Скачиваний:
28
Добавлен:
30.04.2019
Размер:
1.15 Mб
Скачать

Раздел 8. Основы алгоритмизации и программирования

102) Этапы подготовки и решения задач на ЭВМ.

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

2. Математическое описание задачи (хар-ся математической формализацией задачи, при кот существующее соотношение м/у величинами, определяющими результат выражается с помощью математических формул, полученная математическая модель должна удовлетворять след требованиям: должна быть реалистична и реализуема);

3. Выбор и обоснование метода решения (при обосновании выбора метода необходимо учитывать различные факторы и условия, такие как точность вычисление и время решения задачи, требуемый объем памяти и др);

4. Алгоритмизация вычислительного процесса (составляется алгоритм решения задачи, согласно действиям, задаваемым, выбранным методом решения, результат этого этапа – разработанная блок-схема);

5. Составление программы (на данном этапе алгоритм решает зад переводится на конкретный язык программирования);

6. Отладка программы (заключается в поиске и устранении синтаксических и логических ошибок) ;

7. Решение задачи на ЭВМ и анализ результатов (на этом этапе выполняется многократное решение задач на ЭВМ для различных наборов исходных данных, полные результаты интерпретируются и анализируются специалистом или пользователем поставленным задачу); 8. Оформление документации (прописываются системные требования к аппаратуре, к дополнительному ПО, правила инсталляции, инструкции оператора, программиста).

103) Строки, операции со строками

Строка – последовательность символов произвольного количества (до 255).

Type <имя>=string[20];

Операции над строками:

1) сравнение – 2 строки можно сравнить поэлементно слева направо с помощью ASCII-кода ‘abc’<’bac’ ‘abc’>’a’ ‘abc’<’z’;

2) конкатенация – объединение, сложение 2-х строк ‘abc’+’bac’=>’abcbac’ ‘5’+’4’=>’54’

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

1) LENGTH(S) – длина строки (функ-я определения длины строки) S – строка, результат – целое число.

2) POS(S1,S) – определение позиции начала вхождения подстроки S1 (то что ищем) в строку S (та, в которой ищем), результат – номер позиции. Функция определяет первое вхождение.

3) COPY(S,N,K) – выделение подстроки из строки S, начиная с позиции N, длиной K. Результат – подстрока.

4) DELETE(S,N,K) – удаление подстроки из строки, результат – в первом параметре.

5) INSERT(S1,S,N) – вставить строку S1 в строку S, начиная с позиции N. Результат – S-строка.

104) Структура современной системы программирования

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

1) текстовый редактор - служит для создания текста программы;

2) компиляторы (трансляторы), служат для перевода в язык машинных кодов;

3)компоновщики (редакторы связи), для объединения нескольких кодов в одно целое;

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

5)загрузчики, обеспечение поддержки готовой программы к выполнению;

6)отладчики, выполняют программу в заданном режиме.

На современном этапе развития средств разработки тесно связаны с повсеместным распространением развитых средств графического интерфейса пользователя. Для описания графических этапов программ потребовались соответствующие языки, на основе которых сложилось такое понятие, как ресурс прикладной программы – это множество данных, обеспечивающих внешний вид интерфейса пользователя прикладной программы и напрямую несвязанных с логикой выполнения программ, к ним можно отнести – тексты сообщений; цветовая гамма элементов интерфейса; надписи на таких элементах, как кнопки, заголовки окон и т.д. для формирования структуры ресурсов потребовалось редакторы ресурсов и соответственно компиляторы. Объектные коды, полученные в результате обработки компилятором ресурсов, поступали на вход компоновщика. Система программирования – это весь комплекс программных средств, предназначенных для кодирования, тестирования и отладки ПО.

105) Тип-запись. Его использование. Назначение оператора With при написании программы

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

Type <имя типа>=record

<имя поля 1>:<тип 1>;

<имя поля n>:<тип n>;

Доступ к полям записи: <имя записи>.<имя поля> Чтобы обратиться сразу ко всем полям одной записи – With <имя записи> do begin …. end;

106) Понятие и особенности алгоритма. Способы записи алгоритма. Структуры алгоритма

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

Особенности:

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

2. алгоритм должен быть понятен исполнителю;

3. алгоритм является дискретной структурой и содержит конечное количество шагов.

Способы записи алгоритма:

1. Словесно – формульный;

2. структурный или блок – схемный;

3. с помощью граф схем;

4. с помощью языков программирования.

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

107) Особенности алгоритма. Понятие о структурном программировании

Особенности алгоритма:

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

2. должен быть понятен исполнителю;

3. является дискретной структурой и содержит конечное количество шагов.

Появление новой технологии, или, как еще говорят, дисциплины программирования, основанной на структурном подходе, связано с именем известного голландского ученого Э.Дейкстры (1965 г.). В своих работах он высказал предположение, что оператор GOTO может быть исключен из языков программирования и что квалификация программиста обратно пропорциональна числу операторов GOTO в его программах. Такая дисциплина программирования упрощает и структуризирует программу. Однако представление о структурном программировании, как о программировании без использования оператора GOTO, является ошибочным. Например, Хоор определяет структурное программирование как "систематическое использование абстракции для управления массой деталей и способ документирования, который помогает проектировать программу".

Структурное программирование можно толковать как "проектирование, написание и тестирование программы в соответствии с заранее определенной дисциплиной".

Структурный подход к программированию как раз и имеет целью снижение трудоемкости всего процесса создания программного обеспечения от технического задания на разработку до завершения эксплуатации. Он означает необходимость единой дисциплины на всех стадиях разработки программы. В понятие структурного подхода к программированию обычно включают нисходящие методы разработки программ (принцип «сверху вниз»), собственно структурное программирование и так называемый сквозной структурный контроль. Основной целью структурного программирования является уменьшение трудностей тестирования и доказательства правильности программы. Это особенно важно при разработке больших программных систем. Опыт применения методов структурного программирования при разработке ряда сложных С показывает, что правильность логической структуры системы поддается доказательству, а сама программа допускает достаточно полное тестирование. В результате в готовой программе встречаются только тривиальные ошибки кодирования, которые

легко исправляются.

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

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

108) характеристика TP 7.0

Язык Паскаль, названный в честь французского математика и философа Блеза Паскаля (1623-1662), был создан как учебный язык программирования в 1968-71 годах швейцарским ученым Никлаусом Виртом на кафедре информатики Стэнфордского университета (Цюрих). В настоящее время это язык имеет более широкую сферу применения, чем предусматривалось при его создании. Свое признание Паскаль получил с появлением пакета Турбо Паскаль (Turbo Pascal). Этот язык отличается простотой понимания, стройностью и структурностью алгоритмов, быстротой компилятора и удобными ср-вами создания и отладки программ.

Достоинствами языка Паскаль являются:

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

Универсальность языка. Язык Паскаль применим для решения практически всех задач программирования.

Поддержка структурного программирования, программирования "сверху-вниз", а также объектно-ориентированного программирования.

В настоящем пособии рассматривается Tirbo Pascal v7.0. Данная версия разработана фирмой Borland и является последней в линейке компиляторов Pascal для DOS. Дальнейшее развитие Паскаль получил в Delphi - системе разработки программ для Windows.

Среда разработчика Turbo Pascal 7.0

Базовыми компонентами система программирования Турбо Паскаль являются компилятор языка Паскаль, средства создания и редактирования исходных текстов программ и средства их отладки (поиска и исправления ошибок). Все эти компоненты объединены в единую интегрированную среду разработчика, с которой как раз и работает программист, создавая свои программы.

Окно среды разработчика

Основной экран интегрированной среды разработчика Turbo Pascal 7.0 выглядит следующим образом:

По функциональному назначению выделяется три области экрана:

-Строка меню

-Рабочая область

-Строка состояния

Строка меню активизируется нажатием клавиши F10. В меню содержатся следующие разделы:

File. Позволяет выполнять все основные действия с файлами (создание, открытие, сохранение ..)

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

Search. Позволяет осуществлять поиск и замену фрагментов текста.

Run. Позволяет запускать программу, в том числе в пошаговом режиме.

Compile. Позволяет осуществлять компиляцию программы.

Debug. Содержит команды, облегчающие процесс поиска ошибок в программе.

Tools. Содержит некоторые дополнительные ср-ва Турбо Паскаль.

Options. Позволяет установить необходимые для работы параметры компилятора и среды разработчика.

Window. Позволяет выполнять все основные операции с окнами (открывать, закрывать, перемещать, изменять размер).

Help. Позволяет получить имеющуюся в системе справочную инф.

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

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

Строка состояния демонстрирует некоторые доступные и важные в данный момент операции и соответствующие им комбинации клавиш.

Основные команды и горячие клавиши

Ctrl+F9 - запуск программы

Alt+F5 - просмотр пользовательского экрана

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

F3 - открытие сохраненной программы

Alt+F3 - закрытие активного окна

Alt+X - выход из Турбо Паскаль

F1 - контекстная помощь

Ctrl+F1 - справка об операторе, на котором установлен курсор

Alt+Backspace - отмена последнео изменения

Ctrl+Y - удаление строки

Shift+стрелки - выделение блока текста

Ctrl+Insert - копирование выделенного блока в буфер

Shift+Insert - вставка из буфера

109) Структура программы. Обязательные и необязательные разделы

Паскаль имеет след структуру: 1)заголовок программы – состоит из служебного слова program, имени программы, образ-го по правилам использования идентификаторов паскаля, и «;»;

2)раздел описаний(объявлений) – включает в себя след подразделы: раздел описания констант const, типов type, переменных var, процедур procedure и функций function. Должны быть описаны все переменные, типы, константы, которые будут использоваться в программе;

3)исполнительная часть(тело программы) – начинается со слова begin, затем следуют операторы языка, реализ-ие алгоритм решения задачи. Операторы отделяются друг от друга «;» и м. располагаться в одну строчку или начиная с новой строки. Тело программы заканчивается служебным словом end.

program имя_прг; {необязательный}

const описание_конст;

type описания_типов;

var описание_перем;

begin

<операторы>;

end.

110) Файлы, их типы. Организация ввода вывода. Файловые переменные. Процедуры и функции при работе с файлами.

ФАЙЛ- поименованная совокупность однотипных данных, хранящихся на внешнем носителе.

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

Синтаксис объявления файлового типа:

Type <имя типа> file of <тип компонент>

Num=file of integer;

Ch=file of char;

В ТР есть стандартный тип text- это такой тип файл, компонентами которого являются строки.

После объявления типа файл можно объявить файловые переменные.

В Турбо-Паскале выделяют 3 типа файлов:

1. Текстовые файлы – используются для хранения текстовой инф в виде символов, объединенных в строки.

Описание: var <файловая переменная>: text;

Например, var f1: text;

2. Типизированные файлы – используются для хранения данных определенного типа.

Описание: var <файловая переменная>: file of <тип>;

Например, var f1: integer;

var f2: real;

var f3: ‘A’..’z’;

3. Нетипизированные файлы – используются для организации доступа к любым данным, независимо от их структуры (тип компонентов не указывается).

Описание: var <файловая переменная>: file;

Например, var f: file;

Организация ввода-вывода (алгоритм работы с файлами)

1.Ввести файловую переменную.

2. Связать файловую переменную с конкретными файлами (assign)

3. Открыть файл для чтения или для записи.(reset, rewrite, append)

4. Осуществить операцию обмена (read, write)

5. Закрыть файл (close).

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

assign (<файловая переменная>, <имя.расширение>); - устанавливает связь м/у файловой переменной и именем файла на диске. Имя файла состоит из двух частей: имя (не более 8 символов) и расширение (не более 3 символов). Расширение может отсутствовать.

-Например, assign(f1,’res.txt’);

reset (<файловая переменная >); - открывает существующий файл для чтения.

Например, reset(f1);

rewrite (<файловая переменная >); - открывает файл для записи. Если файла нет на диске, то он создается. Если есть такой файл, то он создается заново пустым, вся старая инф стирается.

Например, rewrite(f1);

append (<файловая переменная >); - открывает файл для добавления в него новой информации (старая не стирается). Только для текстовых файлов (!).

Например, append(f1);

read (<файловая переменная >, <переменная>); - чтение одного элемента из файла, соответствующего файловой переменной, и помещение его в переменную программы. Чтение осуществляется последовательно, после чтения каждого значения, указатель в файле перемещается на следующую позицию.

Для текстового файла может использоваться процедура readln, которая читает значение из файла и пропускает непрочитанную часть строки и признак конца строки.

write (<файловая переменная >, <переменная>); - запись в файл данных из переменных программы. Вывод информации осуществляется последовательно.

var f1: file of char;

y: array [1..100] of integer;

for i:=1 to 100 do write(f1,y[i]);

eof (var f): boolean; - ф-я проверки конца файла. Возвращает true, если достигнут конец файла, иначе возвращает false.

while not eof(f) do read(f,x);

{команда читается так: пока не конец файла делай команду: чтение очередного эл-та из файла, соответствующего файловой переменной f, в переменную x}

close (<файловая переменная >); - процедура закрытия файла, завершает действия с файлом. После процедуры close файловую переменную можно связать с другим файлом или снова открыть этот же файл.

assign(f2,’MyFile.txt’);

rewrite (f2);

close(f2);

reset(f2);

close(f2);

assign(f2,’OtherFile.txt’);

reset(f2);

rename(<файловая переменная>,<новое имя файла>); - переименование файла на диске. Перед использованием этой процедуры необходимо связать файловую переменную со старым именем файла. Если файл был открыт, то необходимо его закрыть.

erase (<файловая переменная>); - удаление файла с диска. Если файл был открыт, то закрыть, связать с файловой переменной.

assign(f,’res.old’);

erase(f);

СТАНДАРТНЫЕ ПРОЦЕДУРЫ И Ф-И ДЛЯ ФАЙЛОВ БЕЗ ТИПА.

seek (<файловая переменная>, N); - перемещение в заданную позицию файла, нумерация позиций с нуля, N – номер позиции. Не используется для текстовых файлов (!).

filespos(<файловая переменная>): longint;

filesize(<файловая переменная>): longint; - функция, возвращает текущий размер файла (кол-во компонентов!).

blockread (f, buf, n, res); - чтение из файла f в переменную buf (обычно массив), n – число записей, запрашиваемых на чтение, res – число реально считанных записей.

blockwrite (f, buf, n, res); - запись из переменной buf в файл f.

Truncate(F)- удаление части файла, начиная с текущей позиции функции.

111) Простые операторы языка в ТР 7.0. Описание, примеры использования в программе.

Операторы языка Паскаль

Описывают некоторые действия, которые необходимо выполнить для решения задачи. Тело программы представляет собой последовательность операторов (команд), которые разделяются «;».

Порядок выполнения операторов программы: слева направо сверху вниз.

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

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

Составной оператор

Представляет собой совокупность последовательно выполняемых операторов, заключенных в операторные скобки begin … end. Структура оператора следующая:

begin

<оператор 1>;

<оператор 2>;

<оператор 3>;

end;

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

Оператор выбора CASE

С помощью этого оператора можно выбрать вариант из любого количества вариантов.

Структура оператора:

case <ключ выбора> of

константа1: оператор1;

константа2: оператор2;

константаN: операторN;

else оператор;

end;

<ключ выбора> - переменная или выражение, значение которого вычисляется. Далее выполняется оператор, которому предшествует константа, равная вычисленному значению. Если константы, соответствующей значению ключа выбора не найдено, то выполняется оператор после else (эта часть может отсутствовать).

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

case i of

0,2,4,6,8: writeln(‘четная цифра’);

1,3,5,7,9: writeln(‘нечетная цифра’);

10..100: writeln(‘число от 0 до 100’);

else writeln(‘отрицательное число или >100’);

end;

Оператор перехода GOTO

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

Структура оператора:

GOTO <метка>;

< метка >: <оператор>;

Метка – это число от 0 до 9999, или идентификатор. Метки, используемые в программе, должны быть описаны:

LABEL 1, 2, Met;

Нельзя использовать оператор GOTO для перехода в подпрограммы, а также внутрь операторов цикла, условного и составного операторов.

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

Пример: Частное от деления целых чисел.

Label M1;

var x,y,res: integer;

begin

write(‘Введите x,y’);

readln(x,y);

if y=0 then

begin

writeln(‘Деление на ноль!’);

goto M1;

end;

res:=x div y;

writeln(‘Частное = ’, res);

M1: writeln(‘Конец программы’);

end.

112) Формальные и фактические параметры. Передача параметров значением, переменной

1. Фактические параметры, объявленные в основной части программы, доступны во всех процедурах программы.

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

Формальные параметры отделяются «; » (список однотипных параметров м.б. перечислен через «,»). Формальны пар-ры нельзя описывать в раздел описания процедуры. Фактические пар-ры в списке отделяются друг от друга «,». Количество, типы и порядок следование форм. и факт. пар-ров должны совпадать. Можно выделить 2 основных класса форм.пар. :

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

Форм. параметры:

-указываются в заголовке подпрограммы в момент описания;

-указывают какие должны быть факт. параметры;

-служат для связи подпрограммы с основной программой;

-определяют класс решаемых задач по данному алгоритму;

Форм. параметры задаются в заголовке подпрограммы в виде списка, разбитого на группы. Группы м/у собой разделяются «;». В группу включаются форм. пар-ры одного типа и одной категории.

ПАРАМЕТРЫ-ЗНАЧЕНИЯ указываются в заголовке подпрограмм своим именем и через «:» типом. При исполнении такого способа передачи значение параметра может изменяться внутри подпрограммы, но при выходе восстанавливается на исходное. В качестве факт параметра может выступать переменная или выражение, совместимого для присваивания типа.

ПАРАМЕТРЫ-ПЕРЕМЕННЫЕ при передаче в подпрограмму фактически через стек передаются их адреса, а не значения, что позволяет подпрограмме изменять содержание этих пар-ров. Объявляются также как параметры-значения, но перед именем указывается VAR. Преимущества: быстродействие и экономия памяти (нет копий в стеке); Недостаток: возможность случайного изменения исходного значения.

113) Переменные и константы

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

1) в разделе описания переменных.

2) в разделе объявления переменных подпрограмм

3) в разделе объявления переменных модуля

4) в заголовке подпрограммы

Переменные объявленные не в подпрограмме называются ГЛОБАЛЬНЫМИ, они доступны во всех частях программы. Переменные объявленные в подпрограмме называются ЛОКАЛЬНЫМИ.

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

В Турбо Паскаль применяется несколько стандартных видов констант:

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

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

Символьные константы. Могут быть определены посредством некоторого символа (заключенного в апострофы).

Строковые константы. Могут быть определены последовательностью произвольных символов (заключенных в апострофы).

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

114) Понятие алфавита и идентификатора. Элементы алфавита

Алфавит – допустимый набор символов в языке. Все элементы можно разделить на 4 группы:

-символы используемые в идентификаторах (-латинские буквы; - цифры (0..9); -спец.символы (+ - @ $ / = < > {} [] () : ; # __ .);

-разделители (используются для отделения друг от друга идентификаторов, чисел, служебных слов – в качестве разделителя используется пробел, любой управляющий символ(коды от 0 до 31), комментарии{ } (* *));

-спец.символы (знаки пунктуации; знаки операции; зарезервированные слова);

-неиспользуемые символы (буквы русского алфавита, знаки % и & и “).

В качестве имен программ, типов констант, переменных, модулей и др объектов языка исп-ся идентификаторы, которые представляют собой совокупность букв, цифр, символа ___, начинающуюся с буквы или симв __. Идент-р не может содержать пробелы. При написании м.б. исп-ны как прописн, так и строчные буквы. Каждое имя (идент-р) д.б. уникальным. Его длина не ограничена. Если в именах 1вые 63 символа неодинаковые, то имена счит-ся различными. Большие и маленькие буквы равнозначны.

115) Стандартные библиотечные модули в TP 7.0. Их краткие характеристики. Работа с модулями CRT Graph.

Стандартные модули Турбо-Паскаля

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

В составе Турбо-Паскаль 6.0 имеются 8 стандартных модулей:

System; dos; crt; printer; overlay; graph; Turbo3 graph3

Для использования процедур или функций данного модуля необходимо подключить его с помощью оператора

uses имя модуля1 [, имя модуля2, …];

Модуль system подключается автоматически.

Модули ТУРБО3 и GRAPH3 обеспечивают совместимость с программами, разработанными ранее для ТР 3.0

Модуль OVERLAY предоставляет ср-ва для разработки оверлейных программ (размер которых превышает объем доступной ОЗУ, и которые загружаются в память по частям)

Модуль DOS содержит ср-ва доступа к ОС DOS (процедуры и ф-ии для работы с дисками, файлами, системной датой, временем).

Модуль SYSTEM содержит процедуры и ф-ии стандартного Паскаля и некоторые другие основные процедуры и ф-ии.

inc (x[,n]) – ув значения переменной x на n единиц (инкремент).

dec (x[,n]) – ум значения переменной x на n единиц (декремент).

high(x) – получение макс значения величины х; если х – массив, то максимального значения индекса.

low(x) – получение минимального значения величины х; если х – массив, то минимального значения индекса.

exit – немедленный выход из подпрограммы.

halt – прекращение выполнения программы и передача управления ОС.

Пример:

writeln(‘Введите x>0’);

readln(x);

if x<=0 then halt;

Модуль PRINTER

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

Пример:

uses printer;

var a: integer;

begin

a:=20;

writeln(lst,’a=’,a); {вывод на принтер a=20}

end.

Модуль CRT. Содержит процедуры и ф-ии упр-я экраном в текстовом режиме, упр-я звуком и работы с клавиатурой.

При работе в текстовом режиме весь экран разбивается на позиции (25 строк по 80 позиций в каждой). Для каждой позиции можно задать цвет фона и цвет символа, символ можно сделать мерцающим.

Координаты 1 позиции (верхний левый угол) – (1,1), последней позиции (нижний правый угол) – (80,25).

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

Модуль GRAPH. Содержит процедуры и ф-ии, обеспечивающие работу с экраном в графическом режиме (создание изображений).

1) В графическом режиме весь экран разбивается на точки (пиксели – от англ. pixel). Каждую точку можно закрасить в любой цвет, таким образом из различных комбинаций точек создается изображение.

2) Каждая точка имеет координаты (х, у), х увеличивается по горизонтали слева направо, у – по вертикали сверху вниз. Верхний левый угол имеет координаты (0, 0), количество пикселей зависит от типа видеоадаптера и режима его работы. Для адаптера VGA – 640х480 (стандартный режим). Чем больше пикселей (точек), тем выше качество изображения.

{Драйвер устр-ва – программа упр-я устр-вом. Видеоадаптер – системное устр-во, непосредственно упр-щее монитором и выводом инф- на экран. Основные части – видеоконтроллер, видеоBIOS, видеопамять и т.д.}

3) В графическом режиме можно выделить на экране графическое окно, тогда координаты отсчитываются внутри окна, верхний левый угол считается точкой (0,0).

4) В графическом режиме, в отличие от текстового, курсор невидим на экране, но также можно переместить его в любую точку экрана, получить его текущие координаты.

116) Простые типы данных, их хар-ки, примеры описания в прогр-ме.

Тип – множество допустимых значений переменных. Простые типы определяют множество упорядоченных значений параметров:

-порядковые:

1)целые (byte 1, shortint 1б, smallint 2б, word 2б, integer 4б, longint 4б);

2)символьные (состоит из 256 различных симв кодов, которые упорядочены, определяет полный набор ASCII-символов char);

3)логические (основной стандартный логический тип – Boolean 1б; элементы данного типа могут принимать одно из значений – false, true при этом выполняется след условие f<t);

4)перечисляемые (не является стандартным и определяется набором идентификаторов с которыми могут совпадать значения параметров, список идент указывается в скобках ч/з запятую, важно в каком порядке перечислены идентификаторы при определении типа, т.к. 1му присваивается номер равный 0, 2му – 1ый и т.д);

5)тип-диапазон (min..max);

-вещественные (real 6б, single 4б, double 8б, extended 10б, comp 8б);

-дата-время;

117) Работа с параметрами-константами и параметрами без типа. Передача параметров из основной программы в ПП

ПАРАМЕТРЫ-КОНСТАНТЫ используются в том случае, когда необходимо защитить инф от изменения и копию не создавать в стеке. Указываются также как значения, перед именем – CONST.

ПАРАМЕТРЫ БЕЗ ТИПА в этом случае факт. параметр может быть объектом любого типа, ответственность за искажение такого параметра лежит на программисте. При входе в подпрограмму параметр без типа типа не имеет. При входе в ПП такой параметр необходимо преобразовать к конкретному типу.

Начиная с версии ТР7.0 в качестве параметров-переменных можно использовать массивы и строки открытого типа, без указания размеров. Массив дожжен быть одного типа, в этом случае фактический размер массива или строки определяется с помощью функции HIGH. Открытый массив создается также, без указания типа индекса. Недостаток: создание копий.

Формальные параметры отделяются «; » (список однотипных параметров м.б. перечислен через «,»). Формальны пар-ры нельзя описывать в раздел описания процедуры. Фактические пар-ры в списке отделяются друг от друга «,». Количество, типы и порядок следование форм. и факт. пар-ров должны совпадать.

При обращении к подпрограмме факт пар замещают формальные. В результате выполнения подпрограммы изменяются факт параметры.

Формальные параметры:

-указываются в заголовке подпрограммы в момент описания;

-указывают какие должны быть факт параметры;

-служат для связи подпрограммы с основной программой;

-определяют класс решаемых задач по данному алгоритму;

118) Формальные и фактические параметры. Их использование при работе с ПП. Определение глобальных и локальных параметров

Формальные параметры отделяются «; » (список однотипных параметров м.б. перечислен через «,»). Формальны пар-ры нельзя описывать в раздел описания процедуры. Фактические пар-ры в списке отделяются друг от друга «,». Кол-во, типы и порядок следование форм. и факт. пар-ров должны совпадать. Можно выделить 2 основных класса форм пар :

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

Формальные параметры:

-указываются в заголовке подпрограммы в момент описания;

-указывают какие д.б. факт параметры;

-служат для связи подпр-мы с основной прог-мой;

-определяют класс решаемых задач по данному алгоритму;

Форм пар-ры задаются в заголовке подпрограммы в виде списка, разбитого на группы. Группы м/у собой разделяются «;». В группу включаются форм пар-ры одного типа и одной категории.

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

119) Структурированные типы данных: тип-массив и его разновидности в TP 7.0. Работа с массивами в программах.

Массив объединяет эл-ты одного типа данных. Массивы бывают одномерными и многомерными. Размер массива ограничивается только объёмом рабочей памяти. Массивы - наиболее часто применяемый тип данных при обработке большого кол-ва инф, различного рода статистических данных и т.д. Это объясняется не столько удобством хранения инф в памяти компьютера в виде массива, сколько возможностью легко производить различного рода обработку массивов. VAR имя_массива: ARRAY[нач_инд..кон_инд] OF тип данных; Тип элементов, составляющих массив, может быть любым. Тип индексов эл-тов массива может быть только простым, хотя наиболее часто в качестве индексов эл-тов массива применяют целые числа. В отличие от стандартных переменных массивы не могут обрабатываться целиком. Но можно получить доступ к каждому элементу-ячейке

массива. Это выполняется путём указания значения индекса в квадратных скобках. например mas[2]:=34;

120) Условные операторы. Алгоритмическая реализация. Описание, примеры использования в программе

Реализует алгоритмическую структуру ветвления и изменяет порядок выполнения операторов в зависимости от выполнения некоторого условия.

If A then B else С – полное ветвление; If A then B - укороченное ветвление. Где А некоторое логическое выражение, истинность кот проверяется, В – один оператор, кот вып-ся если А-tru, С – один оператор, кот вып-ся если А-false.

a:=2; b:=8;

if a>b then writeln(‘a больше b‘)

else writeln(‘a меньше b’);

121) Подпрограммы – процедуры, описание, месторасположение в основной программе, пример использования функции в основной программе в TP 7.0.

ПОДПРОГРАММЫ

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

В виде подпрограммы оформляются логически завершенные части программы

ПОДПРОГРАММА-это фрагмент кода программы, к которому можно обратиться по имени

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

В Pascal две разновидности подпрограмм:

-процедуры

-функции

Описание подпрограмм осуществляется в разделе процедур и функций (описания)

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

Структура программы аналогична структуре основной программы.

ПРОЦЕДУРА - предназначены для выполнения каких-либо действий

Описание: Procedure<имя>(<список формальных параметров>)

раздел объявлений

begin

end

122) Операторы цикла в TP 7.0. Алгоритмическая реализация. Описание, примеры использования в программе.

Цикл –это многократное повторение одного участка программы(более 1 раза).

В организации цикла можно выделить следующие этапы:

1. Подготовка или инициализация цикла.(И)

2. Выполнение вычислений цикла (тело цикла)(Т)

3. Модификация параметров (М)

4. Проверка условия окончания цикла(У).

В TP 7.0. существует 3 оператора цикла: цикла с параметром (цикл FOR); оператор цикла с предусловием (цикл WHILE) и оператор цикла с постусловием (цикл REPEAT).

Оператор цикла с параметром (цикл FOR)

Этот цикл организует выполнение 1-го оператора заранее известное число раз

Оператор цикла с параметром имеет следующую структуру:

заголовок цикла - for <параметр>:=<начальное значение> to <конечное значение> do

тело цикла - <оператор>;

Этот оператор используется, когда число повторений заранее известно.

Параметр цикла – переменная порядкового типа, Начальное и конечное значения –выражения определяющие начальное и конечное значение параметра цикла.

Алгоритм работы:

1.Вычисляется и запоминается начальное и конечное значение параметра цикла

2. Параметру цикла присваивается начальное значение

3. Проверяется условие : сравнивается начальное значение с конечным, если оно больше то выход из цикла , если меньше либо равно то

4.выполняется тело цикла, осуществляется модификация параметра цикла на 1 увеличивается, если TO и на 1 уменьшается , если DownTo

Если тело цикла состоит из нескольких операторов, то организуется составной оператор begin..end;

Пример: Вычислить и вывести на экран 100 значений функции y=sin x. Начальное значение x=0; x изменяется с заданным шагом H.

Var x,y,H: real; i: integer; begin x:=0; H:=0,1; for i:= 1 to 100 do

begin y:=sin(x); writeln(‘y = ’, y); x:=x+H; end; end.

Таким образом, если необходимо повторить заданное кол-во раз не одну команду, а последовательность команд, то эта последовательность заключается в так называемые операторные скобки begin..end; . Если после слова do нет слова begin, то система считает телом цикла только одну команду, записанную после слова do. Если после слова do есть слово begin, то система считает телом цикла все команды, записанные м/у словами begin и end. А работает оператор цикла и в том и в другом случаях одинаково: тело цикла повторяется столько раз, сколько раз меняет свое значение параметр цикла от начального до конечного включительно с шагом 1.

Второй вариант оператора FOR:

заголовок цикла - for <параметр>:=<начальное значение> downto <конечное значение> do

тело цикла - <оператор>;

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

Пример: отсчет при запуске ракеты.

uses crt; var i: integer; begin for i:= 9 downto 1 do begin write(#8,i); delay(2000); end; write(#8,’Пуск’); end.

Оператор цикла с предусловием (цикл WHILE). Организует выполнение одного оператора заранее неизвестное число раз. Выход из цикла осуществляется, если некоторое логическое выражение окажется ложным

Структура оператора:

заголовок цикла - while <условие> do

тело цикла - <оператор>; (при условии истинном выполняется оператор)

Условие – логическое выражение, определяющее момент окончания циклических вычислений (цикл выполняется, пока условие истинно). Проверка условия производится перед каждым выполнением тела цикла. Если условие ложно сразу, тело цикла не выполняется ни разу.

Обычно в теле цикла требуется выполнить несколько операторов, поэтому используется составной оператор begin…end.

Пример:

var x:integer; Begin x:=4; while x>0 do begin x:=x-2; writeln(x); end; End.

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

Пример 1: while y<0 do writeln (y);

бесконечные циклы (в примере1 – если y:=-1;)

Пример 2: while true do begin…end;

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

Структура оператора:

repeat < операторы > until < условие >; (операторы повторяются до тех пор, пока не выполнится условие)

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

Под телом цикла понимается последовательность операторов между словами repeat и until. Операторов может быть один и более. В любом случае операторные скобки begin…end не требуются.

Пример:

var i:integer; Begin i:=4; repeat i:=i-1; writeln(i); until i<0; {выполнится 4 раза: i=3,2,1,0} End.

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

Пример 1: repeat … until false; бесконечный цикл

Пример 2: repeat until keypressed; цикл до нажатия любой клавиши

keypressed – стандартная логическая функция, принимает значение true, если была нажата клавиша.

Основные отличия операторов цикла:

1. Цикл FOR исп-ся, когда число повторений заранее известно, циклы WHILE и REPEAT – когда неизвестно.

2. В цикле FOR параметр цикла изменяется с шагом 1, в циклах WHILE и REPEAT необходимо изменять переменные, входящие в условие.

3. В циклах FOR и WHILE несколько операторов объединяются операторными скобками begin…end, в цикле REPEAT это не требуется.

4. В циклах FOR и WHILE проверка условия выполняется перед очередным выполнением тела цикла, в цикле REPEAT – после выполнения тела цикла.

Вложенные циклы

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

Примеры вложенного цикла For:

var a,b:integer; begin for i:= 1 to 2 do for j:= 1 to 3 do writeln(i, ‘ ’, j);{выполнится 6 раз} end.

Правило выполнения:

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

123) Подпрограммы – функции, описание, месторасположение в основной программе, пример использования функции в основной программе в TP 7.0.

ПОДПРОГРАММЫ

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

В виде подпрограммы оформляются логически завершенные части программы

ПОДПРОГРАММА-это фрагмент кода программы, к которому можно обратиться по имени

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

В Pascal две разновидности подпрограмм:

-процедуры

-функции

Описание подпрограмм осуществляется в разделе процедур и функций (описания)

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

Структура программы аналогична структуре основной программы.

ФУНКЦИЯ-вычисление какого-либо значения. Единственное значение типа: любого порядкового типа, вещественного,Boolean,String или указатель тогда используется подпрограмма функция

Синтаксис

function<имя>(<список формальных параметров>):<тип результата>

<раздел объявлений>

begin

<имя пп>:=<результат>;

end;

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

124) Модуль (блок, UNIT) – Составляющие части модуля. Их характеристика.

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

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

2. Интерфейсная часть. {описания видимых объектов}

3. Реализационная часть. {описания скрытых объектов}

4. Инициализационная часть.

Заголовок модуля состоит из зарезервированного слова UNIT после которого записывается имя модуля. Имя модуля, это обычный идентификатор, к которому добавляется ещё одно требование: совпадение имени модуля с именем файла в котором он хранится. Поэтому имя модуля не может состоять более чем из восьми символов (ограничение MS-DOS).

Интерфейсная часть В интерфейсной части описываются (декларируются) все константы, типы данных и переменных, процедуры и ф-ии, доступные в этом модуле для использования внешними программами. Интерфейсная часть начинается зарезервированным словом INTERFACE.

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

- раздел объявления констант;

- раздел объявления типов;

- раздел объявления переменных;

- раздел объявления процедур и функций.

В разделе объявления процедур и функций указываются лишь заголовки подпрограмм. Сами подпрограммы приводятся в реализационной части.

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

Реализационная часть начинается служебным словом IMPLEMENTATION.

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

Далее могут быть:

- раздел объявления меток;

- раздел объявления локальных констант;

- раздел объявления локальных типов;

- раздел объявления локальных переменных;

- раздел объявления процедур и функций.

При описании подпрограмм допустимо использовать сокращённые заголовки (без указания параметров подпрограммы).

Определённые в реализационной части типы данных и структуры данных недоступны извне.

Инициализационная часть

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

Begin Assign(f,'data.dat'); end.

Инициализационная часть выполняется один раз, во время старта программы. Если инициализация модуля не нужна, то в разделе инициализации помещается лишь end.

125) Формальные и фактические параметры. Способы передачи параметров

Формальные пар-ры отделяются «; » (список однотипных параметров м.б. перечислен через «,»). Формальны пар-ры нельзя описывать в раздел описания процедуры. Фактические пар-ры в списке отделяются друг от друга «,». Кол-во, типы и порядок следование формальных и фактических пар-ров должны совпадать. Можно выделить 2 основных класса формальных параметров:

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

Формальные параметры:

-указываются в заголовке подпрограммы в момент описания;

-указывают какие должны быть фактические параметры;

-служат для связи подпрограммы с основной программой;

-определяют класс решаемых задач по данному алгоритму;

Формальные параметры задаются в заголовке подпр-мы в виде списка, разбитого на группы. Группы м/у собой разделяются «;». В группу включаются формальные параметры одного типа и одной категории. Категории (СПОСОБЫ ПЕРЕДАЧИ):

1.пар-ры-значения

2.пар-ры-переменные

3.пар-ры-константы

4.пар-ры-процедуры и функции

5.пар-ры без типа

ПАРАМЕТРЫ-ЗНАЧЕНИЯ указываются в заголовке подпрограмм своим именем и через «:» типом. При исполнении такого способа передачи значение параметра может изменяться внутри подпрограммы, но при выходе восстанавливается на исходное. В качестве фактического параметра может выступать переменная или выражение, совместимого для присваивания типа.

ПАРАМЕТРЫ-ПЕРЕМЕННЫЕ при передаче в подпрограмму фактически через стек передаются их адреса, а не значения, что позволяет подпрограмме изменять содержание этих параметров. Объявляются также как параметры - значения, но перед именем указывается VAR. Преимущества: быстродействие и экономия памяти (нет копий в стеке); Недостаток: возможность случайного изменения исходного значения.

ПАРАМЕТРЫ-КОНСТАНТЫ исп-ся в том случае, когда необходимо защитить инф от изменения и копию не создавать в стеке. Указываются также как значения, перед именем – CONST.

ПАРАМЕТРЫ БЕЗ ТИПА в этом случае факт параметр может быть объектом любого типа, ответственность за искажение такого параметра лежит на программисте. При входе в подпрограмму параметр без типа типа не имеет. При входе в подпрограмму такой параметр необходимо преобразовать к конкретному типу.

Начиная с версии ТР7.0 в качестве параметров-переменных можно использовать массивы и строки открытого типа, без указания размеров. Массив должен быть одного типа, в этом случае фактический размер массива или строки определяется с помощью функции HIGH. Открытый массив создается также, без указания типа индекса. Недостаток: создание копий.

ПАРАМЕТРЫ-ПРОЦЕДУРЫ и ФУНКЦИИ фактически этот параметр передается как значение, в качестве параметра фактического параметра используется соответствующая процедура или функция. Для этих параметров должны выполняться те же правила, что и для других переменных процедурного типа:

1.компиляция с ключом или директива FAR;

2.не должны быть стандартными;

3.не должны быть описаны внутри другой процедуры или функции;

4.не должны быть объявлены как INLINE и INTERRUPT.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]