- •Алгоритм. Свойства алгоритма.
- •2. Алфавит языка Pascal.
- •3. Структура Pascal-программы.
- •4. Идентификаторы. Переменные.
- •5. Константы. Виды констант.
- •6. Типы данных языка Pascal
- •7. Порядковые типы данных и стандартные подпрограммы для их обработки
- •8. Операции. Арифметические операции. Арифметические выражения
- •9. Стандартные арифметические функции. Порядок вычислений.
- •10. Преобразование типов данных. Стандартные функции преобразования типов данных.
- •11. Ввод с консоли. Вывод на консоль. Форматированный вывод.
- •12. Комментарии. Простейшие операторы языка Pascal.
- •13. Условный оператор if.
- •14. Оператор выбора case.
- •15. Метки и безусловный переход. Операторы break и continue.
- •16. Оператор циклов for-to.
- •17. Оператор циклов for-downto.
- •20. Массивы. Описание переменных размерностей. Обращение к компонентам массива.
- •21. Многомерные массивы. Задание массива константой.
- •22. Символы. Символ-константа. Операции с символами. Стандартные функции для работы с символами.
- •23. Строки. Строка-константа. Операции со строками. Стандартные функции и процедуры обработки строк.
- •24. Множества. Множество-константа. Операции со множествами.
- •25. Функции. Объявление функции. Описание функции. Возвращаемые значения. Вызов функции.
- •26. Функции. Способы постановки аргументов.
- •27. Процедуры. Объявление процедуры. Описание процедуры. Возвращаемое значение. Вызов процедуры.
- •28. Процедуры. Способы постановки аргументов.
- •29. Записи. Описание. Задание записей константой. Доступ к полям записи.
- •30. Записи. Оператор with.
- •31. Файлы. Разновидность файлов. Описание файлов.
- •32. Текстовые файлы. Назначение текстовых файлов. Открытие и закрытие файла.
- •33. Текстовые файлы. Назначение текстовых файлов. Запись в файл. Считывание из файла.
- •34. Типизированные файлы. Описание типизированных файлов. Назначение типизированных файлов. Открытие и закрытие файлов.
- •35. Типизированные файлы. Назначение типизированных файлов. Запись в файл. Считывание из файла. Поиск в типизированном файле.
- •36. Нетипизированные файлы. Описание нетипизированных файлов. Назначение нетипизированных файлов. Открытие и закрытие файлов.
- •37. Нетипизированные файлы. Назначение нетипизированных файлов. Запись в файл. Считывание из файла. Поиск в нетипизированном файле.
- •38. Модульность программ. Стандартные модули языка Pascal. Подключение модулей.
- •39. Структура модуля. Секция внешних связей. Секция реализации. Секция инициализации.
- •40. Взаимодействие модулей. Компиляция модулей.
25. Функции. Объявление функции. Описание функции. Возвращаемые значения. Вызов функции.
В языке Pascal имеется два вида подпрограмм: процедуры и функции. Функции объявляются следующим образом:
function <имя_функции> [(<список_параметров>)]:<тип_результата>;
Описание функции должно идти после ее объявления.
[ function <имя_функции> <описание_функции>;]
begin {начало тела подпрограммы}
<операторы>
end; (* конец тела подпрограммы *)
Если объявление подпрограммы было оторвано от ее описания, то описание начинается дополнительной строкой с указанием только имени подпрограммы:
function <имя_подпрограммы>;
Любая функция, завершив свою работу, должна вернуть основной программе (или другой вызвавшей ее подпрограмме) ровно одно значение, причем его тип нужно явным образом указать уже при объявлении функции.
Для возвращения результата применяется специальная "переменная", имеющая имя, совпадающее с именем самой функции. Оператор присваивания значения этой "переменной" обязательно должен встречаться в теле функции хотя бы один раз.
При вызове в функцию передаются фактические параметры или аргументы (в круглых скобках после имени подпрограммы, разделенные запятыми):
<имя_подпрограммы>(<список_аргументов>)
function S(a,b:integer):integer;l
begin
if a>b then S:=a
else S:=и
end;
вызов:
Max:=S(10,5) {Max:=10}
26. Функции. Способы постановки аргументов.
1.<пустой> (параметр-значение)
В списке параметров подпрограммы перед параметром-значением служебное слово отсутствует. Например, функция func3 имеет три параметра-значения: function func3(x:real; k:integer; flag:boolean):real;
При вызове подпрограммы параметру-значению может соответствовать аргумент, являющийся выражением, переменной или константой
В области памяти, выделяемой для работы вызываемой подпрограммы, создается переменная с именем <имя_подпрограммы>.<имя_параметра>, и в эту переменную записывается значение переданного в соответствующий параметр аргумента. Дальнейшие действия, производимые подпрограммой, выполняются именно над этой новой переменной. Значение же входного аргумента не затрагивается. Следовательно, после окончания работы подпрограммы, когда весь ее временный контекст будет уничтожен, значение аргумента останется точно таким же, каким оно было на момент вызова подпрограммы.
2. var (параметр-переменная) В списке параметров подпрограммы перед параметром-переменной ставится служебное слово var. При вызове подпрограммы параметру-переменной может соответствовать только аргумент-переменная; константы и выражения запрещены. В отличие от параметра-значения, для параметра-переменной не создается копии при вызове подпрограммы. Вместо этого в работе подпрограммы участвует та самая переменная, которая послужила аргументом. Понятно, что если ее значение изменится в процессе работы подпрограммы, то это изменение сохранится и после того, как будет уничтожен контекст подпрограммы. Понятно опять же и ограничение на аргументы, которые должны соответствовать параметрам-переменным: ни константа, ни выражение не смогут сохранить изменения, внесенные в процессе работы подпрограммы.
3. const (параметр-константа)
В списке параметров подпрограммы перед параметром-константой ставится служебное слово const. При вызове подпрограммы параметру-константе может соответствовать аргумент, являющийся выражением, переменной или константой. Во время выполнения подпрограммы соответствующая переменная считается обычной константой.
