Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Algoritmizatsia_i_programmirovanie_ShPOR.doc
Скачиваний:
6
Добавлен:
26.04.2019
Размер:
376.83 Кб
Скачать

17.Процедуры без параметров в языке Pascal.

В практике программирования часто встречаются ситуации, когда по ходу выполнения программы приходится производить одни и те же вычисления или действия. Чтобы исключить повторение одинаковых записей и сделать тем самым программу проще и понятнее, можно выделить эти повторяющиеся фрагменты в самостоятельную часть программы, которая может быть использована многократно по мере необходимости. Такая автономная часть программы, реализующая определённый алгоритм и допускающая обращение к ней из различных частей программы, называется подпрограммой. Использование подпрограмм позволяет реализовать один из самых прогрессивных методов программирования - структурное программирование. Язык программирования Turbo Pascal 7.0, даже в сравнении с другими промышленными системами программирования, обладает очень мощными средствами для работы с подпрограммами.

Единственным отличием процедуры без параметров от Pascal-программы состоит в названии заголовка, которое начинается не служебным словом Program, а служебным словом Procedure. Наличие заголовка процедуры обязательно, в отличии от наличия заголовка программы, который может быть опущен. Кроме того любая подпрограмма заканчивается служебным словом End и точкой с запятой, в отличии от End с точкой в Pascal-программе.

Вызов процедур без параметров.

Вызов процедуры без параметров осуществляется по имени данной процедуры в теле программы. Имя процедуры воспринимается как оператор. При выполнении этого оператора выполняется вся подпрограмма.

Преимущества применения подпрограмм.

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

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

  3. Написание больших программ можно разделить между несколькими програмистами одновременно, объединив после этого подпрограммы, написанные ими, в одну программу.

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

18.Функции в языке Pascal.

Функции - это зависимость одной величины от нескольких, у которых есть какие-то исходные данные. Функция описывается следующим образом:

  1.  Function имя (параметры): Тип результата;

  2.  раздел описаний

  3.  begin

  4.  команды

  5.  имя функции:=выражение

  6.  end;

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

Затем идёт слово begin - начало программы. После идут исполняемые команды. Дальше имени функции присваиваем конечное выражение, то есть возвращаем результат функции, чтобы в дальнейшем можно было бы какой-то переменной присвоить результат выполнения функции. И в конце идёт слово end c точкой запятой.

Типы результата:

Результат функции может быть числом, символом, строкой, логическим выражением. Значение функции не может быть массивом.

Если параметры функции одинаковые, то они указываются через запятую, если разные, то через точку с запятой.

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

Преимущества функции:

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

2. - Сокращение объёма исходного текста и исполняемого файла.

3. - Удобство отладки - проще отладить маленький кусочек программы, который решает небольшую часть задачи, чем всю программу.

Недостатки функции:

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

2. - Требуется внимательное отношение к использованию переменных программы внутри функции.

Локальные (внутренние) переменные функции:

1. - Создаются в специальной области памяти (стеке) только на время работы функции. Из основной программы недоступны.

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

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

Параметры - Значения функции:

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

Параметры - Переменные

1. - Функция может получать на вход переменную, выражение или значение соответствующего (или совместимого) типа. (Никаких выражений и явного указания значений)

2. - Функция работает непосредственно с данными, может изменять их.

3. - Так как копия данных не создаётся, то для экономии времени и памяти рекомендуется объёмные параметры (например, массив) делать параметрами-переменными.

Параметр переменная отличается от параметра значение тем, что перед параметром переменной ставится слово var.

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