![](/user_photo/2706_HbeT2.jpg)
- •1. Алгоритмизация
- •1.1.Функциональная схема эвм.
- •1.2. Этапы решения задач на эвм.
- •1.3. Язык блок-схем для представления алгоритмов
- •1.4. Базовые структуры алгоритмов
- •1.5. Конструирование сложных алгоритмов
- •2. От алгоритма к программе
- •2.1. Концепция данных в Турбо-Паскале
- •2.2. Структура Паскаль - программы
- •2.3. Комментарии
- •2.4 Операторы
- •2.4.1 Оператор присваивания
- •2.4.2. Составной оператор
- •2.4.3. Логические выражения
- •2.4.4. Условный оператор
- •2.4.5. Оператор цикла с параметром
- •2.4.6. Оператор цикла с постусловием
- •2.4.7. Оператор цикла с предусловием
- •2.5. Производные типы
- •2.5.1 Перечислимые типы
- •2.5.3. Регулярные типы (массивы)
- •2.5.4. Многомерные массивы
- •2.5.5.Комбинированные типы (записи)
- •2.6. Подпрограммы
- •2.6.1. Функции
- •2.6.2. Процедуры
- •2.6.3. Формальные и фактические параметры
- •2.6.4. Параметры - значения
- •2.6.5. Параметры - переменные
- •2.6.6. Параметр - массив
- •2.6.7. Параметры подпрограмм без указания типа
- •2.6.8. Параметры - процедуры и параметры - функции
- •2.6.9 Локальные и глобальные переменные
- •3. Задания
- •3.1. Построение таблицы значений функции.
- •3.2 Вычисление сумм и произведений.
- •3.3. Вычисление функции разложением в ряд
- •3.4 Обработка одномерных массивов.
- •3.5 Проверка попадания точки в заданную область
- •3.6. Нахождение экстремумов последовательностей
- •3.7.Обработка простых двумерных массивов.
- •3.8 Обработка двумерных массивов
- •3.9. Разработка алгоритмов и программ нисходящим способом
- •3.10.Задачи на обработку символьных данных сложной структуры
- •Создать исходный типизированный файл.
- •Результаты записать в текстовый файл.
- •3.11 Задачи с использованием имени массива как параметра функции
- •3.12. Задача на использование формальных массивов в процедурах
- •3.13. Задачи на разработку программы с использованием созданной по условию процедуры
- •3.14.Задачи на использование функций в качестве параметров других функций.
- •3.15. Разработка многомодульных программ.
2.6.1. Функции
Подпрограмма - функция предназначена для вычисления одного результата. Описание функции состоит из заголовка, который начинается словом Function, за ним следует имя функции, далее в круглых скобках помещается список формальных параметров и затем через двоеточие указывается тип результата функции. Имя функции является носителем результата, т.е. в процессе выполнения ему будет присвоено значение результата. Список формальных параметров состоит из имен, за которыми через двоеточие следует указание типа параметра. Причем при задании типа формального параметра и типа результата функции можно использовать только имена типов.
За заголовком функции следует блок - разделы описаний, далее раздел операторов, составляющих тело функции, и завершается описание функции словом End.
Рассмотрим пример функции, вычисляющей значение факториала числа N. Назовем функцию Fact. У нее будет один целочисленный входной параметр.
Function Fact( n: integer ): integer;
Var i, k: integer;
Begin
k := 1;
For i:= 1 to n Do
k := k * i;
Fact := k
End;
Все переменные в этой функции описаны один раз - или как формальные параметры, или в разделе переменных функционального блока. Два раза описывать одно и то же имя нельзя.
Для вызова функции из основной программы или другой подпрограммы следует в выражении, где требуется использовать результат функции, указать имя функции и в скобках список фактических параметров. При этом фактические параметры должны соответствовать формальным - по количеству, порядку и типам.
Рассмотрим следующий пример.
Пусть надо подсчитать число сочетаний из m элементов по n, т.е.
Используя функцию подсчета факториала, это можно сделать одним выражением:
Cmn := Fact(m) / ( Fact(n) * Fact(m-n))
В этом выражении три обращения к функции Fact с разными параметрами.
2.6.2. Процедуры
Процедуры это подпрограммы, которые в отличие от функций могут иметь несколько результатов. Значения результатов передается через параметры. Иными словами среди параметров процедуры, есть входные и выходные параметры. В списке формальных параметров перед выходными параметрами должно стоять слово Var.
Структура описания процедуры совпадает со структурой функции. Отличие заключается в заголовке. Он начинается словом Procedure, за ним следует имя процедуры, затем список формальных параметров. Имя процедуры не несет никакой смысловой нагрузки и нужно только для идентификации процедуры, поэтому после списка формальных параметров не надо указывать тип результата. После заголовка, как и при описании функции, следует процедурный блок.
Пример заголовка процедуры:
Procedure ABC( x: real; y,z: integer; Var w: real; Var v: integer);
Вызов процедуры это один оператор, состоящий из имени процедуры и списка фактических параметров в круглых скобках. После выполнения такого оператора, все выходные параметры процедуры принимают вычисленные в процедуре значения.