Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Размещение подпрограммы в библиотеке.




Технология программирования

Лабораторный курс

доцента кафедры информационных систем и компьютерных технологий

Пановой Т.В. (panova_tat@rambler.ru)

Лабораторная работа №1

Тема:

Парадигма процедурного программирования на примере обработки массивов с использованием нисходящей разработки

Цель:формирование навыков

· обработки массивов;

· описания алгоритмов обработки в виде подпрограмм различных видов;

· написания тестов для нисходящей отладки программы.

I. Теоретические сведения.

1. Процедурное программирование

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

Вспомогательные алгоритмы.

Последовательность работы при разработке программ по уже принятому алгоритму решения поставленной задачи:

1. выбор структуры данных, описывающей объект, т. е. выбор информационной модели;

2. программная реализация алгоритма.

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

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

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

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

При технологии снизу вверх используются ранее составленные вспомогательные алгоритмы.

Подпрограммы.

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

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

Формальные параметры подпрограммы.

Две категории формальных параметров

1. Параметры, используемые только для передачи в подпрограмму входных данных – это параметры-значения, параметры-подпрограммы; параметры-константы (типизированные и нетипизированные).

1) Группа параметров без предшествующего ключевого слова является списком параметров-значений или параметров-подпрограмм соответствующего подпрограммного типа.

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

procedure PROC1(PAR: integer);

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

type

FUN = function(A,B,C: real): real;

Указание параметра-функции выглядит так:

procedure PROC1(PAR: fun);

2) Группа параметров с предшествующим ключевым словом const, за которыми следует тип, является списком параметров-констант.

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

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

1) Группа параметров с предшествующим ключевым словом var, за которыми следует тип, является списком типизированных параметров-переменных.

Если формальным параметром является параметр-переменная, то при обращении к подпрограмме на месте этого параметра может находиться только имя переменной, описанной во внешнем (по отношению к подпрограмме) блоке программы.

procedure PROC1(var PAR: integer);

2) Группа параметров с предшествующим ключевым словом var или const, за которыми не следует тип, является списком нетипизированных параметров.

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

function Equal(var s, d; size: word): boolean;

Фактические параметры подпрограммы.

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

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

Местоположение подпрограмм в тексте и вне текста программы.

Расположение подпрограммы внутри текста программы.

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

Размещение подпрограммы в файле.

Размещение подпрограммы возможно в отдельном текстовом файле, который может иметь расширение PAS или INC. В этом случае текст подпрограммы включается в текст программы директивой компилятора {$I имя файла}.

Размещение подпрограммы в библиотеке.

Подпрограмма может находиться в библиотеке в виде машинных кодов. Существует возможность для пользователя создавать собственные библиотеки. Тексты библиотек представляют собой программные единицы, называемые модулями. Модули после трансляции располагаются в файлах с расширением TPU.










Последнее изменение этой страницы: 2018-05-29; просмотров: 145.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...