
- •1. Постановка задачи:
- •Структура программы на Паскале
- •Классификация типов
- •Стандартные типы данных Логические типы Внутреннее представление
- •Операции
- •Целые типы Внутреннее представление
- •Операции
- •Стандартные функции и процедуры
- •Вещественные типы Внутреннее представление
- •Операции
- •Стандартные функции
- •Символьный тип
- •Порядковые типы
- •Алфавит языка
- •6.2. Идентификаторы
- •6.3. Константы
- •6.4. Выражения
- •6.5. Операции
- •Составной оператор
- •Оператор if выполняется так:
- •Оператор if может иметь сокращенную форму. Её синтаксис:
- •10.1. Процедура
- •10.2. Функция
- •10.3. Формальные и фактические параметры
- •10.3.1. Параметры-значения
- •Динамическая память
- •1. Объявление указателей
- •2. Выделение и освобождение динамической памяти
- •3. Процедуры и функции для работы с динамической памятью
- •Работа с файлами на языке программирования pascal. Типы файлов, команды для работы с файлами, типизированные, нетипизированные и текстовые файлы
- •Работа с файлами в языке Pascal. Файлы прямого доступа.
- •16. Графические возможности языка. Модуль Graph.
- •6.1. Массив
- •6.2. Строка типа string
- •6.3. Asciiz-строка
- •6.4. Запись
- •6.5. Множество
- •6.6. Файл
- •3.1. Алгоритмы обработки массивов
- •3.2. Ввод-вывод элементов одномерного массива
- •3.3. Вычисление суммы элементов массива
- •3.4. Вычисление произведения элементов массива
- •3.5. Поиска максимального элемента в массиве и его номера
- •3.6. Сортировка элементов в массиве
- •3.6.1. Сортировка методом "пузырька"
- •3.6.2. Сортировка выбором
- •3.6.3. Сортировка вставкой
- •3.7. Удаление элемента из массива
- •3.8. Примеры алгоритмов обработки массивов
- •20.Алгоритмы обработки массивов: алгоритмы на двумерных массивах.
- •21.Динамические структуры данных: очередь.
- •Занесение элемента в очередь
- •Извлечение элемента из очереди
- •Занесение элемента в стек
- •Извлечение элемента из стека
- •Абстрактные типы данных
- •Объекты и классы
- •Базовые принципы ооп
- •Пакетирование (инкапсуляция)
- •Наследование
- •Полиморфизм
- •Описание объектного типа
- •Иерархия типов (наследование)
- •Полиморфизм и виртуальные методы
- •Статические методы
- •Виртуальные методы
10.2. Функция
Подпрограмма-функция предназначена для вычисления какого-либо параметра, у этой
подпрограммы два основных отличия от процедуры.
- Первое отличие функции в ее заголовке. Он состоит из слова function, за которым следует
имя функции, далее в круглых скобках - список формальных параметров (о формальных
параметрах см. п. 10.3), затем через двоеточие записывается тип функции - тип
возвращаемого параметра. Функция может возвращать параметры следующих типов: любого
порядкового, любого вещественного, стандартного типа string, любого указателя, в том
числе и типа PChar.
- Второе отличие заключается в том, что в теле функции хотя бы раз имени функции должно
быть присвоено значение.
Пример. Функция вычисления факториала числа N.
function Factorial(N: Byte): Longint;
var
Fact: Longint;
i: Byte;
begin
Fact := N;
for i := N-l downto 2 do
Fact := Fact * i;
Factorial := Fact
end;
Если имя функции внутри ее описания используется в правой части оператора присваивания,
то это означает, что функция вызывает себя рекурсивно (см. п. 10.6).
Для вызова функции из основной программы или другой подпрограммы следует в выражении, где
необходимо использовать значение функции, указать имя функции со списком фактических
параметров, которые должны совпадать по количеству и типам с формальными параметрами
функции, например:
Part:=Sqr(T)/Factorial(i) ;
В этом операторе:
Sqr(T) - вызов стандартной функции возведения в квадрат с фактическим параметром Т;
Factorial (i) - вызов функции, вычисляющей факториал с фактическим параметром i.
10.3. Формальные и фактические параметры
Формальные параметры подпрограммы указывают, с какими параметрами следует обращаться к
этой подпрограмме (количество параметров, их последовательность, типы). Они задаются в
заголовке подпрограммы в виде списка формальных параметров, разбитого на группы,
разделенные точками с запятыми. В группу формальных параметров включаются однотипные
параметры одной категории.
Все формальные параметры можно разбить на четыре категории:
- параметры-значения (значения этих параметров основной программы подпрограммой не
меняются);
- параметры-переменные (значения этих параметров основной программы подпрограмма может
изменить);
- параметры-константы (используются только в версии 7.0);
- параметры-процедуры и параметры-функции (т. е. процедурного типа).
Для каждого формального параметра следует указать имя и, как правило, тип, а в случае
параметра-переменной или параметра-константы - его категорию. Имена параметров могут быть
любыми, в том числе и совпадать с именами объектов программы. Необходимо лишь помнить, что
в этом случае параметр основной программы с таким именем становится недоступным для
непосредственного использования подпрограммой. Тип формального параметра может быть
практически любым, однако в заголовке подпрограммы нельзя вводить новый тип. Например,
нельзя писать:
function Max(A: array[1..100] of Real): Real;
Чтобы правильно записать этот заголовок, следует в основной программе ввести тип-массив,
а затем использовать его в заголовке:
type tArr = array[1..100] of Real;
function Max(A: tArr): Real;
При обращении к подпрограмме формальные параметры заменяются на соответствующие
фактические вызывающей программы или подпрограммы.