Menu Home

Бесплатная техническая библиотека для любителей и профессионалов Бесплатная техническая библиотека


Информатика и информационные технологии. Процедуры и функции (конспект лекций)

Конспекты лекций, шпаргалки

Справочник / Конспекты лекций, шпаргалки

Комментарии к статье Комментарии к статье

Оглавление (развернуть)

ЛЕКЦИЯ № 3. Процедуры и функции

1. Понятие вспомогательного алгоритма

Алгоритм решения задачи проектируется путем декомпозиции всей задачи в отдельные подзадачи. Обычно подзадачи реализуются в виде подпрограмм.

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

Подпрограмма в языках программирования - это последовательность операторов, которые определены и записаны только в одном месте программы, однако их можно вызвать для выполнения из одной или нескольких точек программы. Каждая подпрограмма определяется уникальным именем.

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

1) параметры-переменные;

2) параметры-константы;

3) параметры-значения;

4) параметры-процедуры и параметры-функции, т. е. параметры процедурного типа;

5) нетипизированные параметры-переменные.

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

Передача имен процедур и функций в качестве параметров

Во многих задачах, особенно в задачах вычислительной математики, необходимо передавать имена процедур и функций в качестве параметров. Для этого в TURBO PASCAL введен новый тип данных - процедурный, или функциональный, в зависимости от того, что описывается. (Описание процедурных и функциональных типов приводится в разделе описания типов.)

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

type

Proc = Procedure;

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

2. Процедуры в Pascal

Каждое описание процедуры содержит заголовок, за которым следует программный блок. Общий вид заголовка процедуры следующий:

Procedure <имя> [(<список формальных параметров>)];

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

3. Функции в Pascal

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

Function <имя > [(<список формальных параметров>)]: <тип возвращаемого результата >;

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

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

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

4. Опережающие описания и подключение подпрограмм. Директива

В программе может содержаться несколько подпрограмм, т. е. структура программы может быть усложнена. Однако эти подпрограммы могут располагаться на одном уровне вложенности, поэтому сначала должно идти описание подпрограммы, а затем обращение к ней, если только не используется специальное опережающее описание.

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

Опережающее описание и определяющее описание представляют собой полное описание процедуры. Процедура считается описанной с помощью опережающего описания.

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

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

Пример

1) {SE+} - эмулировать математический сопроцессор;

2) {SF+} -формировать дальний тип вызова процедур и функций;

3) {SN+} - использовать математический сопроцессор;

4) {SR+} - проверять выход за границы диапазонов.

Некоторые ключи компиляции могут содержать параметр, например:

{$1 имя файла} - включить в текст компилируемой программы названный файл.

Автор: Цветкова А.В.

<< Назад: Язык Pascal (Введение в язык Pascal. Стандартные процедуры и функции. Операторы языка Pascal)

>> Вперед: Подпрограммы (Параметры подпрограмм. Типы параметров подпрограмм. Строковый тип в Pascal. Процедуры и функции для переменных строкового типа. Записи. Множества)

Рекомендуем интересные статьи раздела Конспекты лекций, шпаргалки:

▪ Микробиология. Конспект лекций

▪ Риторика. Шпаргалка

▪ Финансы. Конспект лекций

Смотрите другие статьи раздела Конспекты лекций, шпаргалки.

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Мизофония может иметь выраженную генетическую основу 15.10.2026

Для большинства людей звук жевания, дыхания или сопения остается практически незаметной частью повседневной жизни. Однако у людей с мизофонией такие совершенно обычные звуки способны вызывать мгновенную и крайне сильную негативную реакцию. Причины этого состояния до сих пор изучены недостаточно, однако новое исследование указывает на важную роль наследственности. Полученные данные свидетельствуют о том, что предрасположенность к мизофонии может иметь глубокую генетическую основу. Исследованием занималась команда Медицинской школы Йельского университета, сосредоточившая внимание на семейной истории людей с этим расстройством. В отличие от ряда предыдущих работ, проводившихся преимущественно с помощью дистанционных опросов, на этот раз специалисты непосредственно обследовали 101 человека с мизофонией и членов их семей. Такой подход позволил исследователям оценить не только распространенность состояния среди родственников, но и возможные связи с другими особенностями психического здоро ...>>

Запись магнитных данных с помощью сверхбыстрых лазерных импульсов 15.10.2026

Системы хранения данных постоянно сталкиваются с необходимостью одновременно увеличивать скорость записи, плотность информации и энергоэффективность. Один из возможных путей решения этой задачи связан с использованием света для управления магнитными состояниями материала. Инженеры Калифорнийского университета в Сан-Диего разработали метод, в котором специально сформированные лазерные импульсы позволяют изменять направление намагниченности, открывая перспективу создания более быстрых и компактных магнитных устройств памяти. Главное отличие нового подхода заключается в том, что исследователи управляют не составом магнитного материала, а характеристиками самого лазерного излучения. Ультрабыстрый лазер концентрирует энергию на микроскопическом участке поверхности. Когда диаметр светового пятна становится меньше 1,36 мкм, специалистам удается переключать направление намагниченности независимо от спиральности света, то есть направления вращения его поляризации. Это позволяет отказаться от ...>>

Биокаталитический способ получения хиральных оксазолидинонов 14.10.2026

Химия все чаще обращается к биологическим молекулам, чтобы сделать синтез сложных веществ более точным и эффективным. Особенно важны такие технологии при создании соединений, у которых одинаковый химический состав может сопровождаться разным пространственным расположением атомов и, следовательно, различными свойствами. Исследователи из Калифорнийского технологического института и Университета Питтсбурга предложили новый биокаталитический подход, позволяющий получать хиральные оксазолидиноны непосредственно из простых неактивированных алкенов. В основе предложенного метода лежит последовательность из двух реакций - азиридинирования и последующего расширения цикла. Этот каскад запускается с помощью гемопротеина, который выполняет функцию катализатора и позволяет направлять химическое превращение в нужную сторону. В результате из относительно простого исходного соединения формируется более сложная циклическая структура с заданной пространственной конфигурацией. Особенно существенным ...>>

Случайная новость из Архива

Зеркальные спутники и их угрозы для астрономии и экологии 09.11.2025

Калифорнийский космический стартап Reflect Orbital, который планирует к 2030 году вывести на орбиту 4 000 зеркальных спутников, отражающих солнечный свет на Землю даже ночью. Главная цель - увеличить эффективность солнечных электростанций, обеспечивая непрерывное освещение в ночное время. Первый демонстрационный аппарат EARENDIL-1 с зеркалом площадью 334 м2 предполагается запустить в апреле 2026 года, а соответствующая заявка уже подана в Федеральную комиссию связи США (FCC).

Проект получил 1,25 млн долларов поддержки от ВВС США в рамках программы для малого бизнеса. Идея заключается в том, чтобы спутники создавали дополнительное освещение для энергетических систем, однако многие ученые выражают сомнения как в технической реализуемости, так и в потенциальном вреде для окружающей среды.

Астрономы, включая Майкла Брауна и Мэтью Кенворти, подсчитали, что отраженный свет будет примерно в 15 000 раз слабее дневного солнца, хотя и ярче полной Луны. Для того чтобы создать хотя бы 20% дневного освещения ночью, потребуется не менее 3000 спутников, что делает проект масштабным и потенциально опасным для научных наблюдений.

Научное сообщество выражает серьезную обеспокоенность. Зигфрид Эггл из Университета Иллинойса предупреждает, что даже незначительное увеличение яркости ночного неба способно сделать невозможным изучение тусклых астрономических объектов. "Это будет похоже на то, будто полная Луна светит каждую ночь. Для астрономии это катастрофа", - отмечает ученый.

Кроме того, экологические последствия могут оказаться значительными. Дэвид Смит из британской организации BugLife указывает, что искусственное освещение может нарушить естественные биоритмы животных, особенно насекомых и птиц, которые ориентируются по ночному свету. Нарушение цикла дня и ночи способно повлиять на их поведение, физиологию и процессы размножения.

В настоящее время заявка Reflect Orbital находится на рассмотрении в FCC, а ученые призывают регуляторов учитывать потенциальные риски для науки и экологии. Масштаб и возможное воздействие проекта на астрономию и экосистемы заставляют рассматривать его как потенциально разрушительный.

Другие интересные новости:

▪ Зафиксирован загадочный эффект воды

▪ Счастье от альтруизма недолговечно

▪ Скоростной метод опреснения морской воды

▪ Воспитание собаки похоже на воспитание ребенка

▪ Ученые обнаружили в метеорите алмазы с погибшей протопланеты

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта ВЧ усилители мощности. Подборка статей

▪ статья Бросить камень. Крылатое выражение

▪ статья Кто такой тукан? Подробный ответ

▪ статья Старший инженер-киномеханик. Должностная инструкция

▪ статья Индикатор влажности. Энциклопедия радиоэлектроники и электротехники

▪ статья Загадка стеклянного цилиндра. Секрет фокуса

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2026