- Введение в информатику (Информатика. Информация. Представление и обработка информации. Системы счисления. Представление чисел в ЭВМ. Формализованное понятие алгоритма)
- Язык Pascal (Введение в язык Pascal. Стандартные процедуры и функции. Операторы языка Pascal)
- Процедуры и функции (Понятие вспомогательного алгоритма. Процедуры в Pascal. Функции в Pascal. Опережающие описания и подключение подпрограмм. Директива)
- Подпрограммы (Параметры подпрограмм. Типы параметров подпрограмм. Строковый тип в Pascal. Процедуры и функции для переменных строкового типа. Записи. Множества)
- Файлы (Файлы. Операции с файлами. Модули. Виды модулей)
- Динамическая память (Ссылочный тип данных. Динамическая память. Динамические переменные. Работа с динамической памятью. Нетипизированные указатели)
- Абстрактные структуры данных (Абстрактные структуры данных. Стеки. Очереди)
- Древовидные структуры данных (Древовидные структуры данных. Операции над деревьями. Примеры реализации операций)
- Графы (Понятие графа. Способы представления графа. Представление графа списком инцидентности. Алгоритм обхода графа в глубину. Представление графа списком списков. Алгоритм обхода графа в ширину)
- Объектный тип данных (Объектный тип в Pascal. Понятие объекта, его описание и использование. Наследование. Создание экземпляров объектов. Компоненты и область действия)
- Методы (Методы. Конструкторы и деструкторы. Деструкторы. Виртуальные методы. Поля данных объекта и формальные параметры метода)
- Совместимость типов объектов (Инкапсуляция. Расширяющиеся объекты. Совместимость типов объектов)
- Ассемблер (Об ассемблере. Программная модель микропроцессора. Пользовательские регистры. Регистры общего назначения. Сегментные регистры. Регистры состояния и управления)
- Регистры (Системные регистры микропроцессора. Регистры управления. Регистры системных адресов. Регистры отладки)
- Программы на Ассемблере (Структура программы на Ассемблере. Синтаксис Ассемблера. Операторы сравнения. Операторы и их приоритет. Упрощенные директивы определения сегмента. Идентификаторы, создаваемые директивой MODEL. Модели памяти. Модификаторы модели памяти)
- Структуры команд на Ассемблере (Структура машинной команды. Способы задания операндов команды. Способы адресации)
- Команды (Команды пересылки данных. Арифметические команды)
- Команды передачи управления (Логические команды. Таблица истинности для логического отрицания. Таблица истинности для логического включающего ИЛИ. Таблица истинности для логического И. Таблица истинности для логического исключающего ИЛИ. Значение аббревиатур в названии команды jcc. Перечень команд условного перехода для команды. Команды условного перехода и флаги)
ЛЕКЦИЯ № 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. Процедуры и функции для переменных строкового типа. Записи. Множества)
Рекомендуем интересные статьи раздела Конспекты лекций, шпаргалки:
▪ Нормальная анатомия человека. Шпаргалка
▪ Планирование на предприятии. Шпаргалка
▪ Финансы. Шпаргалка
Смотрите другие статьи раздела Конспекты лекций, шпаргалки.
Читайте и пишите полезные комментарии к этой статье.
<< Назад
Последние новости науки и техники, новинки электроники:
Лабораторная модель прогнозирования землетрясений
30.11.2025
Предсказание землетрясений остается одной из самых сложных задач геофизики. Несмотря на развитие сейсмологии, ученые все еще не могут точно определить момент начала разрушительного движения разломов. Недавние эксперименты американских исследователей открывают новые горизонты: впервые удалось наблюдать микроскопические изменения в контактной зоне разломов, которые предшествуют землетрясению.
Группа под руководством Сильвена Барбота обнаружила, что "реальная площадь контакта" - участки, где поверхности разлома действительно соприкасаются - изменяется за миллисекунды до высвобождения накопленной энергии. "Мы открыли окно в сердце механики землетрясений", - отмечает Барбот. Эти изменения позволяют фиксировать этапы зарождения сейсмического события еще до появления традиционных сейсмических волн.
Для наблюдений ученые использовали прозрачные акриловые материалы, через которые можно было отслеживать световые изменения в зоне контакта. В ходе искусственного моделирования примерно 30% ко ...>>
Музыка как естественный анальгетик
30.11.2025
Ученые все активнее исследуют немедикаментозные способы облегчения боли. Одним из перспективных направлений становится использование музыки, которая способна воздействовать на эмоциональное состояние и когнитивное восприятие боли. Новое исследование международной группы специалистов демонстрирует, что даже кратковременное прослушивание любимых композиций может значительно снижать болевые ощущения у пациентов с острой болью в спине.
В эксперименте участвовали пациенты, обратившиеся за помощью в отделение неотложной помощи с выраженной болью в спине. Им предлагалось на протяжении десяти минут слушать свои любимые музыкальные треки. Уже после этой короткой сессии врачи фиксировали заметное уменьшение интенсивности боли как в состоянии покоя, так и при движениях.
Авторы исследования подчеркивают, что музыка не устраняет саму причину боли. Тем не менее, она воздействует на эмоциональный фон пациента, снижает уровень тревожности и отвлекает внимание, что в сумме приводит к субъективном ...>>
Алкоголь может привести к слобоумию
29.11.2025
Проблема влияния алкоголя на стареющий мозг давно вызывает интерес как у врачей, так и у исследователей когнитивного старения. В последние годы стало очевидно, что границы "безопасного" употребления спиртного размываются, и новое крупное исследование, проведенное международной группой ученых, вновь указывает на это. Работы Оксфордского университета, выполненные совместно с исследователями из Йельского и Кембриджского университетов, показывают: даже небольшие дозы алкоголя способны ускорять когнитивный спад.
Команда проанализировала данные более чем 500 тысяч участников из британского биобанка и американской Программы миллионов ветеранов. Дополнительно был выполнен метаанализ сорока пяти исследований, в общей сложности включавших сведения о 2,4 миллиона человек. Такой масштаб позволил оценить не только прямую связь между употреблением спиртного и развитием деменции, но и влияние генетической предрасположенности.
Один из наиболее тревожных результатов касается людей с повышенным ге ...>>
Случайная новость из Архива Заваривание кофе с помощью лазера
27.09.2022
Немецкие ученые придумали лазер для приготовления кофе. Устройство не только в 300 раз быстрее готовит напиток, но и лучше раскрывает его вкусовые и ароматические свойства.
Один из популярных способов заваривания кофе - cold-brew - предполагает холодную экстракцию напитка. Перемолотые кофейные зерна заливают водой и оставляют настояться. Для заваривания холодного напитка требуется около 24 часов, однако современное оборудование сокращает время до 12 часов. Есть способ ускорить процесс.
Метод основан на лазерном синтезе и обработке коллоидов (laser synthesis and processing of colloids, LSPC). Обычно его используют для создания растворов взвешенных наночастиц. Исследователи взяли лазер на иттрий-алюминиевом гранате (Nd:YAG), легированный неодимом, настроенный на 532 нанометра, и создали импульсы мощностью 125 пикоджоулов продолжительностью всего 10 пикосекунд. После этого лазер пропустил через раствор кофе. Они пропускали его через раствор молотого кофе, смешанного с водой, около 80 000 раз в секунду в течение трех минут, ни разу не повышая температуру более чем на несколько градусов.
Лазер-кофе сравнили с напитком cold-brew, который заваривали 24 часа, и чашкой горячего кофе, заваренного с использованием капельного фильтра. Кислотность в лазер-кофе была почти идентична уровню напитка, который заваривали 24 часа, и значительно меньше, чем в горячем кофе. Самый душистый кофе - традиционной холодной заварки, а приготовленный с помощью лазера - на втором месте.
Кроме того, в лазерном кофе не нашли никаких посторонних веществ.
|
Другие интересные новости:
▪ Память ePoP от Samsung
▪ Озон снижает урожайность
▪ Мозг людей работает по-разному
▪ Разработан чип, выдерживающий космический холод
▪ Флешка объемом 16 Гб
Лента новостей науки и техники, новинок электроники
Интересные материалы Бесплатной технической библиотеки:
▪ раздел сайта Чудеса природы. Подборка статей
▪ статья Что доброго может быть из Назарета? Крылатое выражение
▪ статья Как возникли основные религии? Подробный ответ
▪ статья Работа в кабинете химии. Типовая инструкция по охране труда
▪ статья Генератор импульсов с независимым регулированием частоты и скважности. Энциклопедия радиоэлектроники и электротехники
▪ статья Самовоспламеняющиеся свечи. Секрет фокуса
Оставьте свой комментарий к этой статье:
Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua
2000-2025