Индивидуальные задания

Варианты заданий (Таблица «Исходные данные»)

№ ва-риан-та Местоположение вершины Радиус R   Вид кривой   Направ-ление расчета Отметка верши-ны Коли-чество точек Шаг разбив-ки, м
ПК +
12.45 выпукл. влево 96.33
98.75 вогнут. вправо 103.58
67.34 выпукл. вправо 125.56
59.21 вогнут. влево 89.46
98.62 выпукл. влево 234.46
78.53 вогнут. вправо 111.49
87.44 выпукл. влево 134.12
66.55 вогнут. вправо 156.09
23.57 выпукл. влево 135.67
69.33 вогнут. вправо 78.56
03.40 выпукл. влево 99.01
69.56 вогнут. вправо 198.87

Выводная таблица выглядит следующим образом.

Таблица расчета отметок проектной линии на вертикальной кривой РК1 (ПК), PS1(+), Н

Номер п/п   Пикетное положение   Отметка точки H(i)  
ПК   +  
  …   …  
N …   …   …  

ТЕМА 11. Процедуры и функции, определенные пользователем. Параметры процедур и функций

Цель лабораторной работы: познакомиться с понятиями «процедура» и «функция» в языке программирования Pascal, рассмотреть их сходства и различия, закрепить практические навыки работы с системой PascalABC на примере разработки структурированных программ, реализации алгоритмов при помощи процедур и функций, правильно применять параметы-значения и параметры-переменные при написании процедур и функций.

Глобальные и локальные переменные, параметры процедур и функций

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

- организовать работу нескольких программистов над одной программой с последующим объединением отдельно отлаженных и относительно независимых блоков в единое целое;

- проводить отладку отдельных блоков и только после этого программы в целом;

- значительно экономить память, так как многократно используемый участок (процедура или функция) заносится в память только один раз;

- упростить внесение изменений в программу, так как исправление ошибки в одном блоке не вызывает корректировку других блоков.

ПАСКАЛЬ допускает пять основных способов использования и размещения подпрограмм:

· основная программа, процедуры и функции расположены в одном файле;

· подпрограммы расположены в отдельных файлах и включаются в основной файл с помощью директивы компилятора $;

· подпрограммы организуются как оверлейные структуры и поочередно загружаются в одно и то же место памяти;

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

· подпрограммы оформляются как "внешние" и вызываются из основной программы.

Параметры могут иметь любой тип, включая структурированный. ПАСКАЛЬ поддерживает два различных метода передачи параметров: по значению и по ссылкам.

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

Procedure Копе (А, В, С : integer; D : real);

Function Docs (S1, S2 : real; Flag : boolean) : real;

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

Procedure Okl (Mas1 : array [1. .12] of real);
является ошибочной. Тип переменной следует определить ранее в разделе описания типов блока:

Type Massiv = array [1. .12] of real;

Procedure Okl (Mas1 : Massiv);

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

При использовании параметров-переменных формальные и фактические параметры должны совпадать по количеству и типу. Однако возможны два исключения:

Формальные параметры без типа несовместимы ни с каким типом. Допустимо сочетание параметров-значений и параметров-переменных в одной секции формальных параметров:

Procedure Prots (Var А, В, С : real; S : boolean);

Такая запись означает, что А, В, С – параметры-переменные, а S – параметр-значение. Напомним, что если процедура должна возвратить в программу определенные результаты, они должны быть специфицированы как параметры-переменные, т. е. в сочетании со словом Var, в противном случае результаты не будут возвращены.

Наши рекомендации