Функции в паскале – Pascal Процедуры, Функции и Рекурсии – Основы программирования для чайников


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

В данном уроке мы рассмотрим такие вопросы , как » как объявить функцию в паскале ? , какие встроеные функции и процедуры есть в паскаль ? Как отличить функцию от процедуры ?.
Многие программы на языке паскаль занимают достаточно много места на рабочем экране. И из-за этого достаточно сложно найти какой-либо элемент даже в собственной программе. Описание переменных в паскаль можно найти здесь.

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

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

Все процедуры и функции объявляются после блока Var ( Блок , в котором объявляются глобальные переменные ). Вы возможно задаетесь вопросом о том , что такое глобальные переменные ?

Глобальные переменные — это переменные , которые существуют в любом участке программе ( далее будет яснее ).

Давайте рассмотрим структуры подпрограмм.

Процедуры в паскале :

Структура процедуры в паскале выглядит так :

Читать  Оформление текста на экране в Паскаль – Работа с текстом в Pascal

Как видно по картинке выше , вначале идет слово procedure. Далее идет имя процедуры , в нашем случае процедура называется «А». После имени процедуры идет описание получаемых переменных. ( Пример : A(n:integer) или A(n:integer;t:string) )

Проще говоря , процедура получает переменную , значение которой мы заносим в целочисленную переменную n ( локальная переменная ). Если мы получаем несколько переменных разных типов , то они перечисляются через точку с запятой ; Блок описания получаемых переменных является необязательным.

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

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

Рассмотрим решение такой задачи : Требуется заполнить массив A десятью случайными числами от -10 до 10 , а потом вывести их на экран. Решение выглядит так :

Как видно из кода программы , в ней существуют 2 процедуры readA и writeA , которые отвечают за наполнение и вывод массива соответственно.

Читать  Циклы в паскале | For, While, Repeat | Вложенные циклы Pascal

Также можно рассмотреть подобную задачу : Требуется ввести число и вывести его квадрат на экран. Решение выглядит так :

Здесь процедура kv получает целочисленную переменную n , значение которой заносится в локальную , целочисленную переменную переменную a.

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


создает процедуру Trim, вызов которой в любом месте программы очистит строку str от лишних пробелов. Чтобы вызвать эту процедуру, достаточно написать

в нужном месте.

Функции в паскале :

Структура функции совсем немного отличается от структуры процедуры.

Вы , возможно , уже заметили различие. Главное запомнить , что любая функция должна возвращать какой-либо результат в конце своей работы ( в нашем случае функция возвращает целочисленное значение integer ).

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

В остальном же , структура функции аналогична процедуре.

Решим задачу : Нужно ввести число и вывести его корень на экран.

Заметьте , что корень может быть нецелым числом , поэтому функция возвращает вещественный результат real.

Читать  Поиск Максимального Элемента и Минимального Элемента в Массиве Паскаль

Рекурсии :

Рекурсия — это ещё одна большая тема в pascal , которую мы разберем позже. Но стоит рассказать сейчас о том , что под рекурсией часто понимают использование подпрограммы в подпрограмме ( Например : процедуры в процедуре или функции в функции ).

Рассмотреть использование рекурсии можно на подобной задаче : Заполнить массив десятью случайными числами от -10 до 10 и найти первое отрицательное число ( вывести на экран номер отрицательного числа , если есть ).

В нашем случае процедура ser работает с определенными элементами массива A. Если элемент массива отрицательный , то выводим сообщение , а если нет , то переходим к этой процедуре ( передовая другой элемент ).

Читать  Тип char (символьный) в паскале

Понять это довольно трудно , ещё труднее пересказать. Однако практикуясь все будет понятнее.

[Всего голосов: 6    Средний: 4.2/5]