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

13

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

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

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

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

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

Тема:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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;

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

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

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

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